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

Disassembly:
mov eax, 0x1560c
call fcn.005865a0
mov eax, dword [0x65ada4]
xor eax, esp
mov dword [esp + 0x15608], eax
mov eax, dword [esp + 0x15610]
mov dword [esp + 0x2c], eax
mov eax, dword [esp + 0x1561c]
push ebx
mov ebx, dword [esp + 0x1561c]
mov dword [esp + 0x38], eax
or eax, 0xffffffff
push ebp
xor ebp, ebp
push edi
mov dword [esp + 0x2c], eax
mov dword [esp + 0x48], eax
mov dword [esp + 0x6c], eax
xor eax, eax
xor edi, edi
push 0x7f
mov dword [esp + 0x24], ecx
mov dword [esp + 0xbc], edx
mov byte [esp + 0x1b], 0
mov dword [esp + 0x90], ebp
mov dword [esp + 0xa4], ebp
mov dword [esp + 0x54], ebp
mov byte [esp + 0x2f], 0
mov dword [esp + 0x40], ebp
mov byte [esp + 0x2b], 0
mov byte [esp + 0x23], 1
mov dword [esp + 0x1c], edi
mov dword [esp + 0x6c], ebp
mov dword [esp + 0x58], ebp
mov dword [esp + 0x64], ebp
mov byte [esp + 0x36], 0
mov byte [esp + 0x5f], 1
mov dword [esp + 0xd0], eax
mov dword [esp + 0xd4], eax
mov word [esp + 0xd8], ax
mov dword [esp + 0xc4], eax
mov dword [esp + 0xc8], eax
mov word [esp + 0xcc], ax
call dword [sym.imp.MSVCR90.dll_malloc]
mov cl, byte [esi + 0x11]
mov byte [eax], cl
mov dword [esp + 0x94], eax
mov byte [eax + 1], 0
add esp, 4
mov dword [esp + 0x4c], ebp
mov eax, 0xff
mov ecx, 0xffffffff
sub eax, 1
mov dword [esp + eax*4 + 0x110], ecx
jns 0x5220f1
push 0xcb9
push str.P:_seibt_transbascheckpnt_tb68_1_checkpointcatman_spool.c
push 0x195
lea edx, [esp + 0xec]
push 0xa
push edx
mov dword [esp + 0x104], ebp
mov dword [esp + 0x100], 1
call fcn.0057e120
add esp, 0x14
test eax, eax
jne 0x522142
mov dword [esi + 0x50], 6
mov ebp, edi
jmp 0x52379f
push 0xff4c
call dword [sym.imp.MSVCR90.dll_malloc]
add esp, 4
mov dword [esp + 0x10], eax
cmp eax, ebp
jne 0x522166
mov dword [esi + 0x50], 6
mov ebp, eax
jmp 0x52379f
push 0xff4c
push ebp
push eax
call sub.MSVCR90.dll_memset
mov edx, dword [0x62951c]
lea ecx, [esp + 0x3124]
push ecx
push edx
push 0x628fc8
push 0xffffffffffffffff
call fcn.004a84f0
add esp, 0x1c
mov dword [esi + 0x50], eax
cmp eax, ebp
jne 0x5239dd
cmp byte [esi + 0x54], 0
mov byte [esp + 0x2b], 1
je 0x5221e7
cmp dword [esi + 0x37], 0x3e8
je 0x5221bb
mov dword [esi + 0x50], 0x4c36
jmp 0x52389b
cmp dword [esi + 0x6d], 1
push 1
jne 0x5221d0
push esi
xor ecx, ecx
call fcn.0051b720
add esp, 8
jmp 0x5221da
mov ecx, esi
call fcn.00518630
add esp, 4
mov dword [esi + 0x50], eax
cmp eax, ebp
jne 0x5238df
jmp 0x522223
cmp dword [esi + 0x37], 0x3e9
jne 0x522223
cmp dword [esi + 0x6d], 1
push 1
jne 0x522205
push esi
xor ecx, ecx
call fcn.0051b720
add esp, 8
jmp 0x52220f
mov ecx, esi
call fcn.00518630
add esp, 4
mov dword [esi + 0x50], eax
cmp eax, ebp
jne 0x5238df
cmp dword [esi + 0x37], 0x3e9
je 0x5221f0
mov eax, dword [esp + 0x15620]
cmp eax, 4
je 0x522506
cmp eax, 2
je 0x52243c
cmp eax, 3
je 0x52243c
mov eax, dword [esp + 0x38]
mov ebx, dword [eax + 0x218]
mov edx, dword [ebx + 0x140]
lea ecx, [esp + 0xa0]
push ecx
push ebp
push ebp
push edx
call fcn.0047e8e0
mov eax, dword [ebx + 0x140]
lea edi, [eax + 0x15]
mov eax, dword [eax + 4]
add eax, 0x1c
lea ecx, [edi + 0x195]
lea edx, [esp + 0x64]
push edx
mov edx, dword [edi + 0x1a3]
mov dword [esp + 0x78], ecx
movzx ecx, word [edi + 0x19d]
mov dword [esp + 0x58], eax
lea eax, [esp + 0x7c]
push eax
push ecx
push edx
mov dword [esp + 0x38], edi
call fcn.005274f0
mov eax, dword [esp + 0x74]
add esp, 0x20
cmp ax, bp
jle 0x522342
cwde
imul eax, eax, 0x114
push eax
call dword [sym.imp.MSVCR90.dll_malloc]
add esp, 4
mov dword [esp + 0x60], eax
cmp eax, ebp
je 0x523794
mov edx, dword [esp + 0x54]
xor ecx, ecx
xor eax, eax
cmp cx, dx
jge 0x52230c
mov ecx, dword [esp + 0x60]
sub ecx, 0xffffff80
jmp 0x5222f0
mov dword [ecx], 0xffffffff
mov edx, dword [esp + 0x54]
movsx edi, dx
inc eax
add ecx, 0x114
cmp eax, edi
jl 0x5222f0
mov edi, dword [esp + 0x18]
mov eax, dword [esp + 0x38]
mov ecx, dword [esp + 0x40]
push ecx
mov ecx, dword [esp + 0x48]
mov byte [eax + 0x13], 0
lea eax, [esp + 0x36]
push eax
mov eax, dword [esp + 0x68]
push ebp
push ecx
movsx edx, dx
push edx
push eax
push edi
push esi
call fcn.005182f0
add esp, 0x20
mov dword [esi + 0x50], eax
cmp eax, ebp
jne 0x5239dd
mov ecx, dword [esp + 0x20]
cmp byte [ecx + 0x311], 0
jne 0x52236f
mov eax, dword [esp + 0x40]
mov edi, dword [esp + 0x18]
lea edx, [esi + 0x7d]
push edx
push eax
call fcn.00518280
add esp, 8
mov dword [esi + 0x50], eax
cmp eax, ebp
jne 0x5239dd
mov ecx, dword [esp + 0x38]
cmp dword [ecx], ebp
jne 0x5223b2
push 0x7fa0
call dword [sym.imp.MSVCR90.dll_malloc]
mov ecx, dword [esp + 0x3c]
lea edx, [esp + 0x15318]
push edx
push 1
push eax
mov dword [ecx + 0x678], eax
mov eax, dword [ecx + 0x21c]
push eax
push esi
call fcn.00516800
add esp, 0x18
mov dword [esi + 0x50], eax
cmp eax, ebp
jne 0x52379b
lea ecx, [esp + 0x15214]
push ecx
lea edx, [esp + 0x7c]
push edx
lea eax, [esp + 0x9c]
push eax
lea ecx, [esp + 0x5c]
push ecx
lea edx, [esp + 0xdc]
push edx
push ebx
push esi
call fcn.0051b470
add esp, 0x1c
mov dword [esi + 0x50], eax
cmp eax, ebp
jne 0x5239dd
cmp byte [edi + 0x1bb], 0
je 0x5224ba
movsx eax, word [edi + 0x19d]
mov ecx, dword [esp + 0x44]
lea eax, [eax + eax*2]
add eax, eax
push eax
push ecx
lea edx, [esp + 0xf18]
push edx
call sub.MSVCR90.dll_memcpy
movsx eax, word [edi + 0x19d]
lea eax, [eax + eax*2]
mov ecx, 0x1e
lea edx, [esp + 0xf1c]
add esp, 0xc
mov word [esp + eax*2 + 0xf10], cx
mov dword [esp + 0x44], edx
jmp 0x5224ba
lea eax, [ebx + 0x195]
mov dword [esp + 0x64], eax
movsx eax, word [ebx + 0x19f]
xor ecx, ecx
cmp eax, ebp
mov dword [esp + 0x18], ebx
mov dword [esp + 0x50], eax
mov dword [esp + 0x94], ebp
jle 0x5224a5
mov eax, dword [ebx + 0x1a3]
mov edx, dword [esp + 0x50]
lea edi, [esp + 0xf10]
add eax, 4
jmp 0x522480
cmp byte [eax + 4], 0
sete bl
mov byte [esp + ecx + 0x15214], bl
mov ebx, dword [eax]
mov dword [edi], ebx
mov bx, word [eax + 4]
mov word [edi + 4], bx
inc ecx
add eax, 0x2a
add edi, 6
cmp ecx, edx
jl 0x522480
mov edi, dword [esp + 0x18]
lea ecx, [esp + 0xf10]
mov edx, ecx
mov dword [esp + 0x44], ecx
mov dword [esp + 0x78], edx
mov al, byte [edi + 0x1bb]
mov cl, byte [edi + 0x1ba]
mov byte [esp + 0x27], al
mov eax, dword [esp + 0x15620]
mov byte [esp + 0x1f], cl
cmp eax, 3
je 0x52258a
cmp eax, 1
je 0x52258a
cmp eax, ebp
jne 0x5224fc
mov ecx, dword [esp + 0x20]
cmp byte [ecx + 0x311], 0
je 0x52258a
mov byte [esp + 0xf], 0
jmp 0x52258f
call fcn.0045d150
mov ebx, eax
mov eax, dword [esp + 0x10]
mov edx, dword [eax]
imul edx, edx, 0x7fa0
push ebp
lea eax, [edx + eax + 4]
push eax
push ebx
push 3
mov dword [esp + 0x54], ebx
mov dword [esp + 0x88], ebx
mov dword [esp + 0x60], 3
call fcn.00578a20
add esp, 0x10
mov dword [esi + 0x50], eax
cmp eax, ebp
jne 0x5239dd
mov eax, dword [esp + 0x10]
xor edx, edx
cmp dword [eax], ebp
lea ecx, [esp + 0xfc]
sete dl
push ecx
imul edx, edx, 0x7fa0
lea eax, [edx + eax + 4]
push eax
push ebx
push 3
call fcn.00578a20
add esp, 0x10
mov dword [esi + 0x50], eax
cmp eax, ebp
jne 0x5239dd
mov eax, dword [esp + 0x15620]
mov byte [esp + 0xf], 0
jmp 0x52258f
mov byte [esp + 0xf], 1
cmp eax, ebp
jne 0x5225bd
mov edx, dword [esp + 0x40]
push edx
push ebp
push ebp
lea eax, [esp + 0xec]
push eax
push ebp
push edi
push 0xe
call fcn.005273d0
add esp, 0x1c
mov dword [esi + 0x50], eax
cmp eax, ebp
jne 0x5239dd
mov edi, dword [esp + 0x18]
cmp byte [esp + 0xf], 0
je 0x52295e
lea ecx, [esp + 0x98]
push ecx
push edi
call fcn.0047fce0
movsx edx, word [edi + 0x1a7]
add esp, 8
xor eax, eax
cmp edx, ebp
mov dword [esp + 0x4c], edx
jle 0x522602
mov ecx, dword [edi + 0x1a9]
mov dword [esp + eax*4 + 0x2314], ecx
inc eax
add ecx, 0xaf
cmp eax, edx
jl 0x5225f0
mov eax, dword [edi + 0x1a3]
movsx ecx, word [edi + 0x19d]
lea edx, [esp + 0x2714]
push edx
push eax
push ecx
call fcn.0048f240
mov eax, dword [edi + 0x1a3]
movsx ecx, word [edi + 0x19d]
push ebp
push ebp
lea edx, [esp + 0x520]
push edx
push eax
push ecx
call fcn.0048f1a0
mov bl, byte [esp + 0x47]
add esp, 0x20
test bl, bl
je 0x522677
mov edx, 1
mov word [esp + 0xd8], dx
mov ax, word [edi + 0x19d]
mov ecx, 0x1e
mov word [esp + 0xda], ax
mov word [esp + 0xdc], cx
mov byte [esp + 0xde], dl
mov edx, dword [esp + 0x40]
mov eax, dword [esp + 0x64]
push edx
push eax
lea ecx, [esp + 0x78]
push ecx
lea edx, [esp + 0xb8]
push edx
lea ecx, [esp + 0x3c]
push ecx
push 2
push eax
call fcn.00471fe0
add esp, 0x1c
mov dword [esi + 0x50], eax
cmp eax, ebp
jne 0x5239dd
test bl, bl
je 0x52273e
mov edx, dword [esp + 0x2c]
push edx
call fcn.0050ca50
movsx edx, word [esp + 0x510]
mov edi, eax
add esp, 4
xor eax, eax
cmp edx, ebp
jle 0x5226f3
lea ecx, [esp + 0x50e]
jmp 0x5226e0
mov bx, word [ecx]
mov word [esp + eax*2 + 0x15414], bx
inc eax
add ecx, 6
cmp eax, edx
jl 0x5226e0
mov eax, dword [esp + 0x10]
mov ecx, dword [eax]
lea edx, [eax + ecx*4 + 0xff44]
push edi
push edx
call fcn.0050cd30
add esp, 8
mov dword [esi + 0x50], eax
cmp eax, ebp
jne 0x5239dd
mov eax, dword [esp + 0x10]
xor ecx, ecx
cmp dword [eax], ecx
push edi
sete cl
lea edx, [eax + ecx*4 + 0xff44]
push edx
call fcn.0050cd30
add esp, 8
mov dword [esi + 0x50], eax
test eax, eax
jne 0x5239dd
xor ebp, ebp
mov eax, dword [esp + 0x2c]
push ebp
lea ecx, [esp + 0x84]
push ecx
push ebp
push ebp
push eax
mov dword [esp + 0xb0], eax
call fcn.00449210
add esp, 0x14
mov dword [esi + 0x50], eax
cmp eax, ebp
jne 0x5239dd
mov edi, 0x1e
cmp dword [esp + 0x80], edi
je 0x52278f
cmp word [esp + 0x68], bp
jne 0x52278f
mov byte [esp + 0x1e], 1
cmp dword [esp + 0xe4], ebp
jbe 0x52285b
mov byte [esp + 0x1e], 0
cmp dword [esp + 0x98], ebp
je 0x5227d2
push 1
push 1
lea ecx, [esp + 0xb8]
push ecx
lea edx, [esp + 0xb4]
push edx
lea eax, [esp + 0x7c]
push eax
lea ecx, [esp + 0x114]
push ebp
push ecx
call fcn.0047d840
add esp, 0x1c
mov dword [esi + 0x50], eax
cmp eax, ebp
jne 0x5239dd
or ebx, 0xffffffff
mov eax, dword [esp + 0x18]
push ebp
push ebx
lea edx, [esp + 0xc8]
push edx
push eax
call fcn.00485260
add esp, 0x10
mov dword [esi + 0x50], eax
cmp eax, ebp
jne 0x5239dd
mov ecx, dword [esp + 0x68]
xor eax, eax
cmp dword [esp + 0x80], edi
setne al
inc eax
cmp cx, bp
mov dword [esi + 0x55], eax
jg 0x522819
cmp dword [esp + 0xe4], ebp
jbe 0x52281e
mov eax, 1
mov dword [esi + 0x55], eax
cmp eax, 1
jne 0x52295e
xor edi, edi
cmp dword [esp + 0x4c], ebp
jle 0x52290b
jmp 0x522840
mov eax, dword [esp + edi*4 + 0x2314]
cmp dword [eax + 0x88], ebx
je 0x5228bc
mov dword [esp + edi*4 + 0x10c], ebx
jmp 0x5228fc
mov edx, dword [esp + 0x2c]
push edx
call fcn.00471b10
add esp, 4
mov dword [esi + 0x50], eax
cmp eax, ebp
jne 0x5239dd
mov eax, dword [esp + 0x40]
push eax
mov eax, dword [esp + 0x3c]
lea ecx, [esp + 0xa8]
push ecx
mov ecx, dword [eax + 6]
lea edx, [esp + 0x50]
push edx
mov edx, dword [esp + 0x70]
push ecx
or ebx, 0xffffffff
push edx
mov dword [esp + 0x40], ebx
call fcn.00513600
add esp, 0x14
mov dword [esi + 0x50], eax
cmp eax, ebp
jne 0x5239dd
mov eax, dword [esp + 0x48]
mov dword [esp + 0x9c], eax
jmp 0x5227d5
mov ecx, dword [esp + 0x40]
mov edx, dword [esp + 0x64]
push ecx
push edx
lea ecx, [esp + 0x110]
push ecx
lea edx, [esp + edi*4 + 0x2d24]
push edx
lea ecx, [esp + edi*4 + 0x11c]
push ecx
sub eax, 0xffffff80
push 2
push eax
call fcn.00471fe0
add esp, 0x1c
mov dword [esi + 0x50], eax
cmp eax, ebp
jne 0x5239dd
xor ebp, ebp
or ebx, 0xffffffff
inc edi
cmp edi, dword [esp + 0x4c]
jl 0x522840
mov ecx, dword [esp + 0x68]
cmp cx, bp
jle 0x52295e
movsx edx, cx
shl edx, 5
push edx
call dword [sym.imp.MSVCR90.dll_malloc]
add esp, 4
mov dword [esp + 0xb4], eax
cmp eax, ebp
je 0x523794
mov ebx, dword [esp + 0x18]
lea eax, [esp + 0x2d18]
push eax
lea ecx, [esp + 0x110]
push ecx
mov ecx, dword [esp + 0xbc]
push esi
call fcn.00515870
add esp, 0xc
mov dword [esi + 0x50], eax
test eax, eax
jne 0x5239dd
mov edi, dword [esp + 0x15620]
test edi, edi
jne 0x5229d0
mov eax, dword [esp + 0x20]
cmp byte [eax + 0x311], 0
je 0x5229f5
mov edx, dword [str.public]
mov ecx, dword [edx + 0x159]
push 0x5b0820
push ecx
add eax, 0x312
push eax
call fcn.0056a970
add esp, 0xc
mov dword [esp + 0x88], eax
test eax, eax
jne 0x5229ad
mov dword [esi + 0x50], 0x73a
jmp 0x52379b
push 0x5a845c
push eax
call dword [sym.imp.MSVCR90.dll_fopen]
add esp, 8
mov dword [esp + 0x74], eax
test eax, eax
jne 0x522a06
mov dword [esi + 0x50], 0xe21
jmp 0x52379b
cmp edi, 1
jne 0x5229f5
mov eax, dword [esp + 0x20]
cmp byte [eax + 0x311], 0
je 0x5229f5
add eax, 0x712
mov dword [esp + 0x88], eax
push 0x5a8460
jmp 0x5229b2
mov dword [esp + 0x74], 0
cmp edi, 4
je 0x522c14
cmp byte [esp + 0xf], 0
je 0x522a4a
cmp byte [esp + 0x27], 0
lea eax, [esp + 0xd8]
jne 0x522a22
lea eax, [esp + 0x50c]
push 1
push 0
push 0xe
push eax
push 0
lea edx, [esp + 0x70]
push 1
push edx
call fcn.004d97b0
add esp, 0x1c
mov dword [esi + 0x50], eax
test eax, eax
jne 0x5239dd
mov byte [esp + 0x17], 1
test edi, edi
jne 0x522a77
push 1
push edi
push edi
lea edx, [esp + 0xec]
push edx
push 0xef
push 0xc9
call fcn.00526a10
add esp, 0x18
mov dword [esi + 0x50], eax
test eax, eax
jne 0x5239dd
push 0x400
lea eax, [esp + 0xb14]
push 0
push eax
call sub.MSVCR90.dll_memset
mov ebp, dword [esp + 0x5c]
add esp, 0xc
xor ebx, ebx
test ebp, ebp
jle 0x522ae4
mov ecx, ebp
xor eax, eax
lea edi, [esp + 0x1510]
rep stosd dword es:[edi], eax
mov edi, dword [sym.imp.MSVCR90.dll_malloc]
jmp 0x522ab0
push 0x7f
call edi
push 0x7f
mov dword [esp + ebx*4 + 0xb18], eax
mov byte [eax], 0
call edi
mov ecx, dword [esp + 0x98]
add esp, 8
mov dword [esp + ebx*4 + 0x1910], eax
mov edx, eax
mov al, byte [ecx]
mov byte [edx], al
inc ecx
inc edx
test al, al
jne 0x522ad5
inc ebx
cmp ebx, ebp
jl 0x522ab0
mov dword [esp + 0xbc], 0
nop
mov ebp, dword [esp + 0x10]
mov dword [esp + 0x7c], 0
lea esp, [esp]
mov edx, dword [esi + 0x59]
mov ecx, dword [esi + 4]
push edx
mov dword [esp + 0x88], 0
mov dword [esp + 0xf8], ecx
call sub.MSVCR90.dll_ftell
mov edi, dword [esp + 0xc0]
add esp, 4
mov dword [esi + 0xc], eax
test edi, edi
jne 0x5231e4
push esi
call fcn.0051ddf0
add esp, 4
test al, al
jne 0x523526
cmp dword [esp + 0x3c], 0x10
jge 0x523603
cmp byte [esi + 0x54], al
je 0x522b61
cmp dword [esi + 0x37], 0x3e9
je 0x523603
mov ebx, dword [esp + 0x15620]
cmp ebx, 4
je 0x522c68
mov edi, dword [esp + 0x18]
lea eax, [esp + 0x15314]
push eax
mov eax, dword [esp + 0x3c]
mov edx, dword [eax + 0x21c]
lea ecx, [esp + 0x5f]
push ecx
push edx
lea ecx, [esp + 0xb1fc]
push ecx
mov ecx, dword [esp + 0xa0]
lea edx, [esp + 0x1520]
push edx
push ecx
lea edx, [esp + 0x1928]
push edx
mov edx, dword [eax]
mov eax, dword [eax + 0x678]
push 0
lea ecx, [esp + 0xb30]
push ecx
mov ecx, dword [esp + 0x44]
push edx
push eax
mov eax, dword [esp + 0xa0]
push edi
push ecx
lea edx, [esp + 0x4a]
push edx
mov edx, dword [esp + 0xb0]
push eax
mov eax, dword [esp + 0xd0]
push ebx
lea ecx, [esp + 0x15254]
push ecx
mov ecx, dword [esp + 0x94]
push edx
mov edx, dword [esp + 0x6f]
push eax
push ecx
push ebp
push edx
push esi
call fcn.00521c80
add esp, 0x5c
mov dword [esi + 0x50], eax
test eax, eax
jne 0x5239dd
jmp 0x522c9f
push 0
lea eax, [esp + 0x1d14]
push 3
push eax
call fcn.0045de60
mov eax, dword [esp + 0x1c]
mov edx, dword [eax]
imul edx, edx, 0x7fa0
push 0
push 0
push 0xe
lea ecx, [esp + 0x1d28]
push ecx
lea eax, [edx + eax + 4]
push eax
lea ecx, [esp + 0x7c]
push 1
push ecx
call fcn.004d97b0
add esp, 0x28
mov dword [esi + 0x50], eax
test eax, eax
jne 0x5239dd
mov byte [esp + 0x17], 1
jmp 0x522a77
mov edx, dword [esp + 0xfc]
lea eax, [esp + 0x16]
push eax
mov eax, dword [esp + 0x7c]
lea ecx, [esp + 0xac]
push ecx
push edx
push eax
push 3
mov eax, ebp
mov ecx, esi
call fcn.00521d30
add esp, 0x14
mov dword [esi + 0x50], eax
test eax, eax
jne 0x5239dd
mov edi, dword [esp + 0x18]
cmp byte [esp + 0x16], 0
jne 0x522cbf
inc dword [esp + 0x3c]
cmp dword [esi + 0x2b], 0
jne 0x522b00
mov ecx, dword [esi + 0x1f]
mov dword [esi + 0x2b], ecx
jmp 0x522b00
test ebx, ebx
jne 0x522cfb
mov edx, dword [ebp]
imul edx, edx, 0x7fa0
push 2
lea eax, [edx + ebp + 4]
push eax
push ebx
lea ecx, [esp + 0xec]
push ecx
push 0xed
push 0xc9
call fcn.00526a10
add esp, 0x18
mov dword [esi + 0x50], eax
test eax, eax
jne 0x5239dd
jmp 0x522d04
cmp ebx, 4
je 0x523048
lea edx, [esp + 0xf8]
push edx
mov edx, dword [ebp]
imul edx, edx, 0x7fa0
lea eax, [esp + 0x15198]
push eax
lea ecx, [esp + 0x1e]
push ecx
lea eax, [edx + ebp + 4]
push eax
mov eax, dword [edi + 0x1b1]
push edi
push esi
call fcn.00514f80
add esp, 0x18
mov dword [esi + 0x50], eax
test eax, eax
jne 0x5239dd
cmp byte [esp + 0x16], al
jne 0x522d92
inc dword [esp + 0x3c]
cmp dword [esi + 0x2b], eax
jne 0x522d57
mov ecx, dword [esi + 0x1f]
mov dword [esi + 0x2b], ecx
mov edx, dword [esp + 0xf4]
mov ecx, dword [esi + 0xc]
lea eax, [esp + 0x15194]
push eax
mov eax, dword [esp + 0xfc]
mov dword [esi + 4], edx
sub ecx, 2
push esi
or edx, 0xffffffff
call fcn.0051de50
add esp, 8
mov dword [esi + 0x50], eax
test eax, eax
je 0x522b00
jmp 0x5239dd
mov ecx, dword [ebp]
imul ecx, ecx, 0x7fa0
lea edx, [ecx + ebp + 4]
push edx
lea ebx, [esp + 0x1a]
lea eax, [esp + 0xd0]
mov edi, esi
call fcn.005151a0
add esp, 4
mov dword [esi + 0x50], eax
test eax, eax
jne 0x5239e1
cmp byte [esp + 0x16], al
jne 0x522e08
inc dword [esp + 0x3c]
cmp dword [esi + 0x2b], eax
jne 0x522dd5
mov eax, dword [esi + 0x1f]
mov dword [esi + 0x2b], eax
mov ecx, dword [esi + 0xc]
or edx, 0xffffffff
push 0
push esi
lea eax, [edx + 3]
call fcn.0051de50
add esp, 8
mov dword [esi + 0x50], eax
test eax, eax
je 0x522b00
push 0x7e9
push 0
call fcn.00406f10
add esp, 8
jmp 0x5239f9
cmp byte [esp + 0x27], 0
jne 0x522e1b
cmp word [esp + 0x54], 0
jle 0x52308f
mov ecx, dword [esp + 0x18]
movsx edx, word [ecx + 0x19d]
xor eax, eax
mov byte [esp + 0x33], 1
test edx, edx
jle 0x522e65
mov ebx, dword [ebp]
imul ebx, ebx, 0x7fa0
lea edi, [ebx + ebp + 4]
mov edi, edi
movzx ecx, word [edi]
cmp cx, word [edi + 2]
jne 0x522e4d
xor ecx, ecx
jmp 0x522e56
movsx ecx, cx
add ecx, ebx
lea ecx, [ecx + ebp + 4]
mov dword [esp + eax*4 + 0x1d10], ecx
inc eax
add edi, 2
cmp eax, edx
jl 0x522e40
mov cl, byte [esp + 0x27]
test cl, cl
je 0x522e7e
mov eax, dword [ebp]
mov eax, dword [ebp + eax*4 + 0xff44]
mov dword [esp + edx*4 + 0x1d10], eax
mov eax, dword [esp + 0x54]
test ax, ax
jle 0x522f3a
cmp byte [esp + 0x32], 0
je 0x522f3a
test cl, cl
je 0x522e9b
inc edx
lea ecx, [esp + 0x33]
push ecx
lea ecx, [esi + 0x7d]
push ecx
push edx
mov edx, dword [esp + 0x50]
push edx
lea ecx, [esp + 0xd204]
push ecx
mov ecx, dword [esp + 0x74]
lea edx, [esp + 0x1d24]
cwde
push edx
push eax
push ecx
call fcn.00527b30
add esp, 0x20
mov dword [esi + 0x50], eax
test eax, eax
jne 0x5239e1
cmp byte [esp + 0x33], al
jne 0x522f64
inc dword [esp + 0x3c]
cmp dword [esi + 0x2b], eax
jne 0x522eed
mov edx, dword [esi + 0x1f]
mov dword [esi + 0x2b], edx
mov eax, dword [esi + 4]
mov ecx, dword [esi + 0x1f]
mov edx, dword [esi]
push eax
push ecx
push edx
push 0x7e9
push 0x4c3a
call fcn.00406f10
mov ecx, dword [esi + 0xc]
or edx, 0xffffffff
push 0
push esi
lea eax, [edx + 3]
call fcn.0051de50
add esp, 0x1c
mov dword [esi + 0x50], eax
test eax, eax
je 0x522b00
push 0x7e9
push 0
call fcn.00406f10
add esp, 8
jmp 0x5239f9
mov ecx, dword [esp + 0x44]
lea eax, [esp + 0xd1f4]
push eax
push ecx
lea eax, [esp + 0x1d18]
push eax
inc edx
push edx
call fcn.005789e0
add esp, 0x10
mov dword [esi + 0x50], eax
test eax, eax
jne 0x5239e1
mov di, word [esp + 0xd1f4]
movsx eax, di
cdq
sub eax, edx
sar eax, 1
movzx ecx, word [esp + eax*2 + 0xd1f2]
cmp cx, di
jl 0x522f84
dec eax
jmp 0x522f87
movsx eax, cx
movsx ecx, word [esp + eax*2 + 0xd1f4]
mov eax, dword [ebp]
imul eax, eax, 0x7fa0
push ecx
lea edx, [esp + 0xd1f8]
push edx
lea ecx, [eax + ebp + 4]
push ecx
call sub.MSVCR90.dll_memcpy
add esp, 0xc
cmp byte [esp + 0x27], 0
je 0x52308f
cmp byte [esp + 0xf], 0
je 0x522b00
mov eax, dword [ebp]
mov edx, dword [esp + 0x9c]
push edx
mov edx, eax
imul edx, edx, 0x7fa0
lea ecx, [esp + 0x15418]
push ecx
lea ecx, [edx + ebp + 4]
mov edx, dword [ebp + eax*4 + 0xff44]
push ecx
push 0
push edx
call fcn.0050cd00
add esp, 0x14
mov dword [esi + 0x50], eax
test eax, eax
jne 0x5239e1
mov eax, dword [ebp]
mov ecx, dword [ebp + eax*4 + 0xff44]
mov edx, eax
imul eax, eax, 0x7fa0
imul edx, edx, 0x3fd0
push ecx
mov ecx, dword [esp + 0x1c]
movsx ecx, word [ecx + 0x19d]
add edx, ecx
movsx edx, word [ebp + edx*2 + 4]
add edx, ebp
lea eax, [eax + edx + 4]
push eax
call fcn.0050ce00
add esp, 8
mov dword [esi + 0x50], eax
test eax, eax
jne 0x5239e1
jmp 0x52308f
mov eax, dword [ebp]
imul eax, eax, 0x7fa0
mov cx, word [eax + ebp + 4]
cmp cx, word [eax + ebp + 6]
jne 0x523061
xor eax, eax
jmp 0x52306c
movsx edx, word [eax + ebp + 4]
add edx, eax
lea eax, [edx + ebp + 4]
mov ecx, dword [esp + 0xa8]
mov edx, dword [esp + 0x5c]
push ecx
push 0
push eax
push edx
call fcn.004d9ed0
add esp, 0x10
mov dword [esi + 0x50], eax
test eax, eax
jne 0x5239dd
cmp byte [esp + 0xf], 0
je 0x522b00
mov edi, dword [esp + 0x20]
cmp dword [edi + 0x305], 0
mov ebx, dword [esp + 0x38]
mov al, byte [ebx + 0x11]
sete cl
cmp al, 2
je 0x5230c2
cmp byte [esp + 0x27], 0
je 0x5230be
cmp al, 1
je 0x5230c2
xor al, al
jmp 0x5230c4
mov al, 1
test cl, cl
jne 0x52318a
test al, al
jne 0x52318e
cmp word [esp + 0x50c], 0
je 0x5231d1
mov eax, dword [ebp]
cmp byte [esp + 0x27], cl
jne 0x52311d
xor edx, edx
test eax, eax
sete dl
imul eax, eax, 0x7fa0
imul edx, edx, 0x7fa0
push 1
lea ecx, [esp + 0x510]
push ecx
lea ecx, [edx + ebp + 4]
push ecx
lea edx, [eax + ebp + 4]
push edx
call fcn.0048f850
add esp, 0x10
jmp 0x52313c
xor ecx, ecx
test eax, eax
mov eax, dword [ebp + eax*4 + 0xff44]
sete cl
mov edx, dword [ebp + ecx*4 + 0xff44]
push edx
push eax
call fcn.00584360
add esp, 8
test eax, eax
jge 0x523152
cmp byte [ebx + 0x11], 0
jne 0x52318e
mov dword [esi + 0x50], 0x38d
jmp 0x52389b
jne 0x5231d1
cmp byte [esp + 0x1f], 0
je 0x5231d1
mov eax, dword [ebp]
xor edx, edx
test eax, eax
sete dl
push 1
lea ecx, [esp + 0x2718]
push ecx
imul edx, edx, 0x7fa0
imul eax, eax, 0x7fa0
lea ecx, [edx + ebp + 4]
push ecx
lea edx, [eax + ebp + 4]
push edx
jmp 0x523377
test al, al
je 0x5231d1
mov ecx, dword [ebp]
mov eax, dword [esi + 0x1f]
imul ecx, ecx, 0x7fa0
inc dword [esp + 0x8c]
push 0
push eax
mov eax, dword [esp + 0x64]
lea edx, [ecx + ebp + 4]
push edx
push eax
call fcn.004d9ed0
add esp, 0x10
mov dword [esi + 0x50], eax
test eax, eax
jne 0x5239dd
mov ecx, 1
sub ecx, dword [ebp]
mov dword [ebp], ecx
jmp 0x522b00
mov edx, dword [ebp]
imul edx, edx, 0x7fa0
lea ecx, [edx + ebp + 4]
mov dword [esp + 0x34], ecx
jmp 0x523225
mov edx, dword [esp + 0x5c]
push 0
lea eax, [esp + 0xb4]
push eax
lea ecx, [esp + 0x3c]
push ecx
push edx
call fcn.004d9ba0
add esp, 0x10
mov dword [esi + 0x50], eax
test eax, eax
jne 0x5239dd
mov ecx, dword [esp + 0x34]
test ecx, ecx
je 0x523612
mov eax, dword [esp + 0xb0]
mov edi, dword [esp + 0x20]
mov dword [esi + 0x1f], eax
mov ebx, dword [esp + 0x68]
test bx, bx
jle 0x5232c9
movzx edi, word [ecx]
movsx eax, di
cdq
sub eax, edx
sar eax, 1
movzx edx, word [ecx + eax*2 - 2]
cmp dx, di
jl 0x52324a
dec eax
jmp 0x52324d
movsx eax, dx
movsx edx, word [ecx + eax*2]
push edx
push ecx
lea eax, [esp + 0x3258]
push eax
call sub.MSVCR90.dll_memcpy
add esp, 0xc
cmp byte [esp + 0x27], 0
je 0x523278
mov ecx, dword [esp + 0x18]
movsx eax, word [ecx + 0x19d]
inc eax
jmp 0x523283
mov edx, dword [esp + 0x18]
movsx eax, word [edx + 0x19d]
push eax
mov eax, dword [esp + 0x48]
push eax
lea ecx, [esp + 0xd1fc]
push ecx
mov ecx, dword [esp + 0xc0]
lea edx, [esp + 0x325c]
push edx
movsx eax, bx
push eax
push ecx
push 0
call fcn.00528c00
add esp, 0x1c
mov dword [esi + 0x50], eax
test eax, eax
jne 0x5239dd
mov edi, dword [esp + 0x20]
lea ecx, [esp + 0xd1f4]
mov dword [esp + 0x34], ecx
cmp dword [esp + 0x48], 0xffffffff
je 0x5233a5
cmp dword [esp + 0x7c], 0
jbe 0x523392
cmp byte [esp + 0x27], 0
jne 0x523399
cmp word [esp + 0x50c], 0
je 0x523328
mov eax, dword [esp + 0xa4]
push 1
lea edx, [esp + 0x510]
push edx
mov edx, dword [eax]
push edx
push ecx
call fcn.0048f850
add esp, 0x10
test eax, eax
jge 0x523355
mov eax, dword [esp + 0x38]
cmp byte [eax + 0x11], 0
je 0x523146
mov ecx, dword [esp + 0x34]
xor eax, eax
lea edx, [esp + 0x84]
push edx
push eax
mov eax, dword [esp + 0x50]
push ecx
push eax
call fcn.00513c50
add esp, 0x10
mov dword [esi + 0x50], eax
test eax, eax
jne 0x5239dd
inc dword [esp + 0x7c]
jmp 0x523445
jne 0x523324
cmp byte [esp + 0x1f], 0
je 0x523324
mov edx, dword [esp + 0xa4]
mov eax, dword [edx]
push 1
lea ecx, [esp + 0x2718]
push ecx
mov ecx, dword [esp + 0x3c]
push eax
push ecx
call fcn.0048f850
add esp, 0x10
test eax, eax
jne 0x523619
inc dword [edi + 0x305]
jmp 0x522b00
cmp byte [esp + 0x27], 0
je 0x523328
mov edx, dword [ebp]
mov eax, dword [ebp + edx*4 + 0xff44]
jmp 0x52332a
mov eax, dword [esp + 0x2c]
lea edx, [esp + 0x80]
push edx
push 0
push ecx
push eax
call fcn.00449650
add esp, 0x10
mov dword [esi + 0x50], eax
test eax, eax
jne 0x5239dd
cmp dword [esp + 0x80], 0x20
je 0x52340a
mov edx, dword [esp + 0xac]
mov eax, dword [edx]
push 1
lea ecx, [esp + 0x2718]
push ecx
mov ecx, dword [esp + 0x3c]
push eax
push ecx
call fcn.0048f850
add esp, 0x10
test eax, eax
jne 0x523619
mov eax, dword [esp + 0x20]
inc dword [eax + 0x305]
jmp 0x522b00
cmp dword [esp + 0x6c], 0xffffffff
je 0x523438
mov edx, dword [esp + 0x70]
mov eax, dword [edx]
push 0
push eax
call fcn.0048f100
mov ecx, dword [esp + 0x74]
push eax
push ecx
call fcn.0047d3b0
add esp, 0x10
mov dword [esi + 0x50], eax
test eax, eax
jne 0x5239dd
mov edx, dword [esp + 0x70]
mov eax, dword [edx]
mov dword [esp + 0x84], eax
cmp dword [esi + 0x55], 1
jne 0x5234a6
xor edi, edi
cmp dword [esp + 0x4c], edi
jle 0x5234d7
mov ebx, dword [esp + 0x44]
jmp 0x523460
mov eax, dword [esp + edi*4 + 0x10c]
cmp eax, 0xffffffff
je 0x52349d
mov ecx, dword [esp + 0x18]
mov edx, dword [esp + 0x70]
add ecx, 0x13
push ecx
mov ecx, dword [edx]
mov edx, dword [esp + edi*4 + 0x2318]
push ecx
mov ecx, dword [esp + 0x3c]
push ebx
push edx
push ecx
push eax
call fcn.00524880
add esp, 0x18
mov dword [esi + 0x50], eax
test eax, eax
jne 0x523641
inc edi
cmp edi, dword [esp + 0x4c]
jl 0x523460
jmp 0x5234d7
mov eax, dword [esp + 0x18]
mov ecx, dword [esp + 0x84]
push 0xffffffffffffffff
push 0xffffffffffffffff
lea edx, [esp + 0xc8]
push edx
mov edx, dword [esp + 0x40]
push eax
push ecx
push edx
call fcn.004844d0
add esp, 0x18
mov dword [esi + 0x50], eax
test eax, eax
jne 0x5239dd
cmp dword [esp + 0x15620], 0
jne 0x52350c
mov eax, dword [esp + 0x34]
push 2
push eax
push 0
lea ecx, [esp + 0xec]
push ecx
push 0xed
push 0x36
call fcn.00526a10
add esp, 0x18
mov dword [esi + 0x50], eax
test eax, eax
jne 0x5239dd
mov eax, dword [esp + 0x20]
mov ecx, 1
add dword [eax + 0x301], ecx
add dword [eax + 0x305], ecx
jmp 0x522b00
mov edx, dword [esp + 0xb8]
mov byte [edx], 0
cmp dword [esp + 0x15620], 4
je 0x5235c6
cmp byte [esp + 0xf], 0
je 0x5235c6
cmp dword [esp + 0x8c], 0
je 0x5235c6
mov eax, dword [esp + 0x48]
or ebx, 0xffffffff
cmp eax, ebx
je 0x52357d
cmp dword [esp + 0x7c], 0
jbe 0x5235b5
push eax
call fcn.005145c0
add esp, 4
mov dword [esi + 0x50], eax
test eax, eax
jne 0x5239dd
mov dword [esp + 0x48], ebx
cmp dword [esp + 0x2c], ebx
jne 0x5235b5
mov ecx, dword [esp + 0x40]
mov eax, dword [esp + 0x64]
push ecx
push eax
lea edx, [esp + 0x78]
push edx
lea ecx, [esp + 0xb8]
push ecx
lea edx, [esp + 0x3c]
push edx
push 2
push eax
call fcn.00471fe0
add esp, 0x1c
mov dword [esi + 0x50], eax
test eax, eax
jne 0x5239dd
inc edi
cmp edi, 1
mov dword [esp + 0xbc], edi
jle 0x522af0
cmp byte [esp + 0xcc], 0
mov ebx, dword [esp + 0x18]
mov edi, dword [esp + 0x40]
je 0x52364d
mov edx, dword [esp + 0xce]
push edx
call fcn.00490700
add esp, 4
mov dword [esi + 0x50], eax
test eax, eax
je 0x52364d
push 0x7fb
push 0
call fcn.00406f10
mov eax, dword [esi + 0x50]
add esp, 8
jmp 0x52364f
mov eax, dword [esp + 0xb8]
mov byte [eax], 0
jmp 0x523530
mov byte [esp + 0x17], 0
jmp 0x5235b5
mov ecx, dword [esi + 0x1f]
xor eax, eax
cmp byte [esp + 0x1e], al
push ecx
setne al
push 0x7e9
add eax, 0x391
push eax
mov dword [esi + 0x50], eax
call fcn.00406f10
add esp, 0xc
jmp 0x5239f9
mov dword [esi + 0x50], 5
jmp 0x52379f
xor eax, eax
mov dword [esi + 0x50], eax
test eax, eax
jne 0x5239dd
cmp dword [esp + 0x15620], 4
jne 0x52374c
push eax
mov byte [esp + 0x1b], al
mov eax, dword [esp + 0x3c]
mov ecx, dword [eax + 0x224]
mov edx, dword [ecx + 0x140]
mov eax, dword [eax + 0x220]
mov ecx, dword [eax + 0x140]
add edx, 0x15
push edx
mov edx, dword [esp + 0x64]
add ecx, 0x15
push ecx
push 0
push 3
push edx
call fcn.0045fe90
add esp, 0x18
mov dword [esi + 0x50], eax
test eax, eax
jne 0x5239e1
mov eax, dword [esp + 0x2c]
cmp eax, 0xffffffff
je 0x5236d2
push eax
call fcn.00471b10
add esp, 4
mov dword [esi + 0x50], eax
test eax, eax
jne 0x5239dd
mov dword [esp + 0x2c], 0xffffffff
mov eax, dword [esp + 0x48]
cmp eax, 0xffffffff
je 0x5236f7
push eax
call fcn.005145c0
add esp, 4
mov dword [esi + 0x50], eax
test eax, eax
jne 0x5239dd
mov dword [esp + 0x48], 0xffffffff
cmp byte [esp + 0xf], 0
je 0x523881
cmp dword [esp + 0x98], 0
je 0x5237db
cmp dword [esp + 0x6c], 0xffffffff
push edi
push 0
push ebx
je 0x5237c6
lea ecx, [esp + 0x10c]
push ecx
call fcn.004606e0
add esp, 0x10
mov dword [esi + 0x50], eax
test eax, eax
jne 0x5239dd
mov edx, dword [esp + 0x6c]
push edx
call fcn.0047d8a0
add esp, 4
jmp 0x5237d0
mov eax, dword [esp + 0x74]
test eax, eax
je 0x5236ad
push eax
call dword [sym.imp.MSVCR90.dll_fclose]
add esp, 4
cmp eax, 0xffffffff
jne 0x52376e
mov dword [esi + 0x50], 0x1f83
cmp dword [esp + 0x15620], 1
jne 0x523788
mov eax, dword [esp + 0x88]
push eax
call sub.MSVCR90.dll__unlink
add esp, 4
cmp dword [esi + 0x50], 0
je 0x5236ad
jmp 0x52379f
mov dword [esi + 0x50], 6
mov ebp, dword [esp + 0x10]
call dword [sym.imp.MSVCR90.dll__errno]
mov ecx, dword [eax]
mov edx, dword [esp + 0x88]
mov eax, dword [esi + 0x50]
push ecx
push edx
push 0x7e9
push eax
call fcn.00406f10
add esp, 0x10
jmp 0x5239f9
push 0
call fcn.004606e0
add esp, 0x10
mov dword [esi + 0x50], eax
test eax, eax
jne 0x5239dd
cmp dword [esi + 0x55], 1
jne 0x523824
xor edi, edi
cmp dword [esp + 0x4c], edi
jle 0x523843
lea esp, [esp]
mov eax, dword [esp + edi*4 + 0x10c]
cmp eax, 0xffffffff
je 0x52381b
push eax
call fcn.00471b10
add esp, 4
mov dword [esi + 0x50], eax
test eax, eax
jne 0x5239dd
mov dword [esp + edi*4 + 0x10c], 0xffffffff
inc edi
cmp edi, dword [esp + 0x4c]
jl 0x5237f0
jmp 0x523843
push edi
push 1
lea eax, [esp + 0xc8]
push eax
push ebx
call fcn.00485630
add esp, 0x10
mov dword [esi + 0x50], eax
test eax, eax
jne 0x5239dd
mov eax, dword [esp + 0xa0]
test eax, eax
je 0x523881
mov ecx, dword [esp + 0x20]
mov edx, dword [ecx + 0x301]
push edx
push ebx
push 0
push eax
mov eax, dword [esp + 0x48]
mov ecx, dword [eax + 0x218]
mov edx, dword [ecx + 0x140]
push edx
call fcn.00494db0
add esp, 0x14
mov dword [esi + 0x50], eax
test eax, eax
jne 0x5239dd
cmp byte [esi + 0x54], 0
je 0x523939
cmp dword [esi + 0x37], 0x3e9
je 0x5238b9
mov dword [esi + 0x50], 0x4c30
mov eax, dword [esi + 0x1f]
mov ecx, dword [esi + 0x50]
push eax
push 0x7e9
push ecx
call fcn.00406f10
mov ebp, dword [esp + 0x1c]
add esp, 0xc
jmp 0x5239f9
cmp dword [esi + 0x6d], 1
push 1
jne 0x5238ce
push esi
xor ecx, ecx
call fcn.0051b720
add esp, 8
jmp 0x5238d8
mov ecx, esi
call fcn.00518630
add esp, 4
mov dword [esi + 0x50], eax
test eax, eax
je 0x523935
push str.File
push str.Attr
push str.Byte
push str.Char
push str.Line
push 0x7e9
push 0x4c37
call fcn.00406f10
mov edx, dword [esi]
mov eax, dword [esi + 0x27]
mov ecx, dword [esi + 0x23]
push edx
mov edx, dword [esi + 4]
push 0
inc eax
push eax
inc ecx
push ecx
push edx
push 0x7e9
push 0x4c44
call fcn.00406f10
mov ebp, dword [esp + 0x48]
add esp, 0x38
jmp 0x5239f9
mov ebp, dword [esp + 0x10]
mov edx, dword [esp + 0x3c]
test edx, edx
jle 0x5239af
mov edi, dword [esi + 0x2b]
mov ecx, dword [esp + 0x20]
push edi
mov edi, dword [esi + 0x1f]
mov dword [esi + 0x50], 0x138c
mov eax, dword [ecx + 0x301]
mov ecx, dword [ecx + 0x305]
push edi
sub ecx, eax
push ecx
push eax
push edx
push 0x7e9
push 0x138c
call fcn.00406f10
add esp, 0x1c
cmp dword [esi + 0x71], 0
je 0x5239f9
cmp dword [esi + 0x37], 0x3ea
jne 0x523995
mov edx, dword [esi + 4]
sub edx, 2
cmp dword [esi + 0x79], edx
jge 0x52399b
cmp dword [esi + 0x79], 0x10
jne 0x5239f9
push 0x7e9
push 0x55f7
call fcn.00406f10
add esp, 8
jmp 0x5239f9
cmp dword [esp + 0x15620], 0
jne 0x5239f2
push 1
push 0
push 0
lea eax, [esp + 0xec]
push eax
push 0xef
push 0x36
call fcn.00526a10
add esp, 0x18
mov dword [esi + 0x50], eax
test eax, eax
je 0x5239f2
mov ebp, dword [esp + 0x10]
push 0x7e9
push 0
call fcn.00406f10
add esp, 8
jmp 0x5239f9
mov dword [esi + 0x50], 0
cmp byte [esp + 0x17], 0
je 0x523a0f
mov ecx, dword [esp + 0x5c]
push 0
push ecx
call fcn.004d92d0
add esp, 8
mov eax, dword [esp + 0x2c]
cmp eax, 0xffffffff
je 0x523a21
push eax
call fcn.00471b10
add esp, 4
mov eax, dword [esp + 0x48]
cmp eax, 0xffffffff
je 0x523a33
push eax
call fcn.005145c0
add esp, 4
mov ebx, dword [esp + 0x4c]
xor edi, edi
test ebx, ebx
jle 0x523a72
lea ecx, [ecx]
mov eax, dword [esp + edi*4 + 0x10c]
cmp eax, 0xffffffff
je 0x523a6d
push eax
call fcn.00471b10
add esp, 4
test eax, eax
je 0x523a62
cmp dword [esi + 0x50], 0
jne 0x523a62
mov dword [esi + 0x50], eax
mov dword [esp + edi*4 + 0x10c], 0xffffffff
inc edi
cmp edi, ebx
jl 0x523a40
mov eax, dword [esp + 0x54]
test ax, ax
jle 0x523acf
xor edx, edx
xor ebx, ebx
cmp dx, ax
jge 0x523acf
mov edi, dword [esp + 0x60]
add edi, 0x90
mov edi, edi
mov eax, dword [edi]
cmp eax, 2
jne 0x523aa9
mov eax, dword [edi - 4]
push eax
lea ecx, [esi + 0x7d]
push ecx
call fcn.00559340
add esp, 8
jmp 0x523abf
cmp eax, 1
jne 0x523abf
mov eax, dword [edi - 0x10]
cmp eax, 0xffffffff
je 0x523abf
push eax
call fcn.00471b10
add esp, 4
movsx edx, word [esp + 0x54]
inc ebx
add edi, 0x114
cmp ebx, edx
jl 0x523a90
mov eax, dword [esp + 0x18]
test eax, eax
je 0x523b3b
mov edi, dword [eax + 0x1b1]
xor ebx, ebx
cmp dword [eax + 0x1ad], ebx
jle 0x523b2f
cmp dword [edi + 0x93], 1
jne 0x523b16
mov eax, dword [edi + 0x97]
push eax
lea ecx, [esi + 0x7d]
push ecx
call fcn.00559340
add esp, 8
test eax, eax
je 0x523b16
push 0x7e9
push 0
call fcn.00406f10
add esp, 8
mov eax, dword [edi + 0x7f]
mov edx, dword [esp + 0x18]
add ebx, eax
imul eax, eax, 0x9b
add edi, eax
cmp ebx, dword [edx + 0x1ad]
jl 0x523ae7
lea eax, [esi + 0x7d]
push eax
call fcn.00559920
add esp, 4
cmp byte [esp + 0x2b], 0
je 0x523b52
lea ecx, [esp + 0x3118]
push ecx
call fcn.004a8840
add esp, 4
lea edx, [esp + 0xc0]
push edx
call fcn.004849f0
mov eax, dword [ebp]
mov ebx, dword [sym.imp.MSVCR90.dll_free]
lea eax, [ebp + eax*4 + 0xff44]
add esp, 4
cmp dword [eax], 0
je 0x523b7f
mov ecx, dword [eax]
push ecx
call ebx
add esp, 4
xor edx, edx
cmp dword [ebp], edx
sete dl
mov eax, dword [ebp + edx*4 + 0xff44]
test eax, eax
je 0x523b98
push eax
call ebx
add esp, 4
push ebp
call ebx
mov eax, dword [esp + 0x64]
add esp, 4
test eax, eax
je 0x523bac
push eax
call ebx
add esp, 4
lea eax, [esp + 0xe0]
push eax
call fcn.00525e10
xor edi, edi
add esp, 4
cmp dword [esp + 0x50], edi
jle 0x523c5a
lea ebp, [esp + 0xf10]
nop
mov eax, dword [esp + edi*4 + 0xb10]
test eax, eax
je 0x523bec
push eax
call ebx
add esp, 4
mov dword [esp + edi*4 + 0xb10], 0
mov eax, dword [esp + edi*4 + 0x1910]
test eax, eax
je 0x523c08
push eax
call ebx
add esp, 4
mov dword [esp + edi*4 + 0x1910], 0
mov ecx, dword [esp + edi*4 + 0x1510]
test ecx, ecx
je 0x523c4c
movzx eax, word [ebp]
cmp ax, 4
je 0x523c3b
cmp ax, 0x1d
je 0x523c3b
cmp ax, 0xc
je 0x523c3b
cmp ax, 0xe
je 0x523c3b
cmp ax, 0x1e
je 0x523c3b
cmp ax, 0x1c
jne 0x523c4c
push ecx
call ebx
add esp, 4
mov dword [esp + edi*4 + 0x1510], 0
inc edi
add ebp, 6
cmp edi, dword [esp + 0x50]
jl 0x523bd0
mov ecx, dword [esp + 0x90]
push ecx
call ebx
mov ecx, dword [esp + 0x15618]
mov eax, dword [esi + 0x50]
add esp, 4
pop edi
pop ebp
pop ebx
xor ecx, esp
call fcn.00586584
add esp, 0x1560c
ret