Function at 0x4073fb
Capabilities:
Resolve function by parsing pe exports

Disassembly:
jmp 0x528570
sub esp, 0x2f4
mov eax, dword [0xa0b130]
xor eax, esp
mov dword [esp + 0x2f0], eax
mov eax, dword [esp + 0x2f8]
mov edx, ecx
push ebx
mov ebx, dword [esp + 0x318]
push ebp
mov ebp, dword [esp + 0x308]
mov dword [esp + 0x78], eax
mov eax, dword [esp + 0x304]
push esi
mov ecx, dword [ebp + 4]
mov esi, dword [esp + 0x314]
mov dword [esp + 0x28], eax
mov eax, dword [ebp]
mov dword [esp + 0x54], ecx
mov dword [esp + 0xb8], ecx
mov ecx, edx
push edi
mov edi, dword [esp + 0x314]
mov dword [esp + 0x24], edx
mov dword [esp + 0x5c], ebp
mov dword [esp + 0xa0], ebx
mov dword [esp + 0x34], eax
mov dword [esp + 0xb8], eax
call fcn.0041365b
mov edx, dword [esp + 0x24]
push esi
push edi
push dword [esp + 0x328]
mov edi, dword [esp + 0x38]
push dword [esp + 0x328]
push ebp
movups xmm0, xmmword [edi]
mov eax, dword [edi + 0x10]
sub esp, 0x14
mov ecx, esp
movups xmmword [ecx], xmm0
mov dword [ecx + 0x10], eax
lea eax, [esp + 0x90]
push eax
lea ecx, [edx + 8]
call fcn.0040ce73
test ebx, ebx
je 0x52877a
lea eax, [esp + 0x2c]
mov dword [esp + 0x270], 0xffffffff
push eax
mov dword [esp + 0x278], 0xffffffff
mov dword [esp + 0x27c], 0xffffffff
mov dword [esp + 0x280], 0x1040000
mov dword [esp + 0x284], 0
mov byte [esp + 0x289], 0
mov dword [esp + 0x30], 0x40661d
mov dword [esp + 0x2b0], 0
call fcn.00409002
add esp, 4
test al, al
je 0x5286b7
lea eax, [esp + 0x288]
mov dword [esp + 0x288], 0x92d40c
mov dword [esp + 0x28c], 0x40661d
mov dword [esp + 0x2ac], eax
lea eax, [esp + 0x2c]
mov dword [esp + 0x2c], 0x41173e
push eax
mov dword [esp + 0x2d8], 0
call fcn.00409002
add esp, 4
test al, al
je 0x5286ff
lea eax, [esp + 0x2b0]
mov dword [esp + 0x2b0], 0x92d40c
mov dword [esp + 0x2b4], 0x41173e
mov dword [esp + 0x2d4], eax
mov al, byte [esp + 0x328]
sub esp, 0x68
mov byte [esp + 0x2ec], al
mov ecx, esp
lea eax, [esp + 0x2d8]
push eax
call fcn.00410843
mov ecx, dword [esp + 0x8c]
push ebx
lea ecx, [ecx + 8]
call fcn.0040ea98
mov ecx, dword [esp + 0x2d4]
test ecx, ecx
je 0x52875a
mov edx, dword [ecx]
lea eax, [esp + 0x2b0]
cmp ecx, eax
setne al
movzx eax, al
push eax
call dword [edx + 0x10]
mov dword [esp + 0x2d4], 0
mov ecx, dword [esp + 0x2ac]
test ecx, ecx
je 0x52877a
mov edx, dword [ecx]
lea eax, [esp + 0x288]
cmp ecx, eax
setne al
movzx eax, al
push eax
call dword [edx + 0x10]
mov esi, dword [esp + 0x68]
test esi, esi
je 0x5287c8
test ebx, ebx
je 0x5287ba
mov eax, dword [ebx + 8]
mov edx, dword [ebx + 0xc]
sub eax, edx
cmp eax, 1
jae 0x5287af
push 1
push 0x92406c
mov ecx, ebx
call fcn.0041214d
mov eax, dword [esp + 0x80]
mov dword [eax], esi
jmp 0x52a054
mov cl, byte [0x92406c]
mov byte [edx], cl
inc dword [ebx + 0xc]
mov eax, dword [esp + 0x80]
mov dword [eax], esi
jmp 0x52a054
mov ecx, dword [esp + 0x24]
xor edx, edx
mov esi, dword [esp + 0x58]
lea eax, [ecx + 8]
cmp byte [ecx + 0x13], 1
mov ecx, 0
sete dl
lea edx, [edx*8 + 4]
add edx, dword [eax]
mov dword [esp + 0x30], edx
adc ecx, dword [eax + 4]
mov eax, edx
mov dword [esp + 0x60], edx
mov edx, dword [esp + 0x34]
add eax, edx
mov dword [esp + 0x40], ecx
mov dword [esp + 0x64], ecx
adc ecx, esi
cmp ecx, esi
jb 0x528834
ja 0x528811
cmp eax, edx
jb 0x528834
add eax, 0xffffffff
mov dword [esp + 0x2c], 0
adc ecx, 0xffffffff
cmp dword [esp + 0x2c], ecx
ja 0x5288ca
jb 0x528834
cmp dword [edi + 4], eax
ja 0x5288ca
mov eax, dword [edi + 4]
xor ecx, ecx
sub eax, edx
mov dword [esp + 0x30], eax
mov dword [esp + 0x94], eax
sbb ecx, esi
lea eax, [esp + 0x94]
mov dword [esp + 0x40], ecx
push eax
lea eax, [esp + 0x64]
mov dword [esp + 0x9c], ecx
push eax
lea eax, [esp + 0xc0]
push eax
push str.line_table_program_with_offset_0x_8.8llx_has_length_0x_8.8llx_but_only_0x_8.8llx_bytes_are_available
sub esp, 8
mov esi, esp
call fcn.00415dfc
mov dword [esi + 4], eax
lea eax, [esp + 0x40]
push eax
mov dword [esi], 0x16
call fcn.0040f3da
add esp, 0x18
mov ecx, esp
mov dword [ecx], 0
mov eax, dword [esp + 0x2c]
mov dword [ecx], eax
push dword [esp + 0x324]
mov dword [esp + 0x30], 0
call dword [esp + 0x324]
mov ecx, dword [esp + 0x30]
add esp, 8
test ecx, ecx
je 0x5288c2
mov eax, dword [ecx]
push 1
call dword [eax]
mov edx, dword [esp + 0x34]
mov esi, dword [esp + 0x58]
mov ecx, dword [esp + 0x30]
mov eax, dword [edi + 4]
add ecx, edx
mov dl, byte [edi + 9]
adc dword [esp + 0x40], esi
cmp byte [edi + 8], 0
mov esi, dword [edi]
setne dh
mov dword [esp + 0x30], ecx
cmp eax, ecx
mov dword [esp + 0x44], esi
mov byte [esp + 0x4c], dh
cmovb ecx, eax
mov byte [esp + 0x4d], dl
mov eax, dword [edi + 0xc]
mov dword [esp + 0x50], eax
mov eax, dword [edi + 0x10]
mov dword [esp + 0x48], ecx
mov dword [esp + 0x54], eax
test dl, dl
jne 0x528919
mov eax, dword [esp + 0x24]
mov al, byte [eax + 0x12]
mov byte [esp + 0x4d], al
push dword [esp + 0x320]
mov edi, dword [esp + 0x5c]
lea ecx, [esp + 0xe4]
push dword [esp + 0x320]
mov esi, dword [esp + 0x3c]
push edi
push esi
push dword [esp + 0x34]
call fcn.004053d5
mov ecx, dword [esp + 0x24]
lea ecx, [ecx + 8]
call fcn.00402b85
add eax, esi
mov dword [ebp], eax
mov esi, eax
adc edx, edi
mov dword [ebp + 4], edx
mov edi, edx
test ebx, ebx
je 0x5289a9
cmp edx, dword [esp + 0x40]
ja 0x5289a9
jb 0x52896f
mov ecx, dword [esp + 0x30]
cmp eax, ecx
jae 0x5289ad
mov eax, dword [ebx + 0xc]
cmp eax, dword [ebx + 8]
jb 0x528982
push 0xa
mov ecx, ebx
call fcn.0040c4b4
jmp 0x528988
mov byte [eax], 0xa
inc dword [ebx + 0xc]
xor eax, eax
mov ecx, 0xc
cmp byte [esp + 0x328], al
cmovne eax, ecx
push eax
push ebx
call fcn.00414fd8
mov esi, dword [ebp]
add esp, 8
mov edi, dword [ebp + 4]
mov ecx, dword [esp + 0x30]
cmp edi, dword [esp + 0x40]
ja 0x529f5d
jb 0x5289d0
cmp esi, ecx
jae 0x529f5d
nop dword [eax]
nop word [eax + eax]
cmp byte [esp + 0x328], 0
mov dword [esp + 0x14], esi
mov dword [esp + 0x18], edi
mov dword [esp + 0x1c], 0
je 0x528a23
lea eax, [esp + 0x190]
mov dword [esp + 0x194], str.0x_08.08llx:
push eax
mov ecx, ebx
mov dword [esp + 0x194], 0x92fa18
mov dword [esp + 0x19c], esi
mov dword [esp + 0x1a0], edi
call fcn.0040c69e
mov esi, dword [ebp]
mov edi, dword [ebp + 4]
lea eax, [esp + 0x1c]
push eax
lea eax, [esp + 0x18]
push eax
lea ecx, [esp + 0x4c]
call fcn.00406465
mov edx, dword [esp + 0x24]
mov cl, al
mov byte [esp + 0x28], cl
mov eax, dword [edx + 0x54]
sub eax, dword [edx + 0x50]
sar eax, 5
cmp dword [esp + 0x1c], 0
mov dword [esp + 0xa4], eax
mov al, byte [esp + 0x328]
jne 0x528a9d
test al, al
je 0x528a9d
lea eax, [esp + 0x178]
mov byte [esp + 0x180], cl
push eax
mov ecx, ebx
mov dword [esp + 0x180], str._02.02hhx
mov dword [esp + 0x17c], 0x92532c
call fcn.0040c69e
mov al, byte [esp + 0x328]
mov cl, byte [esp + 0x28]
mov edx, dword [esp + 0x24]
test cl, cl
jne 0x529621
lea eax, [esp + 0x1c]
push eax
lea eax, [esp + 0x18]
push eax
lea ecx, [esp + 0x4c]
call fcn.0040b087
mov ecx, dword [esp + 0x18]
mov esi, eax
mov eax, dword [esp + 0x14]
mov edi, edx
mov dword [esp + 0x3c], eax
mov dword [esp + 0x94], eax
mov eax, esi
or eax, edi
mov dword [esp + 0x60], esi
mov dword [esp + 0x64], edi
mov dword [esp + 0x7c], ecx
mov dword [esp + 0x98], ecx
jne 0x528bbe
mov ecx, dword [esp + 0x1c]
test ecx, ecx
jne 0x528b54
cmp byte [esp + 0x328], cl
je 0x528bab
mov eax, dword [ebx + 8]
mov ecx, dword [ebx + 0xc]
sub eax, ecx
cmp eax, 0x29
jae 0x528b1e
push 0x29
push str.Badly_formed_extended_line_op__length_0__n
mov ecx, ebx
call fcn.0041214d
jmp 0x528b4c
movups xmm0, xmmword [str.Badly_formed_extended_line_op__length_0__n]
movups xmmword [ecx], xmm0
movups xmm0, xmmword [0x932fb4]
movups xmmword [ecx + 0x10], xmm0
movq xmm0, qword [0x932fc4]
movq qword [ecx + 0x20], xmm0
mov al, byte [0x932fcc]
mov byte [ecx + 0x28], al
add dword [ebx + 0xc], 0x29
mov ecx, dword [esp + 0x1c]
test ecx, ecx
je 0x528bab
cmp byte [esp + 0x328], 0
je 0x528b89
mov eax, dword [ebx + 8]
mov ecx, dword [ebx + 0xc]
sub eax, ecx
cmp eax, 1
jae 0x528b7b
push 1
push 0x92406c
mov ecx, ebx
call fcn.0041214d
jmp 0x528b85
mov al, byte [0x92406c]
mov byte [ecx], al
inc dword [ebx + 0xc]
mov ecx, dword [esp + 0x1c]
push ecx
mov eax, esp
mov dword [esp + 0x20], 0
mov dword [eax], ecx
push dword [esp + 0x324]
call dword [esp + 0x324]
mov ecx, dword [esp + 0x24]
add esp, 8
mov eax, dword [esp + 0x14]
mov edx, dword [esp + 0x18]
mov dword [ebp], eax
mov dword [ebp + 4], edx
jmp 0x529ee1
lea eax, [esp + 0x1c]
push eax
lea eax, [esp + 0x18]
push eax
lea ecx, [esp + 0x4c]
call fcn.00406465
mov cl, byte [esp + 0x328]
mov byte [esp + 0x12], al
mov eax, dword [esp + 0x14]
mov dword [esp + 0x84], eax
mov eax, dword [esp + 0x18]
mov dword [esp + 0x6c], eax
test cl, cl
je 0x528c42
movzx ecx, byte [esp + 0x12]
lea eax, [esp + 0x250]
push ecx
push eax
call fcn.00411ca7
mov edx, dword [ebx + 0xc]
add esp, 8
mov esi, dword [eax + 4]
mov ecx, dword [eax]
mov eax, dword [ebx + 8]
sub eax, edx
cmp esi, eax
jbe 0x528c25
push esi
push ecx
mov ecx, ebx
call fcn.0041214d
jmp 0x528c37
test esi, esi
je 0x528c37
push esi
push ecx
push edx
call sub.VCRUNTIME140.dll_memcpy
add esp, 0xc
add dword [ebx + 0xc], esi
mov cl, byte [esp + 0x328]
mov esi, dword [esp + 0x60]
mov dl, byte [esp + 0x12]
movzx eax, dl
dec eax
cmp eax, 3
ja case.default.0x528c53
jmp dword [eax*4 + 0x52a070]
or byte [esp + 0x105], 4
test cl, cl
je 0x528c96
mov eax, dword [ebx + 8]
mov ecx, dword [ebx + 0xc]
sub eax, ecx
cmp eax, 1
jae 0x528c83
push 1
push 0x92406c
mov ecx, ebx
call fcn.0041214d
jmp 0x528c8d
mov al, byte [0x92406c]
mov byte [ecx], al
inc dword [ebx + 0xc]
push 0xc
mov ecx, ebx
call fcn.0040e444
test ebx, ebx
je 0x528ca7
push ebx
lea ecx, [esp + 0xec]
call fcn.00411f2c
lea ecx, [esp + 0xe0]
call fcn.004031ac
lea ecx, [esp + 0xe0]
call fcn.0040fd0d
jmp 0x529407
mov al, byte [esp + 0x4d]
mov ecx, esi
add ecx, 0xffffffff
mov byte [esp + 0x12], al
movzx eax, al
adc edi, 0xffffffff
cdq
mov dword [esp + 0x74], ecx
mov dword [esp + 0x150], ecx
mov dword [esp + 0x154], edi
cmp eax, ecx
jne 0x528cf6
cmp edx, edi
je 0x528eaf
cmp byte [esp + 0x12], 0
je 0x528eaf
call fcn.00415dfc
push 0
mov dword [esp + 0x150], eax
lea ecx, [esp + 0xc4]
push 0
lea eax, [esp + 0x2f0]
mov dword [esp + 0x150], 0x16
push 0
mov dword [esp + 0x2f4], 0
mov dword [esp + 0x304], 0
mov dword [esp + 0x308], 0xf
mov byte [esp + 0xdc], 0
mov dword [esp + 0xe0], 0
mov dword [esp + 0xe4], 1
mov dword [esp + 0xd8], 0
mov dword [esp + 0xd4], 0
mov dword [esp + 0xd0], 0
mov dword [esp + 0xcc], 0x924694
mov dword [esp + 0xe8], eax
call fcn.0040826f
mov eax, dword [esp + 0x74]
lea ecx, [esp + 0xc0]
mov edx, dword [esp + 0x7c]
mov dword [esp + 0x230], eax
mov al, byte [esp + 0x12]
mov byte [esp + 0x238], al
mov eax, dword [esp + 0x3c]
mov dword [esp + 0x240], eax
lea eax, [esp + 0x228]
push eax
mov dword [esp + 0x230], str.mismatching_address_size_at_offset_0x_8.8llx_expected_0x_2.2hhx_found_0x_2.2llx
mov dword [esp + 0x22c], 0x9332b0
mov dword [esp + 0x238], edi
mov dword [esp + 0x248], edx
call fcn.0040c69e
mov eax, dword [esp + 0xcc]
cmp eax, dword [esp + 0xc4]
je 0x528e1c
lea ecx, [esp + 0xc0]
call fcn.004067b2
lea eax, [esp + 0x148]
push eax
push dword [esp + 0xe0]
lea eax, [esp + 0xa4]
push eax
call fcn.00408deb
add esp, 0xc
lea ecx, [esp + 0xc0]
call fcn.0040934a
mov edx, dword [esp + 0x2fc]
cmp edx, 0x10
jb 0x528e83
mov ecx, dword [esp + 0x2e8]
inc edx
mov eax, ecx
cmp edx, 0x1000
jb 0x528e79
mov ecx, dword [ecx - 4]
add edx, 0x23
sub eax, ecx
add eax, 0xfffffffc
cmp eax, 0x1f
ja 0x529f06
push edx
push ecx
call fcn.004036ca
add esp, 8
mov eax, dword [esp + 0x9c]
push ecx
mov ecx, esp
mov dword [esp + 0xa0], 0
mov dword [ecx], eax
push dword [esp + 0x324]
call dword [esp + 0x324]
mov ecx, dword [esp + 0x7c]
add esp, 8
cmp ecx, 1
jne 0x528eb8
test edi, edi
je 0x528ed3
cmp ecx, 2
jne 0x528ec1
test edi, edi
je 0x528ed3
cmp ecx, 4
jne 0x528eca
test edi, edi
je 0x528ed3
cmp ecx, 8
jne 0x528f21
test edi, edi
jne 0x528f21
lea eax, [esp + 0x1c]
mov byte [esp + 0x4d], cl
push eax
lea eax, [esp + 0xf4]
push eax
lea eax, [esp + 0x1c]
push eax
movzx eax, cl
lea ecx, [esp + 0x50]
push eax
call fcn.0041562c
cmp byte [esp + 0x12], 0
mov esi, eax
movzx eax, byte [esp + 0x4d]
movzx ecx, byte [esp + 0x12]
cmovne eax, ecx
mov dword [esp + 0xe8], esi
mov dword [esp + 0xec], edx
mov byte [esp + 0x4d], al
jmp 0x528fad
lea eax, [esp + 0x94]
push eax
lea eax, [esp + 0x154]
push eax
push str.address_size_0x_2.2llx_of_DW_LNE_set_address_opcode_at_offset_0x_8.8llx_is_unsupported
sub esp, 8
mov esi, esp
call fcn.00415dfc
mov dword [esi + 4], eax
lea eax, [esp + 0x48]
push eax
mov dword [esi], 0x16
call fcn.00402d38
add esp, 0x14
mov ecx, esp
mov dword [ecx], 0
mov eax, dword [esp + 0x38]
mov dword [ecx], eax
push dword [esp + 0x324]
mov dword [esp + 0x3c], 0
call dword [esp + 0x324]
mov ecx, dword [esp + 0x3c]
add esp, 8
test ecx, ecx
je 0x528f8b
mov eax, dword [ecx]
push 1
call dword [eax]
mov eax, dword [esp + 0x74]
lea ecx, [esp + 0x44]
push edi
push eax
lea eax, [esp + 0x1c]
push eax
call fcn.00409c19
mov edx, dword [esp + 0xec]
mov esi, dword [esp + 0xe8]
cmp dword [esp + 0x1c], 0
jne 0x529407
cmp byte [esp + 0x328], 0
je 0x529407
lea eax, [esp + 0x1a0]
mov dword [esp + 0x1a4], str.__0x_16.16llx_
push eax
mov ecx, ebx
mov dword [esp + 0x1a4], 0x92fa18
mov dword [esp + 0x1ac], esi
mov dword [esp + 0x1b0], edx
call fcn.0040c69e
jmp 0x529407
xor eax, eax
lea ecx, [esp + 0x44]
mov word [esp + 0x2c0], ax
xorps xmm0, xmm0
mov byte [esp + 0x2c2], al
mov dword [esp + 0x2d0], eax
mov dword [esp + 0x2e0], eax
mov dword [esp + 0x2e4], eax
lea eax, [esp + 0x1c]
push eax
lea eax, [esp + 0x18]
movlpd qword [esp + 0x2cc], xmm0
push eax
lea eax, [esp + 0x228]
push eax
call fcn.0040a619
mov esi, dword [esp + 0x220]
lea eax, [esp + 0x228]
push esi
push 8
push eax
mov dword [esp + 0x80], esi
call fcn.0040d8c8
add esp, 0xc
lea ecx, [esp + 0x44]
movups xmm0, xmmword [eax]
movups xmmword [esp + 0x270], xmm0
movups xmm0, xmmword [eax + 0x10]
movups xmmword [esp + 0x280], xmm0
movq xmm0, qword [eax + 0x20]
lea eax, [esp + 0x1c]
push eax
lea eax, [esp + 0x18]
movq qword [esp + 0x294], xmm0
push eax
call fcn.0040b087
mov dword [esp + 0x298], eax
lea ecx, [esp + 0x44]
lea eax, [esp + 0x1c]
mov dword [esp + 0x29c], edx
push eax
lea eax, [esp + 0x18]
push eax
call fcn.0040b087
mov dword [esp + 0x2a0], eax
lea ecx, [esp + 0x44]
lea eax, [esp + 0x1c]
mov dword [esp + 0x2a4], edx
push eax
lea eax, [esp + 0x18]
push eax
call fcn.0040b087
mov dword [esp + 0x2a8], eax
mov eax, dword [esp + 0x24]
mov dword [esp + 0x2ac], edx
mov edi, dword [eax + 0x48]
cmp edi, dword [eax + 0x4c]
je 0x529118
mov ecx, 0x1e
lea esi, [esp + 0x270]
rep movsd dword es:[edi], dword [esi]
add dword [eax + 0x48], 0x78
mov esi, dword [esp + 0x74]
jmp 0x529129
lea ecx, [esp + 0x270]
push ecx
push edi
lea ecx, [eax + 0x44]
call fcn.00408de6
cmp dword [esp + 0x1c], 0
jne 0x529407
cmp byte [esp + 0x328], 0
je 0x529407
mov eax, dword [esp + 0x2a0]
mov ecx, dword [ebx + 0xc]
mov dword [esp + 0x1b8], eax
mov eax, dword [esp + 0x2a4]
mov dword [esp + 0x1bc], eax
mov eax, dword [ebx + 8]
sub eax, ecx
mov dword [esp + 0x1b4], str._0x_16.16llx_
mov dword [esp + 0x1b0], 0x92fa18
cmp eax, 2
jae 0x529193
push 2
push 0x92fa88
mov ecx, ebx
call fcn.0041214d
mov edi, eax
jmp 0x5291a2
mov ax, word [0x92fa88]
mov edi, ebx
mov word [ecx], ax
add dword [ebx + 0xc], 2
test esi, esi
je 0x5291bb
lea ecx, [esi + 1]
nop dword [eax]
mov al, byte [esi]
inc esi
test al, al
jne 0x5291b0
sub esi, ecx
jmp 0x5291bd
xor esi, esi
mov eax, dword [edi + 8]
mov ecx, dword [edi + 0xc]
sub eax, ecx
cmp esi, eax
jbe 0x5291d9
push esi
push dword [esp + 0x78]
mov ecx, edi
call fcn.0041214d
mov edi, eax
jmp 0x5291ee
test esi, esi
je 0x5291ee
push esi
push dword [esp + 0x78]
push ecx
call sub.VCRUNTIME140.dll_memcpy
add esp, 0xc
add dword [edi + 0xc], esi
mov eax, dword [edi + 8]
mov ecx, dword [edi + 0xc]
sub eax, ecx
cmp eax, 6
jae 0x52920d
push 6
push str.__dir
mov ecx, edi
call fcn.0041214d
mov edi, eax
jmp 0x529222
mov eax, dword [str.__dir]
mov dword [ecx], eax
mov ax, word [0x9330b8]
mov word [ecx + 4], ax
add dword [edi + 0xc], 6
push dword [esp + 0x29c]
mov ecx, edi
push dword [esp + 0x29c]
call fcn.0040b5be
mov ecx, eax
mov eax, dword [ecx + 8]
mov edx, dword [ecx + 0xc]
sub eax, edx
cmp eax, 0xb
jae 0x529256
push 0xb
push str.__mod_time
call fcn.0041214d
mov ecx, eax
jmp 0x529278
movq xmm0, qword [str.__mod_time]
movq qword [edx], xmm0
mov ax, word [0x9330c4]
mov word [edx + 8], ax
mov al, byte [0x9330c6]
mov byte [edx + 0xa], al
add dword [ecx + 0xc], 0xb
lea eax, [esp + 0x1b0]
push eax
call fcn.0040c69e
mov ecx, eax
mov eax, dword [ecx + 8]
mov edx, dword [ecx + 0xc]
sub eax, edx
cmp eax, 9
jae 0x5292a4
push 9
push str.__length
call fcn.0041214d
mov ecx, eax
jmp 0x5292bc
movq xmm0, qword [str.__length]
movq qword [edx], xmm0
mov al, byte [0x9330e4]
mov byte [edx + 8], al
add dword [ecx + 0xc], 9
push dword [esp + 0x2ac]
push dword [esp + 0x2ac]
call fcn.0040b5be
mov edx, eax
mov ecx, dword [edx + 8]
mov esi, dword [edx + 0xc]
sub ecx, esi
cmp ecx, 1
jae 0x5292f1
push 1
push 0x925880
mov ecx, edx
call fcn.0041214d
jmp 0x529407
mov al, byte [0x925880]
mov byte [esi], al
inc dword [edx + 0xc]
jmp 0x529407
lea eax, [esp + 0x1c]
push eax
lea eax, [esp + 0x18]
push eax
lea ecx, [esp + 0x4c]
call fcn.0040b087
cmp dword [esp + 0x1c], 0
mov dword [esp + 0x100], eax
jne 0x529407
cmp byte [esp + 0x328], 0
je 0x529407
mov eax, dword [ebx + 8]
mov ecx, dword [ebx + 0xc]
sub eax, ecx
cmp eax, 2
jae 0x529361
push 2
push 0x92fa88
mov ecx, ebx
call fcn.0041214d
push dword [esp + 0x100]
mov ecx, eax
call fcn.004046f6
jmp 0x5292cf
mov ax, word [0x92fa88]
mov word [ecx], ax
mov eax, ebx
push dword [esp + 0x100]
add dword [ebx + 0xc], 2
mov ecx, eax
call fcn.004046f6
jmp 0x5292cf
cmp dword [esp + 0x1c], 0
jne 0x5293ed
test cl, cl
je 0x5293ed
lea eax, [esp + 0x1c0]
mov dword [esp + 0x1c4], str._length__llx
push eax
lea eax, [esp + 0x188]
mov dword [esp + 0x1c4], 0x92fa18
push eax
mov ecx, ebx
mov dword [esp + 0x1d0], esi
mov dword [esp + 0x1d4], edi
mov dword [esp + 0x190], str.Unrecognized_extended_op_0x_02.02hhx
mov dword [esp + 0x18c], 0x92532c
mov byte [esp + 0x194], dl
call fcn.0040c69e
mov ecx, eax
call fcn.0040c69e
mov ecx, esi
mov eax, edi
add ecx, 0xffffffff
adc eax, 0xffffffff
push eax
push ecx
lea eax, [esp + 0x1c]
push eax
lea ecx, [esp + 0x50]
call fcn.00409c19
mov esi, dword [esp + 0x3c]
mov edi, esi
add edi, dword [esp + 0x60]
mov edx, dword [esp + 0x7c]
adc edx, dword [esp + 0x64]
cmp dword [esp + 0x1c], 0
mov dword [esp + 0x3c], edx
jne 0x5294ca
mov ecx, dword [esp + 0x14]
mov eax, dword [esp + 0x18]
cmp ecx, edi
jne 0x52943c
cmp eax, edx
je 0x529612
sub ecx, esi
mov dword [esp + 0x158], ecx
sbb eax, dword [esp + 0x7c]
mov dword [esp + 0x15c], eax
lea eax, [esp + 0x158]
push eax
lea eax, [esp + 0x64]
push eax
lea eax, [esp + 0x9c]
push eax
push str.unexpected_line_op_length_at_offset_0x_8.8llx_expected_0x_2.2llx_found_0x_2.2llx
sub esp, 8
mov esi, esp
call fcn.00415dfc
mov dword [esi + 4], eax
lea eax, [esp + 0x50]
push eax
mov dword [esi], 0x2a
call fcn.0040f3da
add esp, 0x18
mov ecx, esp
mov dword [ecx], 0
mov eax, dword [esp + 0x3c]
mov dword [ecx], eax
push dword [esp + 0x324]
mov dword [esp + 0x40], 0
call dword [esp + 0x324]
mov ecx, dword [esp + 0x40]
add esp, 8
test ecx, ecx
je 0x5294bf
mov eax, dword [ecx]
push 1
call dword [eax]
cmp dword [esp + 0x1c], 0
je 0x529612
cmp byte [esp + 0x328], 0
je 0x529612
mov eax, dword [esp + 0x84]
lea ecx, [esp + 0x44]
mov dword [esp + 0xa8], eax
mov eax, dword [esp + 0x6c]
mov dword [esp + 0xac], eax
lea eax, [esp + 0xb0]
push eax
lea eax, [esp + 0xac]
mov dword [esp + 0xb4], 0
push eax
call fcn.00406465
cmp dword [esp + 0xb0], 0
mov dl, al
mov byte [esp + 0x12], dl
jne 0x5295d8
mov ecx, dword [ebx + 8]
mov esi, dword [ebx + 0xc]
sub ecx, esi
cmp ecx, 0x11
jae 0x52954a
push 0x11
push str.___parsing_error_
mov ecx, ebx
call fcn.0041214d
mov dl, byte [esp + 0x12]
jmp 0x529560
movups xmm0, xmmword [str.___parsing_error_]
movups xmmword [esi], xmm0
mov al, byte [0x93319c]
mov byte [esi + 0x10], al
add dword [ebx + 0xc], 0x11
lea eax, [esp + 0x160]
mov dword [esp + 0x164], str.__2.2hhx
push eax
mov ecx, ebx
mov dword [esp + 0x164], 0x92532c
mov byte [esp + 0x16c], dl
call fcn.0040c69e
lea eax, [esp + 0xb0]
push eax
lea eax, [esp + 0xac]
push eax
lea ecx, [esp + 0x4c]
call fcn.00406465
cmp dword [esp + 0xb0], 0
mov dl, al
je 0x529560
mov eax, dword [ebx + 8]
mov ecx, dword [ebx + 0xc]
sub eax, ecx
cmp eax, 1
jae 0x5295ce
push 1
push 0x925880
mov ecx, ebx
call fcn.0041214d
jmp 0x5295d8
mov al, byte [0x925880]
mov byte [ecx], al
inc dword [ebx + 0xc]
mov eax, dword [esp + 0xb0]
lea ecx, [esp + 0x12]
push ecx
push ecx
mov ecx, esp
mov dword [esp + 0xb8], 0
mov byte [esp + 0x1a], 0
mov dword [ecx], eax
call fcn.0040fe9d
mov ecx, dword [esp + 0xb8]
add esp, 8
test ecx, ecx
je 0x529612
mov eax, dword [ecx]
push 1
call dword [eax]
mov eax, dword [esp + 0x3c]
mov dword [ebp], edi
mov dword [ebp + 4], eax
jmp 0x529e61
cmp cl, byte [edx + 0x26]
jae 0x529d39
test al, al
je 0x52967f
movzx eax, cl
push eax
lea eax, [esp + 0x25c]
push eax
call fcn.004050d8
mov edx, dword [ebx + 0xc]
add esp, 8
mov ebp, dword [eax + 4]
mov ecx, dword [eax]
mov eax, dword [ebx + 8]
sub eax, edx
cmp ebp, eax
jbe 0x52965e
push ebp
push ecx
mov ecx, ebx
call fcn.0041214d
jmp 0x529670
test ebp, ebp
je 0x529670
push ebp
push ecx
push edx
call sub.VCRUNTIME140.dll_memcpy
add esp, 0xc
add dword [ebx + 0xc], ebp
mov al, byte [esp + 0x328]
mov ebp, dword [esp + 0x5c]
mov cl, byte [esp + 0x28]
movzx ecx, cl
mov dword [esp + 0x6c], ecx
dec ecx
cmp ecx, 0xb
ja case.default.0x529690
jmp dword [ecx*4 + 0x52a080]
test al, al
je 0x529e36
mov eax, dword [ebx + 8]
mov ecx, dword [ebx + 0xc]
sub eax, ecx
cmp eax, 1
jae 0x5296bf
push 1
push 0x92406c
mov ecx, ebx
call fcn.0041214d
jmp 0x529e2d
mov al, byte [0x92406c]
mov byte [ecx], al
inc dword [ebx + 0xc]
jmp 0x529e2d
lea eax, [esp + 0x14]
push eax
lea eax, [esp + 0x48]
push eax
lea eax, [esp + 0x208]
push eax
call fcn.005242e0
add esp, 0xc
cmp byte [esp + 0x208], 0
je 0x529e53
push edi
push esi
push dword [esp + 0x30]
lea ecx, [esp + 0xec]
push dword [esp + 0x210]
push dword [esp + 0x210]
call fcn.00403ae9
cmp byte [esp + 0x328], 0
mov edi, eax
mov dword [esp + 0x6c], edx
je 0x529e53
mov ecx, dword [ebx + 8]
mov esi, dword [ebx + 0xc]
sub ecx, esi
cmp ecx, 2
jae 0x529747
push 2
push 0x92fa88
mov ecx, ebx
call fcn.0041214d
jmp 0x529756
mov ax, word [0x92fa88]
mov word [esi], ax
mov eax, ebx
add dword [ebx + 0xc], 2
push dword [esp + 0x6c]
mov ecx, eax
push edi
call fcn.0040b5be
mov edx, eax
mov ecx, dword [edx + 8]
mov esi, dword [edx + 0xc]
sub ecx, esi
cmp ecx, 1
jae 0x529784
push 1
push 0x925880
mov ecx, edx
call fcn.0041214d
jmp 0x529e53
mov al, byte [0x925880]
mov byte [esi], al
inc dword [edx + 0xc]
jmp 0x529e53
lea eax, [esp + 0x1c]
push eax
lea eax, [esp + 0x18]
push eax
lea ecx, [esp + 0x4c]
call fcn.0040575e
cmp dword [esp + 0x1c], 0
jne 0x529e53
add dword [esp + 0xf8], eax
cmp byte [esp + 0x328], 0
je 0x529e53
mov eax, dword [ebx + 8]
mov ecx, dword [ebx + 0xc]
sub eax, ecx
cmp eax, 2
jae 0x5297f4
push 2
push 0x92fa88
mov ecx, ebx
call fcn.0041214d
push dword [esp + 0xf8]
mov ecx, eax
call fcn.004046f6
jmp 0x529762
mov ax, word [0x92fa88]
mov word [ecx], ax
mov eax, ebx
push dword [esp + 0xf8]
add dword [ebx + 0xc], 2
mov ecx, eax
call fcn.004046f6
jmp 0x529762
lea eax, [esp + 0x14]
push eax
lea eax, [esp + 0x48]
push eax
lea eax, [esp + 0x70]
push eax
call fcn.005242a0
add esp, 0xc
cmp byte [esp + 0x6a], 0
je 0x529e53
cmp byte [esp + 0x328], 0
mov ax, word [esp + 0x68]
mov word [esp + 0xfe], ax
je 0x529e53
mov eax, dword [ebx + 8]
mov ecx, dword [ebx + 0xc]
sub eax, ecx
cmp eax, 2
jae 0x529883
push 2
push 0x92fa88
mov ecx, ebx
call fcn.0041214d
mov ecx, eax
movzx eax, word [esp + 0xfe]
push eax
call fcn.0040517d
jmp 0x529762
mov ax, word [0x92fa88]
mov word [ecx], ax
mov ecx, ebx
movzx eax, word [esp + 0xfe]
add dword [ebx + 0xc], 2
push eax
call fcn.0040517d
jmp 0x529762
lea eax, [esp + 0x14]
push eax
lea eax, [esp + 0x48]
push eax
lea eax, [esp + 0x34]
push eax
call fcn.005242a0
add esp, 0xc
cmp byte [esp + 0x2e], 0
je 0x529e53
cmp byte [esp + 0x328], 0
mov ax, word [esp + 0x2c]
mov word [esp + 0xfc], ax
je 0x529e53
mov eax, dword [ebx + 8]
mov ecx, dword [ebx + 0xc]
sub eax, ecx
cmp eax, 2
jae 0x529912
push 2
push 0x92fa88
mov ecx, ebx
call fcn.0041214d
mov ecx, eax
movzx eax, word [esp + 0xfc]
push eax
call fcn.0040517d
jmp 0x529762
mov ax, word [0x92fa88]
mov word [ecx], ax
mov ecx, ebx
movzx eax, word [esp + 0xfc]
add dword [ebx + 0xc], 2
push eax
call fcn.0040517d
jmp 0x529762
mov cl, byte [esp + 0x105]
mov al, cl
not al
xor al, cl
and al, 1
xor cl, al
mov byte [esp + 0x105], cl
jmp 0x529e53
or byte [esp + 0x105], 2
jmp 0x529e53
push edi
push esi
push dword [esp + 0x30]
lea eax, [esp + 0x26c]
push eax
lea ecx, [esp + 0xf0]
call fcn.00413ca0
cmp byte [esp + 0x328], 0
mov ecx, dword [eax]
mov eax, dword [eax + 4]
je 0x529e53
mov dword [esp + 0x1dc], eax
lea eax, [esp + 0x1d0]
mov dword [esp + 0x1d8], ecx
mov ecx, ebx
push eax
mov dword [esp + 0x1d8], str.__0x_16.16llx_
mov dword [esp + 0x1d4], 0x92fa18
call fcn.0040c69e
jmp 0x529e53
lea eax, [esp + 0x1c]
push eax
push 0
lea eax, [esp + 0x1c]
push eax
push 2
lea ecx, [esp + 0x54]
call fcn.0041562c
cmp dword [esp + 0x1c], 0
mov cx, ax
jne 0x529e53
movzx eax, cx
cdq
add dword [esp + 0xe8], eax
adc dword [esp + 0xec], edx
cmp byte [esp + 0x328], 0
je 0x529e53
lea eax, [esp + 0x16c]
mov word [esp + 0x174], cx
push eax
mov ecx, ebx
mov dword [esp + 0x174], str.__0x_4.4hx_
mov dword [esp + 0x170], 0x930618
call fcn.0040c69e
jmp 0x529e53
or byte [esp + 0x105], 8
jmp 0x529e53
or byte [esp + 0x105], 0x10
jmp 0x529e53
lea eax, [esp + 0x14]
push eax
lea eax, [esp + 0x48]
push eax
lea eax, [esp + 0x60]
push eax
call fcn.00524260
mov ax, word [esp + 0x64]
add esp, 0xc
test ah, ah
je 0x529e53
cmp byte [esp + 0x328], 0
mov byte [esp + 0x104], al
je 0x529e53
mov eax, dword [ebx + 8]
mov ecx, dword [ebx + 0xc]
sub eax, ecx
cmp eax, 2
jae 0x529aba
push 2
push 0x92fa88
mov ecx, ebx
call fcn.0041214d
mov ecx, eax
movzx eax, byte [esp + 0x104]
cdq
push edx
push eax
jmp 0x52975d
mov ax, word [0x92fa88]
mov word [ecx], ax
mov ecx, ebx
movzx eax, byte [esp + 0x104]
add dword [ebx + 0xc], 2
cdq
push edx
push eax
jmp 0x52975d
test al, al
je 0x529b1d
mov eax, dword [ebx + 8]
mov ecx, dword [ebx + 0xc]
sub eax, ecx
cmp eax, 0x1c
jae 0x529afa
push 0x1c
push str.Unrecognized_standard_opcode
mov ecx, ebx
call fcn.0041214d
jmp 0x529b1d
movups xmm0, xmmword [str.Unrecognized_standard_opcode]
movups xmmword [ecx], xmm0
movq xmm0, qword [0x9331d0]
movq qword [ecx + 0x10], xmm0
mov eax, dword [0x9331d8]
mov dword [ecx + 0x18], eax
add dword [ebx + 0xc], 0x1c
mov eax, dword [esp + 0x24]
xor edi, edi
mov ecx, dword [esp + 0x6c]
xor esi, esi
xor ebp, ebp
mov dword [esp + 0x3c], edi
mov dword [esp + 0x88], edi
mov eax, dword [eax + 0x2c]
mov dword [esp + 0x8c], esi
mov dword [esp + 0x90], ebp
mov byte [esp + 0x12], 0
mov al, byte [eax + ecx - 1]
mov byte [esp + 0x13], al
test al, al
je 0x529be4
mov bl, byte [esp + 0x12]
mov bh, al
lea eax, [esp + 0x14]
push eax
lea eax, [esp + 0x48]
push eax
lea eax, [esp + 0x1e8]
push eax
call fcn.005242e0
add esp, 0xc
cmp byte [esp + 0x1e8], 0
je 0x529bd2
cmp esi, ebp
je 0x529ba9
mov eax, dword [esp + 0x1e0]
mov ecx, dword [esp + 0x1e4]
mov dword [esi], eax
mov dword [esi + 4], ecx
add esi, 8
mov dword [esp + 0x8c], esi
jmp 0x529bcc
lea eax, [esp + 0x1e0]
push eax
push esi
lea ecx, [esp + 0x90]
call fcn.0040619a
mov ebp, dword [esp + 0x90]
mov esi, dword [esp + 0x8c]
inc bl
cmp bl, bh
jb 0x529b62
mov edi, dword [esp + 0x88]
mov ebx, dword [esp + 0xa0]
mov dword [esp + 0x3c], edi
cmp byte [esp + 0x328], 0
je 0x529cda
cmp edi, esi
je 0x529cda
mov eax, dword [ebx + 8]
mov ecx, dword [ebx + 0xc]
sub eax, ecx
cmp eax, 0xc
jae 0x529c17
push 0xc
push str.__operands:
mov ecx, ebx
call fcn.0041214d
jmp 0x529c2f
movq xmm0, qword [str.__operands:]
movq qword [ecx], xmm0
mov eax, dword [0x9331ec]
mov dword [ecx + 8], eax
add dword [ebx + 0xc], 0xc
mov al, 1
mov edx, dword [edi]
mov ecx, dword [edi + 4]
mov dword [esp + 0x6c], edx
mov dword [esp + 0x84], ecx
test al, al
jne 0x529c73
mov eax, dword [ebx + 8]
mov ecx, dword [ebx + 0xc]
sub eax, ecx
cmp eax, 2
jae 0x529c66
push 2
push 0x92f85c
mov ecx, ebx
call fcn.0041214d
mov edx, dword [esp + 0x6c]
jmp 0x529c73
mov ax, word [0x92f85c]
mov word [ecx], ax
add dword [ebx + 0xc], 2
mov eax, dword [esp + 0x84]
mov ecx, ebx
mov dword [esp + 0x1fc], eax
lea eax, [esp + 0x1f0]
push eax
mov byte [esp + 0x17], 0
mov dword [esp + 0x1f8], str.0x_16.16llx
mov dword [esp + 0x1f4], 0x92fa18
mov dword [esp + 0x1fc], edx
call fcn.0040c69e
mov al, byte [esp + 0x13]
add edi, 8
cmp edi, esi
jne 0x529c31
mov eax, dword [ebx + 0xc]
cmp eax, dword [ebx + 8]
jb 0x529cd4
push 0x29
mov ecx, ebx
call fcn.0040c4b4
jmp 0x529cda
mov byte [eax], 0x29
inc dword [ebx + 0xc]
mov ecx, dword [esp + 0x3c]
test ecx, ecx
je 0x529d30
sub ebp, ecx
mov eax, ecx
and ebp, 0xfffffff8
cmp ebp, 0x1000
jb 0x529d05
mov ecx, dword [ecx - 4]
add ebp, 0x23
sub eax, ecx
add eax, 0xfffffffc
cmp eax, 0x1f
ja 0x529f06
push ebp
push ecx
call fcn.004036ca
add esp, 8
mov dword [esp + 0x88], 0
mov dword [esp + 0x8c], 0
mov dword [esp + 0x90], 0
mov ebp, dword [esp + 0x5c]
jmp 0x529e53
push edi
push esi
push dword [esp + 0x30]
lea eax, [esp + 0x21c]
push eax
lea ecx, [esp + 0xf0]
call fcn.004089c7
cmp byte [esp + 0x328], 0
je 0x529e36
mov eax, dword [ebx + 8]
mov ecx, dword [ebx + 0xc]
sub eax, ecx
cmp eax, 0xb
jae 0x529d7e
push 0xb
push str.address_
mov ecx, ebx
call fcn.0041214d
jmp 0x529da2
movq xmm0, qword [str.address_]
movq qword [ecx], xmm0
mov ax, word [0x93320c]
mov word [ecx + 8], ax
mov al, byte [0x93320e]
mov byte [ecx + 0xa], al
mov eax, ebx
add dword [ebx + 0xc], 0xb
push dword [esp + 0x214]
mov ecx, eax
push dword [esp + 0x214]
call fcn.0040b5be
mov ecx, eax
mov eax, dword [ecx + 8]
mov edx, dword [ecx + 0xc]
sub eax, edx
cmp eax, 0xb
jae 0x529dd6
push 0xb
push str.___line_
call fcn.0041214d
mov ecx, eax
jmp 0x529df8
movq xmm0, qword [str.___line_]
movq qword [edx], xmm0
mov ax, word [0x93321c]
mov word [edx + 8], ax
mov al, byte [0x93321e]
mov byte [edx + 0xa], al
add dword [ecx + 0xc], 0xb
push dword [esp + 0x218]
call fcn.0040517d
mov edx, eax
mov ecx, dword [edx + 8]
mov esi, dword [edx + 0xc]
sub ecx, esi
cmp ecx, 1
jae 0x529e23
push 1
push 0x92406c
mov ecx, edx
call fcn.0041214d
jmp 0x529e2d
mov al, byte [0x92406c]
mov byte [esi], al
inc dword [edx + 0xc]
push 0xc
mov ecx, ebx
call fcn.0040e444
test ebx, ebx
je 0x529e47
push ebx
lea ecx, [esp + 0xec]
call fcn.00411f2c
lea ecx, [esp + 0xe0]
call fcn.004031ac
mov ecx, dword [esp + 0x18]
mov eax, dword [esp + 0x14]
mov dword [ebp + 4], ecx
mov dword [ebp], eax
mov cl, byte [esp + 0x328]
test cl, cl
je 0x529eb0
mov edx, dword [esp + 0x24]
mov eax, dword [edx + 0x54]
sub eax, dword [edx + 0x50]
sar eax, 5
cmp eax, dword [esp + 0xa4]
jne 0x529eb0
mov eax, dword [ebx + 8]
mov edx, dword [ebx + 0xc]
sub eax, edx
cmp eax, 1
jae 0x529ea6
push 1
push 0x92406c
mov ecx, ebx
call fcn.0041214d
mov cl, byte [esp + 0x328]
jmp 0x529eb0
mov al, byte [0x92406c]
mov byte [edx], al
inc dword [ebx + 0xc]
mov eax, dword [esp + 0x1c]
test eax, eax
je 0x529eeb
cmp byte [esp + 0x28], 0
jne 0x529f0c
push ecx
mov ecx, esp
mov dword [esp + 0x20], 0
mov dword [ecx], eax
push dword [esp + 0x324]
call dword [esp + 0x324]
mov ecx, dword [esp + 0x24]
add esp, 8
test ecx, ecx
je 0x529eeb
mov eax, dword [ecx]
push 1
call dword [eax]
mov edi, dword [ebp + 4]
mov esi, dword [ebp]
cmp edi, dword [esp + 0x40]
ja 0x529f5d
jb 0x5289d0
cmp esi, dword [esp + 0x30]
jmp 0x5289bb
call dword [sym.imp.api_ms_win_crt_runtime_l1_1_0.dll__invalid_parameter_noinfo_noreturn]
test cl, cl
je 0x529f49
mov eax, dword [ebx + 8]
mov ecx, dword [ebx + 0xc]
sub eax, ecx
cmp eax, 1
jae 0x529f3f
push 1
push 0x92406c
mov ecx, ebx
call fcn.0041214d
mov ecx, dword [esp + 0x80]
mov eax, dword [esp + 0x1c]
mov dword [ecx], eax
mov eax, ecx
jmp 0x52a054
mov al, byte [0x92406c]
mov byte [ecx], al
inc dword [ebx + 0xc]
mov ecx, dword [esp + 0x80]
mov eax, dword [esp + 0x1c]
mov dword [ecx], eax
mov eax, ecx
jmp 0x52a054
cmp byte [esp + 0x128], 0
jne 0x529fc9
lea eax, [esp + 0xb8]
push eax
push str.last_sequence_in_debug_line_table_at_offset_0x_8.8llx_is_not_terminated
sub esp, 8
lea edi, [esp + 0x48]
mov esi, esp
call fcn.00415dfc
push edi
mov dword [esi], 0x2a
mov dword [esi + 4], eax
call fcn.004123aa
add esp, 0x10
mov ecx, esp
mov dword [ecx], 0
mov eax, dword [esp + 0x3c]
mov dword [ecx], eax
push dword [esp + 0x324]
mov dword [esp + 0x40], 0
call dword [esp + 0x324]
mov ecx, dword [esp + 0x40]
add esp, 8
test ecx, ecx
je 0x529fc9
mov eax, dword [ecx]
push 1
call dword [eax]
mov edi, dword [esp + 0x24]
add edi, 0x5c
mov eax, dword [edi]
cmp eax, dword [edi + 4]
je 0x52a01c
lea eax, [esp + 0xa4]
push edi
push eax
call fcn.0040745f
push edi
mov esi, dword [eax]
lea eax, [esp + 0xac]
push eax
call fcn.00410924
mov ecx, esi
push 0x403c29
mov edi, dword [eax]
sub ecx, edi
mov eax, 0x66666667
imul ecx
sar edx, 4
mov eax, edx
shr eax, 0x1f
add eax, edx
push eax
push esi
push edi
call fcn.0040dabc
add esp, 0x20
test ebx, ebx
je 0x52a047
mov eax, dword [ebx + 8]
mov ecx, dword [ebx + 0xc]
sub eax, ecx
cmp eax, 1
jae 0x52a03d
push 1
push 0x92406c
mov ecx, ebx
call fcn.0041214d
jmp 0x52a047
mov al, byte [0x92406c]
mov byte [ecx], al
inc dword [ebx + 0xc]
mov eax, dword [esp + 0x80]
mov dword [eax], 0
mov ecx, dword [esp + 0x300]
pop edi
pop esi
pop ebp
pop ebx
xor ecx, esp
call fcn.004087b5
add esp, 0x2f4
ret 0x24