; ; common_assert_to_message_box_build_string from 0x180130ed4 to 0x1801313d8 (1284 bytes) ; ; 3 xrefs: ; > common_assert_to_message_box @ 0x180130e68 ; > @ 0x180202eac ; > @ 0x180202eb8 ; ; This function is hookable on this platform! ; ; Using BromaIDA 8.0.0 @ https:;github.com/Stazzical/BromaIDA ; Using bindings at commit ba9f177b at Thu Jul 16 22:52:06 2026 from https:;github.com/geode-sdk/bindings ; push rbx ; +0x0, 0x180130ed4 push rbp ; +0x2, 0x180130ed6 push rsi ; +0x3, 0x180130ed7 push rdi ; +0x4, 0x180130ed8 push r12 ; +0x5, 0x180130ed9 push r13 ; +0x7, 0x180130edb push r14 ; +0x9, 0x180130edd push r15 ; +0xb, 0x180130edf sub rsp, 268h ; +0xd, 0x180130ee1 mov rax, cs:__security_cookie ; +0x14, 0x180130ee8 xor rax, rsp ; +0x1b, 0x180130eef mov [rsp+2A8h+var_58], rax ; +0x1e, 0x180130ef2 mov rbp, [rsp+2A8h+lpModuleName] ; +0x26, 0x180130efa mov r13, r8 ; +0x2e, 0x180130f02 lea r8, aAssertionFaile ; +0x31, 0x180130f05 mov r15, r9 ; +0x38, 0x180130f0c mov rdi, rdx ; +0x3b, 0x180130f0f mov rbx, rcx ; +0x3e, 0x180130f12 call wcscpy_s ; +0x41, 0x180130f15 xor r14d, r14d ; +0x46, 0x180130f1a test eax, eax ; +0x49, 0x180130f1d jnz loc_180131394 ; +0x4b, 0x180130f1f lea r8, asc_180172F2C ; +0x51, 0x180130f25 mov rdx, rdi; SizeInWords ; +0x58, 0x180130f2c mov rcx, rbx; Destination ; +0x5b, 0x180130f2f call wcscat_s ; +0x5e, 0x180130f32 test eax, eax ; +0x63, 0x180130f37 jnz loc_180131394 ; +0x65, 0x180130f39 lea r8, aProgram ; +0x6b, 0x180130f3f mov rdx, rdi; SizeInWords ; +0x72, 0x180130f46 mov rcx, rbx; Destination ; +0x75, 0x180130f49 call wcscat_s ; +0x78, 0x180130f4c test eax, eax ; +0x7d, 0x180130f51 jnz loc_180131394 ; +0x7f, 0x180130f53 mov esi, 20Ah ; +0x85, 0x180130f59 lea rcx, [rsp+2A8h+Filename]; void * ; +0x8a, 0x180130f5e mov r8d, esi; Size ; +0x8f, 0x180130f63 xor edx, edx; Val ; +0x92, 0x180130f66 call memset ; +0x94, 0x180130f68 lea r8, [rsp+2A8h+phModule]; phModule ; +0x99, 0x180130f6d mov [rsp+2A8h+phModule], r14 ; +0x9e, 0x180130f72 mov rdx, rbp; lpModuleName ; +0xa3, 0x180130f77 lea ecx, [r14+6]; dwFlags ; +0xa6, 0x180130f7a call cs:GetModuleHandleExW ; +0xaa, 0x180130f7e mov ebp, 105h ; +0xb0, 0x180130f84 lea rdx, [rsp+2A8h+Filename]; lpFilename ; +0xb5, 0x180130f89 neg eax ; +0xba, 0x180130f8e mov r8d, ebp; nSize ; +0xbc, 0x180130f90 sbb rcx, rcx ; +0xbf, 0x180130f93 and rcx, [rsp+2A8h+phModule]; hModule ; +0xc2, 0x180130f96 mov [rsp+2A8h+phModule], rcx ; +0xc7, 0x180130f9b call cs:GetModuleFileNameW ; +0xcc, 0x180130fa0 test eax, eax ; +0xd2, 0x180130fa6 jnz short loc_180130FC5 ; +0xd4, 0x180130fa8 lea r8, aProgramNameUnk ; +0xd6, 0x180130faa mov edx, ebp; SizeInWords ; +0xdd, 0x180130fb1 lea rcx, [rsp+2A8h+Filename]; Destination ; +0xdf, 0x180130fb3 call wcscpy_s ; +0xe4, 0x180130fb8 test eax, eax ; +0xe9, 0x180130fbd jnz loc_180131394 ; +0xeb, 0x180130fbf or rbp, 0FFFFFFFFFFFFFFFFh ; +0xf1, 0x180130fc5 lea rcx, [rsp+2A8h+Filename] ; +0xf5, 0x180130fc9 mov rdx, rbp ; +0xfa, 0x180130fce lea rax, [rsp+2A8h+Filename] ; +0xfd, 0x180130fd1 inc rdx ; +0x102, 0x180130fd6 cmp [rax+rdx*2], r14w ; +0x105, 0x180130fd9 jnz short loc_180130FD6 ; +0x10a, 0x180130fde lea rax, [rdx+0Bh] ; +0x10c, 0x180130fe0 cmp rax, 40h ; '@' ; +0x110, 0x180130fe4 jbe short loc_18013102C ; +0x114, 0x180130fe8 lea rax, ds:0FFFFFFFFFFFFFF96h[rdx*2] ; +0x116, 0x180130fea sub rsi, rax ; +0x11e, 0x180130ff2 lea rcx, [rsp+2A8h+Filename] ; +0x121, 0x180130ff5 add rcx, rax; void * ; +0x126, 0x180130ffa jnz short loc_18013100F ; +0x129, 0x180130ffd call _errno ; +0x12b, 0x180130fff mov dword ptr [rax], 16h ; +0x130, 0x180131004 jmp loc_1801313BE ; +0x136, 0x18013100a cmp rsi, 6 ; +0x13b, 0x18013100f jb loc_1801313A9 ; +0x13f, 0x180131013 mov eax, dword ptr cs:asc_180172F20 ; +0x145, 0x180131019 mov [rcx], eax ; +0x14b, 0x18013101f movzx eax, cs:word_180172F24 ; +0x14d, 0x180131021 mov [rcx+4], ax ; +0x154, 0x180131028 mov r8, rcx; Source ; +0x158, 0x18013102c mov rdx, rdi; SizeInWords ; +0x15b, 0x18013102f mov rcx, rbx; Destination ; +0x15e, 0x180131032 call wcscat_s ; +0x161, 0x180131035 test eax, eax ; +0x166, 0x18013103a jnz loc_180131394 ; +0x168, 0x18013103c lea r8, asc_180172F28; Source ; +0x16e, 0x180131042 mov rdx, rdi; SizeInWords ; +0x175, 0x180131049 mov rcx, rbx; Destination ; +0x178, 0x18013104c call wcscat_s ; +0x17b, 0x18013104f test eax, eax ; +0x180, 0x180131054 jnz loc_180131394 ; +0x182, 0x180131056 lea r8, aFile_2 ; +0x188, 0x18013105c mov rdx, rdi; SizeInWords ; +0x18f, 0x180131063 mov rcx, rbx; Destination ; +0x192, 0x180131066 call wcscat_s ; +0x195, 0x180131069 test eax, eax ; +0x19a, 0x18013106e jnz loc_180131394 ; +0x19c, 0x180131070 mov rax, rbp ; +0x1a2, 0x180131076 inc rax ; +0x1a5, 0x180131079 cmp [r15+rax*2], r14w ; +0x1a8, 0x18013107c jnz short loc_180131079 ; +0x1ad, 0x180131081 add rax, 8 ; +0x1af, 0x180131083 cmp rax, 40h ; '@' ; +0x1b3, 0x180131087 jbe loc_18013137E ; +0x1b7, 0x18013108b mov rsi, rbp ; +0x1bd, 0x180131091 inc rsi ; +0x1c0, 0x180131094 cmp [r15+rsi*2], r14w ; +0x1c3, 0x180131097 jnz short loc_180131094 ; +0x1c8, 0x18013109c movzx eax, word ptr [r15+rsi*2-2] ; +0x1ca, 0x18013109e mov r14d, 1 ; +0x1d0, 0x1801310a4 cmp ax, 5Ch ; '\' ; +0x1d6, 0x1801310aa jz short loc_1801310D3 ; +0x1da, 0x1801310ae lea rcx, [r15-2] ; +0x1dc, 0x1801310b0 lea rcx, [rcx+rsi*2] ; +0x1e0, 0x1801310b4 cmp ax, 2Fh ; '/' ; +0x1e4, 0x1801310b8 jz short loc_1801310D3 ; +0x1e8, 0x1801310bc cmp r14, rsi ; +0x1ea, 0x1801310be jnb short loc_1801310D3 ; +0x1ed, 0x1801310c1 sub rcx, 2 ; +0x1ef, 0x1801310c3 inc r14 ; +0x1f3, 0x1801310c7 movzx eax, word ptr [rcx] ; +0x1f6, 0x1801310ca cmp ax, 5Ch ; '\' ; +0x1f9, 0x1801310cd jnz short loc_1801310B8 ; +0x1fd, 0x1801310d1 mov r12, rsi ; +0x1ff, 0x1801310d3 sub r12, r14 ; +0x202, 0x1801310d6 cmp r12, 26h ; '&' ; +0x205, 0x1801310d9 jbe short loc_18013112E ; +0x209, 0x1801310dd cmp r14, 12h ; +0x20b, 0x1801310df jnb short loc_18013112A ; +0x20f, 0x1801310e3 mov r9d, 35h ; '5' ; +0x211, 0x1801310e5 mov r8, r15; Source ; +0x217, 0x1801310eb sub r9, r14; MaxCount ; +0x21a, 0x1801310ee mov rdx, rdi; SizeInWords ; +0x21d, 0x1801310f1 mov rcx, rbx; Destination ; +0x220, 0x1801310f4 call wcsncat_s ; +0x223, 0x1801310f7 xor r14d, r14d ; +0x228, 0x1801310fc test eax, eax ; +0x22b, 0x1801310ff jnz loc_180131394 ; +0x22d, 0x180131101 lea r8, asc_180172F20 ; +0x233, 0x180131107 mov rdx, rdi; SizeInWords ; +0x23a, 0x18013110e mov rcx, rbx; Destination ; +0x23d, 0x180131111 call wcscat_s ; +0x240, 0x180131114 test eax, eax ; +0x245, 0x180131119 jnz loc_180131394 ; +0x247, 0x18013111b lea r8, [r15+r12*2] ; +0x24d, 0x180131121 jmp loc_180131381 ; +0x251, 0x180131125 cmp r12, 26h ; '&' ; +0x256, 0x18013112a mov r8, r15; Source ; +0x25a, 0x18013112e mov rdx, rdi; SizeInWords ; +0x25d, 0x180131131 mov rcx, rbx; Destination ; +0x260, 0x180131134 jnb loc_18013131F ; +0x263, 0x180131137 shr r14, 1 ; +0x269, 0x18013113d mov r9d, 35h ; '5' ; +0x26c, 0x180131140 sub r9, r14; MaxCount ; +0x272, 0x180131146 call wcsncat_s ; +0x275, 0x180131149 test eax, eax ; +0x27a, 0x18013114e jnz loc_180131391 ; +0x27c, 0x180131150 lea r8, asc_180172F20 ; +0x282, 0x180131156 mov rdx, rdi; SizeInWords ; +0x289, 0x18013115d mov rcx, rbx; Destination ; +0x28c, 0x180131160 call wcscat_s ; +0x28f, 0x180131163 test eax, eax ; +0x294, 0x180131168 jnz loc_180131391 ; +0x296, 0x18013116a sub rsi, r14 ; +0x29c, 0x180131170 mov rdx, rdi; SizeInWords ; +0x29f, 0x180131173 mov rcx, rbx; Destination ; +0x2a2, 0x180131176 lea r8, [r15+rsi*2]; Source ; +0x2a5, 0x180131179 call wcscat_s ; +0x2a9, 0x18013117d xor r14d, r14d ; +0x2ae, 0x180131182 test eax, eax ; +0x2b1, 0x180131185 jnz loc_180131394 ; +0x2b3, 0x180131187 lea r8, asc_180172F28; Source ; +0x2b9, 0x18013118d mov rdx, rdi; SizeInWords ; +0x2c0, 0x180131194 mov rcx, rbx; Destination ; +0x2c3, 0x180131197 call wcscat_s ; +0x2c6, 0x18013119a test eax, eax ; +0x2cb, 0x18013119f jnz loc_180131394 ; +0x2cd, 0x1801311a1 lea r8, aLine ; +0x2d3, 0x1801311a7 mov rdx, rdi; SizeInWords ; +0x2da, 0x1801311ae mov rcx, rbx; Destination ; +0x2dd, 0x1801311b1 call wcscat_s ; +0x2e0, 0x1801311b4 test eax, eax ; +0x2e5, 0x1801311b9 jnz loc_180131394 ; +0x2e7, 0x1801311bb mov rax, rbp ; +0x2ed, 0x1801311c1 inc rax ; +0x2f0, 0x1801311c4 cmp [rbx+rax*2], r14w ; +0x2f3, 0x1801311c7 jnz short loc_1801311C4 ; +0x2f8, 0x1801311cc mov rcx, rbp ; +0x2fa, 0x1801311ce inc rcx ; +0x2fd, 0x1801311d1 cmp [rbx+rcx*2], r14w ; +0x300, 0x1801311d4 jnz short loc_1801311D1 ; +0x305, 0x1801311d9 lea rdx, [rbx+rcx*2]; Buffer ; +0x307, 0x1801311db mov r8, rdi ; +0x30b, 0x1801311df mov ecx, [rsp+2A8h+Value]; Value ; +0x30e, 0x1801311e2 sub r8, rax; BufferCount ; +0x315, 0x1801311e9 mov r9d, 0Ah; Radix ; +0x318, 0x1801311ec call _itow_s ; +0x31e, 0x1801311f2 test eax, eax ; +0x323, 0x1801311f7 jnz loc_180131394 ; +0x325, 0x1801311f9 lea r8, asc_180172F2C ; +0x32b, 0x1801311ff mov rdx, rdi; SizeInWords ; +0x332, 0x180131206 mov rcx, rbx; Destination ; +0x335, 0x180131209 call wcscat_s ; +0x338, 0x18013120c test eax, eax ; +0x33d, 0x180131211 jnz loc_180131394 ; +0x33f, 0x180131213 lea r8, aExpression ; +0x345, 0x180131219 mov rdx, rdi; SizeInWords ; +0x34c, 0x180131220 mov rcx, rbx; Destination ; +0x34f, 0x180131223 call wcscat_s ; +0x352, 0x180131226 test eax, eax ; +0x357, 0x18013122b jnz loc_180131394 ; +0x359, 0x18013122d mov rax, rbp ; +0x35f, 0x180131233 inc rax ; +0x362, 0x180131236 cmp [rbx+rax*2], r14w ; +0x365, 0x180131239 jnz short loc_180131236 ; +0x36a, 0x18013123e add rax, 0B0h ; +0x36c, 0x180131240 inc rbp ; +0x372, 0x180131246 cmp [r13+rbp*2+0], r14w ; +0x375, 0x180131249 jnz short loc_180131246 ; +0x37b, 0x18013124f add rbp, rax ; +0x37d, 0x180131251 mov r8, r13; Source ; +0x380, 0x180131254 mov rdx, rdi; SizeInWords ; +0x383, 0x180131257 mov rcx, rbx; Destination ; +0x386, 0x18013125a cmp rbp, rdi ; +0x389, 0x18013125d jbe short loc_180131286 ; +0x38c, 0x180131260 mov r9, rdi ; +0x38e, 0x180131262 sub r9, rax ; +0x391, 0x180131265 sub r9, 3; MaxCount ; +0x394, 0x180131268 call wcsncat_s ; +0x398, 0x18013126c test eax, eax ; +0x39d, 0x180131271 jnz loc_180131394 ; +0x39f, 0x180131273 lea r8, asc_180172F20 ; +0x3a5, 0x180131279 mov rdx, rdi; SizeInWords ; +0x3ac, 0x180131280 mov rcx, rbx; Destination ; +0x3af, 0x180131283 call wcscat_s ; +0x3b2, 0x180131286 test eax, eax ; +0x3b7, 0x18013128b jnz loc_180131394 ; +0x3b9, 0x18013128d lea r8, asc_180172F2C ; +0x3bf, 0x180131293 mov rdx, rdi; SizeInWords ; +0x3c6, 0x18013129a mov rcx, rbx; Destination ; +0x3c9, 0x18013129d call wcscat_s ; +0x3cc, 0x1801312a0 test eax, eax ; +0x3d1, 0x1801312a5 jnz loc_180131394 ; +0x3d3, 0x1801312a7 lea r8, aForInformation ; +0x3d9, 0x1801312ad mov rdx, rdi; SizeInWords ; +0x3e0, 0x1801312b4 mov rcx, rbx; Destination ; +0x3e3, 0x1801312b7 call wcscat_s ; +0x3e6, 0x1801312ba test eax, eax ; +0x3eb, 0x1801312bf jnz loc_180131394 ; +0x3ed, 0x1801312c1 lea r8, asc_180172F2C ; +0x3f3, 0x1801312c7 mov rdx, rdi; SizeInWords ; +0x3fa, 0x1801312ce mov rcx, rbx; Destination ; +0x3fd, 0x1801312d1 call wcscat_s ; +0x400, 0x1801312d4 test eax, eax ; +0x405, 0x1801312d9 jnz loc_180131394 ; +0x407, 0x1801312db lea r8, aPressRetryToDe ; +0x40d, 0x1801312e1 mov rdx, rdi; SizeInWords ; +0x414, 0x1801312e8 mov rcx, rbx; Destination ; +0x417, 0x1801312eb call wcscat_s ; +0x41a, 0x1801312ee test eax, eax ; +0x41f, 0x1801312f3 jnz loc_180131394 ; +0x421, 0x1801312f5 mov rcx, [rsp+2A8h+var_58] ; +0x427, 0x1801312fb xor rcx, rsp; StackCookie ; +0x42f, 0x180131303 call __security_check_cookie ; +0x432, 0x180131306 add rsp, 268h ; +0x437, 0x18013130b pop r15 ; +0x43e, 0x180131312 pop r14 ; +0x440, 0x180131314 pop r13 ; +0x442, 0x180131316 pop r12 ; +0x444, 0x180131318 pop rdi ; +0x446, 0x18013131a pop rsi ; +0x447, 0x18013131b pop rbp ; +0x448, 0x18013131c pop rbx ; +0x449, 0x18013131d retn ; +0x44a, 0x18013131e mov r9d, 23h ; '#'; MaxCount ; +0x44b, 0x18013131f call wcsncat_s ; +0x451, 0x180131325 xor r14d, r14d ; +0x456, 0x18013132a test eax, eax ; +0x459, 0x18013132d jnz short loc_180131394 ; +0x45b, 0x18013132f lea r8, asc_180172F20 ; +0x45d, 0x180131331 mov rdx, rdi; SizeInWords ; +0x464, 0x180131338 mov rcx, rbx; Destination ; +0x467, 0x18013133b call wcscat_s ; +0x46a, 0x18013133e test eax, eax ; +0x46f, 0x180131343 jnz short loc_180131394 ; +0x471, 0x180131345 lea r8, [r15+r12*2]; Source ; +0x473, 0x180131347 mov rdx, rdi; SizeInWords ; +0x477, 0x18013134b lea r9d, [r14+8]; MaxCount ; +0x47a, 0x18013134e mov rcx, rbx; Destination ; +0x47e, 0x180131352 call wcsncat_s ; +0x481, 0x180131355 test eax, eax ; +0x486, 0x18013135a jnz short loc_180131394 ; +0x488, 0x18013135c lea r8, asc_180172F20 ; +0x48a, 0x18013135e mov rdx, rdi; SizeInWords ; +0x491, 0x180131365 mov rcx, rbx; Destination ; +0x494, 0x180131368 call wcscat_s ; +0x497, 0x18013136b test eax, eax ; +0x49c, 0x180131370 jnz short loc_180131394 ; +0x49e, 0x180131372 lea r8, [r15-0Eh] ; +0x4a0, 0x180131374 lea r8, [r8+rsi*2] ; +0x4a4, 0x180131378 jmp short loc_180131381 ; +0x4a8, 0x18013137c mov r8, r15; Source ; +0x4aa, 0x18013137e mov rdx, rdi; SizeInWords ; +0x4ad, 0x180131381 mov rcx, rbx; Destination ; +0x4b0, 0x180131384 call wcscat_s ; +0x4b3, 0x180131387 jmp loc_180131185 ; +0x4b8, 0x18013138c xor r14d, r14d ; +0x4bd, 0x180131391 xor r9d, r9d; LineNo ; +0x4c0, 0x180131394 mov [rsp+2A8h+Reserved], r14; Reserved ; +0x4c3, 0x180131397 xor r8d, r8d; FileName ; +0x4c8, 0x18013139c xor edx, edx; FunctionName ; +0x4cb, 0x18013139f xor ecx, ecx; Expression ; +0x4cd, 0x1801313a1 call _invoke_watson ; +0x4cf, 0x1801313a3 db 0CCh ; +0x4d4, 0x1801313a8 mov r8, rsi; Size ; +0x4d5, 0x1801313a9 xor edx, edx; Val ; +0x4d8, 0x1801313ac call memset ; +0x4da, 0x1801313ae call _errno ; +0x4df, 0x1801313b3 mov dword ptr [rax], 22h ; '"' ; +0x4e4, 0x1801313b8 call _invalid_parameter_noinfo ; +0x4ea, 0x1801313be xor r9d, r9d; LineNo ; +0x4ef, 0x1801313c3 mov [rsp+2A8h+Reserved], r14; Reserved ; +0x4f2, 0x1801313c6 xor r8d, r8d; FileName ; +0x4f7, 0x1801313cb xor edx, edx; FunctionName ; +0x4fa, 0x1801313ce xor ecx, ecx; Expression ; +0x4fc, 0x1801313d0 call _invoke_watson ; +0x4fe, 0x1801313d2 align 8 ; +0x503, 0x1801313d7