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

Disassembly:
mov eax, 0x3568
call fcn.005865a0
mov eax, dword [0x65ada4]
xor eax, esp
mov dword [esp + 0x3564], eax
push ebx
push ebp
push esi
push edi
mov dword [esp + 0x58], edx
mov edx, dword [esp + 0x3598]
mov eax, dword [esp + 0x3580]
mov dword [esp + 0x44], edx
mov edx, dword [esp + 0x359c]
mov dword [esp + 0x70], edx
mov edx, dword [esp + 0x35a4]
mov dword [esp + 0x80], edx
mov edx, dword [esp + 0x35a8]
mov dword [esp + 0x74], edx
mov edx, dword [esp + 0x35b0]
mov dword [esp + 0x94], edx
mov edx, dword [esp + 0x35b4]
mov dword [esp + 0x7c], edx
mov edx, dword [esp + 0x35b8]
mov dword [esp + 0x8c], edx
mov edx, dword [esp + 0x35bc]
mov ebx, dword [esp + 0x35ac]
mov dword [esp + 0xa4], edx
mov edx, dword [esp + 0x35c0]
mov ebp, dword [esp + 0x357c]
or esi, 0xffffffff
mov dword [esp + 0xa0], eax
mov eax, dword [esp + 0x3590]
mov dword [esp + 0x98], edx
xor edx, edx
test eax, eax
mov dword [esp + 0x34], edx
mov dword [esp + 0x30], edx
mov dword [esp + 0x5c], edx
mov dword [esp + 0x60], edx
mov dword [esp + 0x78], edx
setne dl
mov dword [esp + 0x3c], ecx
mov ecx, dword [esp + 0x3594]
mov dword [esp + 0xa8], ecx
mov byte [ecx], 0
mov ecx, dword [esp + 0x3584]
mov dword [esp + 0x10], ebp
mov dword [esp + 0x48], eax
mov dword [esp + 0x84], ebx
mov dword [esp + 0x20], esi
mov dword [esp + 0x38], esi
mov dword [esp + 0x2c], 1
mov dword [esp + 0xac], edx
mov dword [esp + 0x4e8], 0
mov byte [esp + 0x256c], 0
mov byte [esp + 0x276c], 0
mov byte [esp + 0x28ec], 0
mov byte [esp + 0x296c], 0
mov byte [esp + 0x26ec], 0
mov byte [esp + 0x27ec], 0
mov byte [esp + 0x29ec], 0
test ecx, ecx
jle 0x51f427
xor eax, eax
lea edi, [esp + 0xd4]
rep stosd dword es:[edi], eax
mov eax, dword [ebp + 4]
mov esi, dword [ebp + 0x2f]
mov dword [esp + 0x90], eax
mov dword [ebp + 0x1f], eax
mov edx, str.TABLE
mov ecx, esi
mov edi, edi
mov al, byte [ecx]
cmp al, byte [edx]
jne 0x51f460
test al, al
je 0x51f45c
mov al, byte [ecx + 1]
cmp al, byte [edx + 1]
jne 0x51f460
add ecx, 2
add edx, 2
test al, al
jne 0x51f440
xor eax, eax
jmp 0x51f465
sbb eax, eax
sbb eax, 0xffffffff
test eax, eax
jne 0x51f493
lea edx, [esp + 0x24ec]
mov eax, esi
sub edx, esi
mov cl, byte [eax]
mov byte [edx + eax], cl
inc eax
test cl, cl
jne 0x51f474
cmp dword [ebp + 0x37], 0x3fa
jne 0x51f493
cmp byte [ebx], cl
jne 0x51f493
mov al, byte [ebp + 0x11]
mov byte [ebx], al
mov byte [ebx + 1], cl
mov esi, dword [ebp + 0x37]
cmp esi, 0x3ee
jne 0x51f4de
mov eax, dword [ebp + 0x2f]
mov ecx, 0x5b0644
mov dl, byte [eax]
cmp dl, byte [ecx]
jne 0x51f4c6
test dl, dl
je 0x51f4c2
mov dl, byte [eax + 1]
cmp dl, byte [ecx + 1]
jne 0x51f4c6
add eax, 2
add ecx, 2
test dl, dl
jne 0x51f4a6
xor eax, eax
jmp 0x51f4cb
sbb eax, eax
sbb eax, 0xffffffff
test eax, eax
jne 0x51f4de
mov ecx, dword [ebp + 0x59]
push ecx
call sub.MSVCR90.dll_ftell
mov dword [esp + 0x54], eax
jmp 0x51f4f6
cmp esi, 0x3fa
jne 0x51f4f9
mov edx, dword [ebp + 0x59]
push edx
call sub.MSVCR90.dll_ftell
mov dword [ebp + 0xc], eax
mov dword [esp + 0x50], eax
add esp, 4
cmp dword [ebp + 0x37], 0x3e9
je 0x52185d
cmp dword [ebp + 0x37], 0x3ea
mov edi, dword [sym.imp.MSVCR90.dll_isdigit]
je 0x52185d
push 1
push ebp
xor ecx, ecx
call fcn.0051b720
add esp, 8
mov dword [ebp + 0x50], eax
test eax, eax
jne 0x521670
mov esi, dword [ebp + 0x37]
cmp esi, 0x3ed
je 0x521696
cmp esi, 0x3ee
je 0x5214e4
cmp esi, 0x3f4
je 0x521572
cmp esi, 0x3ef
je 0x52109f
cmp esi, 0x3f3
je 0x521124
cmp esi, 0x3fe
je 0x521124
cmp esi, 0x3ff
je 0x521124
cmp esi, 0x3f0
jne 0x51f5cf
mov esi, dword [ebp + 0x2f]
lea edx, [esp + 0x24ec]
mov dword [esp + 0x2c], 1
mov eax, esi
sub edx, esi
mov cl, byte [eax]
mov byte [edx + eax], cl
inc eax
test cl, cl
jne 0x51f5a6
lea edx, [esp + 0x286c]
mov eax, esi
sub edx, esi
jmp 0x51f5c0
mov cl, byte [eax]
mov byte [edx + eax], cl
inc eax
test cl, cl
jne 0x51f5c0
jmp 0x521657
cmp esi, 0x3f1
je 0x521083
cmp esi, 0x3f6
je 0x521083
cmp esi, 0x3f2
jne 0x51fc00
mov ecx, str.null
lea eax, [esp + 0x266c]
nop
mov dl, byte [eax]
cmp dl, byte [ecx]
jne 0x51f620
test dl, dl
je 0x51f61c
mov dl, byte [eax + 1]
cmp dl, byte [ecx + 1]
jne 0x51f620
add eax, 2
add ecx, 2
test dl, dl
jne 0x51f600
xor eax, eax
jmp 0x51f625
sbb eax, eax
sbb eax, 0xffffffff
test eax, eax
jne 0x51f6f6
mov esi, dword [ebp + 0x2f]
mov ecx, 0x5a90cc
mov eax, esi
mov dl, byte [eax]
cmp dl, byte [ecx]
jne 0x51f657
test dl, dl
je 0x51f653
mov dl, byte [eax + 1]
cmp dl, byte [ecx + 1]
jne 0x51f657
add eax, 2
add ecx, 2
test dl, dl
jne 0x51f637
xor eax, eax
jmp 0x51f65c
sbb eax, eax
sbb eax, 0xffffffff
test eax, eax
jne 0x51f6b7
mov ecx, dword [esp + 0x44]
mov edi, dword [esp + 0x3584]
lea eax, [esp + 0x286c]
push eax
mov dword [ebp + 0x37], 0x3ec
call fcn.005168f0
add esp, 4
mov dword [esp + 0x20], eax
test eax, eax
jl 0x521657
mov ecx, dword [esp + 0x3588]
cmp byte [eax + ecx], 0
mov dword [esp + eax*4 + 0xd4], 0
jne 0x521657
mov esi, 0x4c33
mov dword [ebp + 0x50], esi
jmp 0x520bbd
mov ecx, 0x5a90c4
mov eax, esi
mov edi, edi
mov dl, byte [eax]
cmp dl, byte [ecx]
jne 0x51f6e0
test dl, dl
je 0x51f6dc
mov dl, byte [eax + 1]
cmp dl, byte [ecx + 1]
jne 0x51f6e0
add eax, 2
add ecx, 2
test dl, dl
jne 0x51f6c0
xor eax, eax
jmp 0x51f6e5
sbb eax, eax
sbb eax, 0xffffffff
test eax, eax
jne 0x5216a6
mov dword [esp + 0x2c], eax
jmp 0x521657
mov ecx, str.type
lea eax, [esp + 0x266c]
mov dl, byte [eax]
cmp dl, byte [ecx]
jne 0x51f722
test dl, dl
je 0x51f71e
mov dl, byte [eax + 1]
cmp dl, byte [ecx + 1]
jne 0x51f722
add eax, 2
add ecx, 2
test dl, dl
jne 0x51f702
xor eax, eax
jmp 0x51f727
sbb eax, eax
sbb eax, 0xffffffff
test eax, eax
jne 0x51f797
mov ecx, str.COLUMN
lea eax, [esp + 0x24ec]
mov dl, byte [eax]
cmp dl, byte [ecx]
jne 0x51f757
test dl, dl
je 0x51f753
mov dl, byte [eax + 1]
cmp dl, byte [ecx + 1]
jne 0x51f757
add eax, 2
add ecx, 2
test dl, dl
jne 0x51f737
xor eax, eax
jmp 0x51f75c
sbb eax, eax
sbb eax, 0xffffffff
test eax, eax
mov eax, dword [ebp + 0x2f]
je 0x51f77f
lea edx, [esp + 0x27ec]
sub edx, eax
lea esp, [esp]
mov cl, byte [eax]
mov byte [eax + edx], cl
inc eax
test cl, cl
jne 0x51f770
jmp 0x521657
lea edx, [esp + 0x29ec]
sub edx, eax
mov cl, byte [eax]
mov byte [eax + edx], cl
inc eax
test cl, cl
jne 0x51f788
jmp 0x521657
mov ecx, str.blobfile
lea eax, [esp + 0x266c]
mov dl, byte [eax]
cmp dl, byte [ecx]
jne 0x51f7c3
test dl, dl
je 0x51f7bf
mov dl, byte [eax + 1]
cmp dl, byte [ecx + 1]
jne 0x51f7c3
add eax, 2
add ecx, 2
test dl, dl
jne 0x51f7a3
xor eax, eax
jmp 0x51f7c8
sbb eax, eax
sbb eax, 0xffffffff
test eax, eax
jne 0x51f7ee
mov eax, dword [ebp + 0x2f]
lea edx, [esp + 0x276c]
sub edx, eax
mov cl, byte [eax]
mov byte [eax + edx], cl
inc eax
test cl, cl
jne 0x51f7d8
mov dword [ebp + 0x37], 0x3fd
jmp 0x521657
mov ecx, str.offset
lea eax, [esp + 0x266c]
lea ebx, [ebx]
mov dl, byte [eax]
cmp dl, byte [ecx]
jne 0x51f820
test dl, dl
je 0x51f81c
mov dl, byte [eax + 1]
cmp dl, byte [ecx + 1]
jne 0x51f820
add eax, 2
add ecx, 2
test dl, dl
jne 0x51f800
xor eax, eax
jmp 0x51f825
sbb eax, eax
sbb eax, 0xffffffff
test eax, eax
jne 0x51f8a6
cmp dword [esp + 0x35a0], eax
jne 0x51f89a
mov eax, dword [ebp + 0x2f]
xor esi, esi
lea edx, [eax + 1]
lea ebx, [ebx]
mov cl, byte [eax]
inc eax
test cl, cl
jne 0x51f840
sub eax, edx
je 0x51f87d
jmp 0x51f850
mov edx, dword [ebp + 0x2f]
movsx eax, byte [esi + edx]
push eax
call edi
add esp, 4
test eax, eax
je 0x520bb6
mov ebp, dword [esp + 0x10]
mov eax, dword [ebp + 0x2f]
inc esi
lea edx, [eax + 1]
mov cl, byte [eax]
inc eax
test cl, cl
jne 0x51f870
sub eax, edx
cmp esi, eax
jb 0x51f850
mov eax, dword [ebp + 0x2f]
lea edx, [esp + 0x28ec]
sub edx, eax
lea esp, [esp]
mov cl, byte [eax]
mov byte [eax + edx], cl
inc eax
test cl, cl
jne 0x51f890
mov dword [ebp + 0x37], 0x3fd
jmp 0x521657
mov ecx, str.blobsize
lea eax, [esp + 0x266c]
mov dl, byte [eax]
cmp dl, byte [ecx]
jne 0x51f8d2
test dl, dl
je 0x51f8ce
mov dl, byte [eax + 1]
cmp dl, byte [ecx + 1]
jne 0x51f8d2
add eax, 2
add ecx, 2
test dl, dl
jne 0x51f8b2
xor eax, eax
jmp 0x51f8d7
sbb eax, eax
sbb eax, 0xffffffff
test eax, eax
jne 0x51f946
mov eax, dword [ebp + 0x2f]
xor esi, esi
lea edx, [eax + 1]
mov cl, byte [eax]
inc eax
test cl, cl
jne 0x51f8e3
sub eax, edx
je 0x51f91d
mov edi, edi
mov ecx, dword [ebp + 0x2f]
movsx edx, byte [esi + ecx]
push edx
call edi
add esp, 4
test eax, eax
je 0x520bb6
mov ebp, dword [esp + 0x10]
mov eax, dword [ebp + 0x2f]
inc esi
lea edx, [eax + 1]
mov cl, byte [eax]
inc eax
test cl, cl
jne 0x51f910
sub eax, edx
cmp esi, eax
jb 0x51f8f0
mov eax, dword [ebp + 0x2f]
lea edx, [esp + 0x296c]
sub edx, eax
lea esp, [esp]
mov cl, byte [eax]
mov byte [eax + edx], cl
inc eax
test cl, cl
jne 0x51f930
mov dword [ebp + 0x37], 0x3fd
jmp 0x521657
mov ecx, str.name
lea eax, [esp + 0x266c]
mov dl, byte [eax]
cmp dl, byte [ecx]
jne 0x51f972
test dl, dl
je 0x51f96e
mov dl, byte [eax + 1]
cmp dl, byte [ecx + 1]
jne 0x51f972
add eax, 2
add ecx, 2
test dl, dl
jne 0x51f952
xor eax, eax
jmp 0x51f977
sbb eax, eax
sbb eax, 0xffffffff
test eax, eax
jne 0x51fa3f
mov ecx, str.COLUMN
lea eax, [esp + 0x24ec]
jmp 0x51f990
mov dl, byte [eax]
cmp dl, byte [ecx]
jne 0x51f9b0
test dl, dl
je 0x51f9ac
mov dl, byte [eax + 1]
cmp dl, byte [ecx + 1]
jne 0x51f9b0
add eax, 2
add ecx, 2
test dl, dl
jne 0x51f990
xor eax, eax
jmp 0x51f9b5
sbb eax, eax
sbb eax, 0xffffffff
test eax, eax
jne 0x51f9df
push 0x7f
call dword [sym.imp.MSVCR90.dll_malloc]
mov ecx, dword [ebp + 0x2f]
add esp, 4
mov dword [esp + 0x5c], eax
mov edx, eax
lea ecx, [ecx]
mov al, byte [ecx]
mov byte [edx], al
inc ecx
inc edx
test al, al
jne 0x51f9d0
jmp 0x521657
mov ecx, 0x5b0710
lea eax, [esp + 0x24ec]
jmp 0x51f9f0
mov dl, byte [eax]
cmp dl, byte [ecx]
jne 0x51fa10
test dl, dl
je 0x51fa0c
mov dl, byte [eax + 1]
cmp dl, byte [ecx + 1]
jne 0x51fa10
add eax, 2
add ecx, 2
test dl, dl
jne 0x51f9f0
xor eax, eax
jmp 0x51fa15
sbb eax, eax
sbb eax, 0xffffffff
test eax, eax
jne 0x521657
mov eax, dword [ebp + 0x2f]
lea edx, [esp + 0x286c]
sub edx, eax
lea esp, [esp]
mov cl, byte [eax]
mov byte [eax + edx], cl
inc eax
test cl, cl
jne 0x51fa30
jmp 0x521657
mov ecx, str.nullrep
lea eax, [esp + 0x266c]
jmp 0x51fa50
mov dl, byte [eax]
cmp dl, byte [ecx]
jne 0x51fa70
test dl, dl
je 0x51fa6c
mov dl, byte [eax + 1]
cmp dl, byte [ecx + 1]
jne 0x51fa70
add eax, 2
add ecx, 2
test dl, dl
jne 0x51fa50
xor eax, eax
jmp 0x51fa75
sbb eax, eax
sbb eax, 0xffffffff
test eax, eax
jne 0x51fb5f
mov ecx, str.TABLE
lea eax, [esp + 0x24ec]
lea esp, [esp]
mov dl, byte [eax]
cmp dl, byte [ecx]
jne 0x51fab0
test dl, dl
je 0x51faac
mov dl, byte [eax + 1]
cmp dl, byte [ecx + 1]
jne 0x51fab0
add eax, 2
add ecx, 2
test dl, dl
jne 0x51fa90
xor eax, eax
jmp 0x51fab5
sbb eax, eax
sbb eax, 0xffffffff
test eax, eax
jne 0x51faf8
xor esi, esi
cmp dword [esp + 0x3584], esi
mov dword [esp + 0x20], esi
jle 0x521657
mov edi, dword [esp + 0x74]
mov ebx, dword [esp + 0x3584]
mov ecx, dword [ebp + 0x2f]
mov edx, dword [edi + esi*4]
lea ecx, [ecx]
mov al, byte [ecx]
mov byte [edx], al
inc ecx
inc edx
test al, al
jne 0x51fae0
inc esi
cmp esi, ebx
jl 0x51fad7
mov dword [esp + 0x20], esi
jmp 0x521657
mov ecx, str.COLUMN
lea eax, [esp + 0x24ec]
mov dl, byte [eax]
cmp dl, byte [ecx]
jne 0x51fb24
test dl, dl
je 0x51fb20
mov dl, byte [eax + 1]
cmp dl, byte [ecx + 1]
jne 0x51fb24
add eax, 2
add ecx, 2
test dl, dl
jne 0x51fb04
xor eax, eax
jmp 0x51fb29
sbb eax, eax
sbb eax, 0xffffffff
test eax, eax
jne 0x521657
push 0x7f
mov dword [esp + 0x7c], 1
call dword [sym.imp.MSVCR90.dll_malloc]
mov ecx, dword [ebp + 0x2f]
add esp, 4
mov dword [esp + 0x9c], eax
mov edx, eax
mov al, byte [ecx]
mov byte [edx], al
inc ecx
inc edx
test al, al
jne 0x51fb50
jmp 0x521657
mov ecx, str.default
lea eax, [esp + 0x266c]
jmp 0x51fb70
mov dl, byte [eax]
cmp dl, byte [ecx]
jne 0x51fb90
test dl, dl
je 0x51fb8c
mov dl, byte [eax + 1]
cmp dl, byte [ecx + 1]
jne 0x51fb90
add eax, 2
add ecx, 2
test dl, dl
jne 0x51fb70
xor eax, eax
jmp 0x51fb95
sbb eax, eax
sbb eax, 0xffffffff
test eax, eax
jne 0x521657
mov ecx, str.COLUMN
lea eax, [esp + 0x24ec]
lea esp, [esp]
mov dl, byte [eax]
cmp dl, byte [ecx]
jne 0x51fbd0
test dl, dl
je 0x51fbcc
mov dl, byte [eax + 1]
cmp dl, byte [ecx + 1]
jne 0x51fbd0
add eax, 2
add ecx, 2
test dl, dl
jne 0x51fbb0
xor eax, eax
jmp 0x51fbd5
sbb eax, eax
sbb eax, 0xffffffff
test eax, eax
jne 0x521657
push 0x7f
call dword [sym.imp.MSVCR90.dll_malloc]
mov ecx, dword [ebp + 0x2f]
add esp, 4
mov dword [esp + 0x60], eax
mov edx, eax
mov al, byte [ecx]
mov byte [edx], al
inc ecx
inc edx
test al, al
jne 0x51fbf1
jmp 0x521657
cmp esi, 0x3f7
jne 0x51fc5c
mov ecx, str.encoding
lea eax, [esp + 0x266c]
mov dl, byte [eax]
cmp dl, byte [ecx]
jne 0x51fc34
test dl, dl
je 0x51fc30
mov dl, byte [eax + 1]
cmp dl, byte [ecx + 1]
jne 0x51fc34
add eax, 2
add ecx, 2
test dl, dl
jne 0x51fc14
xor eax, eax
jmp 0x51fc39
sbb eax, eax
sbb eax, 0xffffffff
test eax, eax
jne 0x521657
mov eax, dword [ebp + 0x2f]
lea edx, [esp + 0x30f4]
sub edx, eax
lea ecx, [ecx]
mov cl, byte [eax]
inc eax
test cl, cl
jne 0x51fc50
jmp 0x521657
cmp esi, 0x3f8
je 0x521657
cmp esi, 0x3fa
jne 0x51fc8f
mov eax, dword [ebp + 0x2f]
lea edx, [esp + 0x24ec]
sub edx, eax
lea esp, [esp]
mov cl, byte [eax]
mov byte [eax + edx], cl
inc eax
test cl, cl
jne 0x51fc80
jmp 0x521657
cmp esi, 0x402
je 0x52155d
cmp esi, 0x3fb
je 0x52155d
cmp esi, 0x3f9
je 0x521068
cmp esi, 0x3e9
je 0x521068
cmp esi, 0x3eb
je 0x51fce3
cmp esi, 0x400
je 0x51fce3
cmp esi, 0x401
je 0x51fce3
cmp esi, 0x405
jne 0x521657
cmp dword [esp + 0x35a0], 0
mov ebx, dword [ebp + 0x2f]
mov dword [esp + 0x18], ebx
jne 0x51fe6a
mov ecx, dword [esp + 0x44]
mov edi, dword [esp + 0x3584]
lea eax, [esp + 0x286c]
push eax
call fcn.005168f0
add esp, 4
mov dword [esp + 0x20], eax
cmp esi, 0x405
jne 0x51fda6
cmp eax, 0xffffffff
je 0x51fd77
lea ecx, [eax + eax*2]
mov eax, dword [esp + 0x3c]
mov edx, 0xd
cmp dx, word [eax + ecx*2]
jne 0x5216c6
cmp byte [esp + 0x256c], 0
jne 0x5216c6
mov esi, 0x3eb
push 1
push ebp
xor ecx, ecx
call fcn.0051b720
add esp, 8
mov dword [ebp + 0x50], eax
test eax, eax
jne 0x520bb6
mov ebp, dword [esp + 0x10]
cmp dword [ebp + 0x37], esi
jne 0x51fd51
jmp 0x521657
mov esi, 0x3eb
lea esp, [esp]
push 1
push ebp
xor ecx, ecx
call fcn.0051b720
add esp, 8
mov dword [ebp + 0x50], eax
test eax, eax
jne 0x520bb6
mov ebp, dword [esp + 0x10]
cmp dword [ebp + 0x37], esi
jne 0x51fd80
jmp 0x521657
cmp esi, 0x401
je 0x51fdc4
lea ecx, [eax + eax*2]
mov eax, dword [esp + 0x3c]
mov edx, 0xd
cmp dx, word [eax + ecx*2]
jne 0x51fe6a
mov ecx, ebx
lea eax, [esp + 0x24ec]
lea ecx, [ecx]
mov dl, byte [eax]
cmp dl, byte [ecx]
jne 0x51fdf0
test dl, dl
je 0x51fdec
mov dl, byte [eax + 1]
cmp dl, byte [ecx + 1]
jne 0x51fdf0
add eax, 2
add ecx, 2
test dl, dl
jne 0x51fdd0
xor eax, eax
jmp 0x51fdf5
sbb eax, eax
sbb eax, 0xffffffff
test eax, eax
je 0x51fe05
cmp esi, 0x401
je 0x521853
lea ecx, [esp + 0x256c]
mov edx, ebx
mov edi, edi
mov al, byte [ecx]
mov byte [edx], al
inc ecx
inc edx
test al, al
jne 0x51fe10
cmp byte [esp + 0x256c], al
je 0x521657
mov edx, dword [ebp + 0x33]
cmp byte [esp + 0x26ec], al
je 0x51fe53
lea ecx, [esp + 0x26ec]
lea ebx, [ebx]
mov al, byte [ecx]
mov byte [edx], al
inc ecx
inc edx
test al, al
jne 0x51fe40
mov byte [esp + 0x26ec], al
jmp 0x51fe6a
lea ecx, [esp + 0x256c]
lea ebx, [ebx]
mov al, byte [ecx]
mov byte [edx], al
inc ecx
inc edx
test al, al
jne 0x51fe60
mov edi, dword [esp + 0x3584]
lea ecx, [esp + 0x286c]
push ecx
mov ecx, dword [esp + 0x48]
call fcn.005168f0
mov edi, eax
add esp, 4
mov dword [esp + 0x20], edi
test edi, edi
jl 0x521657
mov esi, dword [ebp + 0x2f]
mov edx, dword [esp + 0x74]
mov edx, dword [edx + edi*4]
mov ecx, esi
nop
mov al, byte [ecx]
cmp al, byte [edx]
jne 0x51fec0
test al, al
je 0x51febc
mov al, byte [ecx + 1]
cmp al, byte [edx + 1]
jne 0x51fec0
add ecx, 2
add edx, 2
test al, al
jne 0x51fea0
xor eax, eax
jmp 0x51fec5
sbb eax, eax
sbb eax, 0xffffffff
test eax, eax
jne 0x51feec
cmp dword [esp + 0x2c], eax
je 0x51feec
mov dword [esp + edi*4 + 0xd4], eax
mov eax, dword [esp + 0x3588]
cmp byte [edi + eax], 0
je 0x51f6aa
jmp 0x521657
mov edi, dword [esp + 0x20]
mov edx, dword [esp + 0x3c]
lea ecx, [edi + edi*2]
movsx ebx, word [edx + ecx*2]
lea ebp, [edx + ecx*2]
lea eax, [ebx - 1]
mov dword [esp + 0x54], ebp
mov dword [esp + 0x1c], ebx
cmp eax, 0x1e
ja case.0x51ff19.10
movzx eax, byte [eax + 0x521c5c]
jmp dword [eax*4 + 0x521c24]
lea ecx, [esp + 0x24]
push ecx
lea edx, [esp + 0x6c]
push edx
push esi
call fcn.00575c10
add esp, 0xc
test eax, eax
je 0x5216e4
mov ecx, dword [esp + 0x24]
cmp byte [ecx], 0
jne 0x5216e4
push eax
call fcn.00575780
push 5
mov esi, eax
call fcn.00575780
add esp, 8
cmp esi, eax
jg 0x5216d3
mov edx, dword [esp + 0x4e8]
mov al, byte [esp + 0x68]
shl edx, 5
mov byte [esp + edx + 0x4ec], al
mov eax, dword [esp + 0x4e8]
mov ecx, eax
shl ecx, 5
lea edx, [esp + ecx + 0x4ec]
inc eax
mov dword [esp + edi*4 + 0xd4], edx
mov dword [esp + 0x4e8], eax
mov ebp, dword [esp + 0x10]
jmp 0x521657
lea eax, [esp + 0x24]
push eax
lea ecx, [esp + 0x6c]
push ecx
push esi
call fcn.00575c10
add esp, 0xc
test eax, eax
je 0x521706
mov edx, dword [esp + 0x24]
cmp byte [edx], 0
jne 0x521706
push eax
call fcn.00575780
push 6
mov esi, eax
call fcn.00575780
add esp, 8
cmp esi, eax
jg 0x5216f5
mov eax, dword [esp + 0x4e8]
mov cx, word [esp + 0x68]
mov ebp, dword [esp + 0x10]
shl eax, 5
mov word [esp + eax + 0x4ec], cx
mov eax, dword [esp + 0x4e8]
mov edx, eax
shl edx, 5
lea ecx, [esp + edx + 0x4ec]
inc eax
mov dword [esp + edi*4 + 0xd4], ecx
mov dword [esp + 0x4e8], eax
jmp 0x521657
lea edx, [esp + 0x24]
push edx
lea eax, [esp + 0x6c]
push eax
push esi
call fcn.00575c10
add esp, 0xc
test eax, eax
je 0x521728
mov ecx, dword [esp + 0x24]
cmp byte [ecx], 0
jne 0x521728
push eax
call fcn.00575780
push 1
mov esi, eax
call fcn.00575780
add esp, 8
cmp esi, eax
jg 0x521717
mov edx, dword [esp + 0x4e8]
mov eax, dword [esp + 0x68]
shl edx, 5
mov dword [esp + edx + 0x4ec], eax
jmp 0x51ff77
lea eax, [esp + 0x24]
push eax
lea ecx, [esp + 0x6c]
push ecx
push esi
call fcn.00575c10
add esp, 0xc
test eax, eax
je 0x5216e4
mov edx, dword [esp + 0x24]
cmp byte [edx], 0
jne 0x5216e4
push eax
call fcn.00575780
push 0x1f
mov esi, eax
call fcn.00575780
add esp, 8
cmp esi, eax
jg 0x5216d3
mov eax, dword [esp + 0x4e8]
mov ecx, dword [esp + 0x68]
mov edx, dword [esp + 0x6c]
shl eax, 5
mov dword [esp + eax + 0x4ec], ecx
mov dword [esp + eax + 0x4f0], edx
jmp 0x51ff77
mov eax, dword [esp + 0x18]
movsx ecx, byte [eax]
mov ebx, dword [esp + 0x4e8]
shl ebx, 5
push ecx
lea ebx, [esp + ebx + 0x4f0]
call dword [sym.imp.MSVCR90.dll_isdigit]
add esp, 4
test eax, eax
je 0x5201d0
cmp byte [esp + 0x27ec], 0
jne 0x520267
mov edx, dword [esp + 0x80]
mov eax, dword [edx + edi*4]
cmp byte [eax], 0
je 0x5201d0
lea edx, [esp + 0x25ec]
sub edx, eax
lea ecx, [ecx]
mov cl, byte [eax]
mov byte [eax + edx], cl
inc eax
test cl, cl
jne 0x520140
lea edi, [esp + 0x25ec]
dec edi
mov al, byte [edi + 1]
inc edi
test al, al
jne 0x520152
mov ax, word [0x5a9d18]
mov word [edi], ax
mov eax, dword [esp + 0x18]
mov ecx, eax
lea esp, [esp]
mov dl, byte [eax]
inc eax
test dl, dl
jne 0x520170
lea edi, [esp + 0x25ec]
sub eax, ecx
mov esi, ecx
dec edi
mov cl, byte [edi + 1]
inc edi
test cl, cl
jne 0x520183
mov ecx, eax
shr ecx, 2
rep movsd dword es:[edi], dword [esi]
mov ecx, eax
and ecx, 3
rep movsb byte es:[edi], byte [esi]
lea edi, [esp + 0x25ec]
dec edi
mov al, byte [edi + 1]
inc edi
test al, al
jne 0x5201a1
mov cx, word [0x5a9050]
mov edx, dword [esp + 0x18]
lea eax, [esp + 0x25ec]
mov word [edi], cx
mov ecx, eax
sub edx, ecx
mov cl, byte [eax]
mov byte [edx + eax], cl
inc eax
test cl, cl
jne 0x5201c2
mov edi, dword [esp + 0x20]
mov edx, dword [esp + 0x18]
mov dword [esp + 0x54], edx
lea edx, [esp + 0x54]
call fcn.00514ed0
mov esi, dword [esp + 0x54]
push 0
lea eax, [esp + 0xc8]
push 1
push eax
mov dword [esp + 0xd4], esi
call fcn.004aa4b0
mov ecx, dword [esp + 0x1c]
add esp, 0xc
mov dword [ecx + 0x50], eax
test eax, eax
jne 0x521abb
mov al, byte [esi]
test al, al
js 0x52028f
movsx edx, al
push edx
call dword [sym.imp.MSVCR90.dll_isdigit]
add esp, 4
test eax, eax
je 0x52028f
movsx ecx, byte [ebp + 3]
push 0
push 0xc7
push 0
lea eax, [esp + 0x28]
push eax
push ecx
push 8
push 0
push ebx
mov dword [esp + 0x3c], 8
call fcn.004aab10
mov esi, dword [esp + 0x30]
add esp, 0x20
mov dword [esi + 0x50], eax
test eax, eax
je 0x5202bb
mov esi, 0x412
jmp 0x520bbd
xor eax, eax
lea esp, [esp]
mov cl, byte [esp + eax + 0x27ec]
mov byte [esp + eax + 0x25ec], cl
inc eax
test cl, cl
jne 0x520270
mov byte [esp + 0x27ec], cl
jmp 0x52014a
lea edx, [esp + 0x24]
push edx
push 0
push 0
push ebx
push 8
call fcn.004abe60
mov esi, dword [esp + 0x24]
add esp, 0x14
mov dword [esi + 0x50], eax
test eax, eax
jne 0x52025d
mov eax, dword [esp + 0x24]
cmp byte [eax], 0
jne 0x521739
push ebp
push ebx
call fcn.00576090
add esp, 8
test eax, eax
jne 0x5202e8
movsx ecx, byte [ebp + 3]
movsx edx, byte [ebp + 2]
push ecx
push edx
push ebx
push ebx
call fcn.0057c190
add esp, 0x10
mov dword [esi + 0x50], eax
test eax, eax
jne 0x52025d
inc dword [esp + 0x4e8]
mov ebp, dword [esp + 0x10]
mov dword [esp + edi*4 + 0xd4], ebx
jmp 0x521657
mov esi, dword [esp + 0x18]
movsx eax, byte [esi]
mov ebx, dword [esp + 0x4e8]
mov edi, dword [sym.imp.MSVCR90.dll_isdigit]
shl ebx, 5
push eax
lea ebx, [esp + ebx + 0x4f0]
mov ebp, 1
call edi
add esp, 4
test eax, eax
jne 0x520347
cmp byte [esi], 0x2d
jne 0x5203e3
movsx ecx, byte [esi + 1]
push ecx
call edi
add esp, 4
test eax, eax
je 0x5203e3
cmp byte [esp + 0x27ec], 0
jne 0x5204a0
mov edx, dword [esp + 0x80]
mov eax, dword [esp + 0x20]
mov eax, dword [edx + eax*4]
cmp byte [eax], 0
je 0x5203e3
lea edx, [esp + 0x25ec]
sub edx, eax
mov cl, byte [eax]
mov byte [edx + eax], cl
inc eax
test cl, cl
jne 0x520375
lea edi, [esp + 0x25ec]
dec edi
mov al, byte [edi + 1]
inc edi
test al, al
jne 0x520387
mov cx, word [0x5a9d18]
mov eax, esi
mov word [edi], cx
mov ecx, eax
lea ecx, [ecx]
mov dl, byte [eax]
inc eax
test dl, dl
jne 0x5203a0
lea edi, [esp + 0x25ec]
sub eax, ecx
mov esi, ecx
dec edi
mov cl, byte [edi + 1]
inc edi
test cl, cl
jne 0x5203b3
mov ecx, eax
shr ecx, 2
rep movsd dword es:[edi], dword [esi]
mov ecx, eax
and ecx, 3
rep movsb byte es:[edi], byte [esi]
lea edi, [esp + 0x25ec]
dec edi
mov al, byte [edi + 1]
inc edi
test al, al
jne 0x5203d1
mov dx, word [0x5a9050]
mov word [edi], dx
mov eax, dword [esp + 0x18]
lea edx, [esp + 0x1c]
mov dword [esp + 0x1c], eax
call fcn.00514ed0
mov esi, dword [esp + 0x1c]
cmp byte [esi], 0x2d
jne 0x52041b
mov al, byte [esi + 1]
test al, al
js 0x52041b
movsx ecx, al
push ecx
call dword [sym.imp.MSVCR90.dll_isdigit]
add esp, 4
test eax, eax
je 0x52041b
mov ebp, 2
inc esi
push 0
lea edx, [esp + 0xd0]
push 1
push edx
mov dword [esp + 0xdc], esi
call fcn.004aa4b0
mov ecx, dword [esp + 0x1c]
add esp, 0xc
mov dword [ecx + 0x50], eax
test eax, eax
jne 0x521abb
mov al, byte [esi]
test al, al
js 0x5204cf
movsx edx, al
push edx
call dword [sym.imp.MSVCR90.dll_isdigit]
add esp, 4
test eax, eax
je 0x5204cf
mov edi, dword [esp + 0x54]
movsx ecx, byte [edi + 3]
push 0
push 0xc7
push ebp
lea eax, [esp + 0x28]
push eax
push ecx
push 9
push ebx
push 0
mov dword [esp + 0x3c], 8
call fcn.004aab10
mov esi, dword [esp + 0x30]
add esp, 0x20
mov dword [esi + 0x50], eax
test eax, eax
je 0x5204ff
mov esi, 0x413
jmp 0x520bbd
xor eax, eax
jmp 0x5204b0
mov cl, byte [esp + eax + 0x27ec]
mov byte [esp + eax + 0x25ec], cl
inc eax
test cl, cl
jne 0x5204b0
mov byte [esp + 0x27ec], cl
jmp 0x52037f
lea edx, [esp + 0x24]
push edx
push 0
push ebx
push 0
push 9
call fcn.004abe60
mov esi, dword [esp + 0x24]
add esp, 0x14
mov dword [esi + 0x50], eax
test eax, eax
jne 0x520496
mov eax, dword [esp + 0x24]
cmp byte [eax], 0
jne 0x521742
mov edi, dword [esp + 0x54]
push edi
push ebx
call fcn.00576090
add esp, 8
test eax, eax
jne 0x52052c
movsx ecx, byte [edi + 3]
movsx edx, byte [edi + 2]
push ecx
push edx
push ebx
push ebx
call fcn.0057c240
add esp, 0x10
mov dword [esi + 0x50], eax
test eax, eax
jne 0x520496
mov eax, dword [esp + 0x20]
inc dword [esp + 0x4e8]
mov ebp, dword [esp + 0x10]
mov dword [esp + eax*4 + 0xd4], ebx
jmp 0x521657
mov edx, dword [esp + 0x18]
lea ecx, [esp + 0x4d4]
push ecx
push edx
call fcn.00581c30
mov ebx, dword [esp + 0x18]
add esp, 8
mov dword [ebx + 0x50], eax
test eax, eax
jne 0x521768
lea eax, [esp + 0x4d4]
push ebp
push eax
call fcn.00580790
add esp, 8
test eax, eax
je 0x521772
cmp byte [ebp + 2], 0
je 0x5205b3
mov ecx, dword [esp + 0x4e8]
movsx eax, byte [ebp + 3]
shl ecx, 5
lea edx, [esp + ecx + 0x4ec]
push edx
push eax
lea ecx, [esp + 0x4dc]
push ecx
call fcn.005822b0
add esp, 0xc
jmp 0x5205d5
mov edx, dword [esp + 0x4e8]
shl edx, 5
lea eax, [esp + edx + 0x4ec]
push eax
lea ecx, [esp + 0x4d8]
push ecx
call fcn.005808e0
add esp, 8
mov eax, dword [esp + 0x4e8]
mov edx, eax
shl edx, 5
lea ecx, [esp + edx + 0x4ec]
inc eax
mov dword [esp + edi*4 + 0xd4], ecx
mov dword [esp + 0x4e8], eax
mov ebp, ebx
jmp 0x521657
mov ecx, dword [esp + 0x18]
lea edx, [esp + 0x17]
push edx
lea eax, [esp + 0xb8]
push eax
push str._le_c
push ecx
mov byte [esp + 0x27], 0
call fcn.00571e30
add esp, 0x10
cmp byte [esp + 0x17], 0
jne 0x52177f
test eax, eax
je 0x52177f
fld qword [esp + 0xb4]
sub esp, 8
fstp qword [esp]
call fcn.00575de0
add esp, 8
cmp eax, 2
je 0x5216d3
fld qword [esp + 0xb4]
mov edx, dword [esp + 0x4e8]
fstp dword [esp + 0x1c]
shl edx, 5
fld dword [esp + 0x1c]
fstp dword [esp + edx + 0x4ec]
jmp 0x51ff77
mov ecx, dword [esp + 0x4e8]
lea eax, [esp + 0x17]
push eax
mov eax, dword [esp + 0x1c]
shl ecx, 5
lea edx, [esp + ecx + 0x4f0]
push edx
push str._le_c
push eax
mov byte [esp + 0x27], 0
call fcn.00571e30
add esp, 0x10
cmp byte [esp + 0x17], 0
jne 0x5206b5
test eax, eax
jne 0x51ff77
mov ecx, dword [esp + 0x10]
mov dword [ecx + 0x50], 0x4c2e
jmp 0x5217ad
movsx edi, word [ebp + 2]
mov esi, dword [esp + 0x10]
test edi, edi
jle 0x520745
mov ebp, dword [esi + 0x3f]
cmp ebp, edi
jle 0x520711
mov eax, dword [0x5b46ac]
cmp byte [eax + 0x342], 0
je 0x5216d3
cmp ebx, 0x1d
jne 0x5216d3
mov ecx, dword [esp + 0x18]
push ecx
call fcn.00576bc0
add esp, 4
cmp eax, edi
jg 0x5216d3
mov ebp, dword [esi + 0x3f]
mov edi, ebp
test edi, edi
jle 0x520745
cmp ebx, 4
jne 0x520748
cmp ebp, edi
jge 0x52073b
mov edx, dword [esp + 0x18]
mov esi, edi
sub esi, ebp
push esi
lea eax, [edx + ebp]
push 0x20
push eax
call sub.MSVCR90.dll_memset
add esp, 0xc
add ebp, esi
mov esi, dword [esp + 0x10]
mov eax, dword [esp + 0x18]
mov byte [eax + ebp], 0
jmp 0x520748
mov edi, dword [esi + 0x3f]
mov ecx, dword [esp + 0x18]
inc edi
push edi
push ecx
call dword [sym.imp.MSVCR90.dll_realloc]
mov edx, dword [esp + 0x28]
add esp, 8
mov dword [esp + edx*4 + 0xd4], eax
test eax, eax
je 0x520780
push 0xff3c
call dword [sym.imp.MSVCR90.dll_malloc]
add esp, 4
mov dword [esi + 0x2f], eax
test eax, eax
jne 0x51ff99
mov dword [esi + 0x50], 6
jmp 0x521b2d
cmp ebx, 0xc
jne 0x520798
mov esi, 0x4c3d
jmp 0x5207aa
mov esi, ebx
sub esi, 0xe
neg esi
sbb esi, esi
and esi, 3
add esi, 0x4c40
mov ebx, dword [sym.imp.MSVCR90.dll_malloc]
push 0x7fa0
call ebx
add esp, 4
mov dword [esp + 0x18], eax
mov dword [esp + edi*4 + 0xd4], eax
test eax, eax
je 0x5217da
push 0x7fa0
call ebx
add esp, 4
mov dword [esp + 0x30], eax
test eax, eax
je 0x5217da
mov ebp, dword [esp + 0x10]
mov edi, dword [ebp + 0x2f]
mov al, byte [edi + 1]
mov bl, byte [edi]
test al, al
js 0x520814
movsx eax, al
push eax
call dword [sym.imp.MSVCR90.dll_isupper]
add esp, 4
test eax, eax
je 0x520814
movsx ecx, byte [edi + 1]
push ecx
call dword [sym.imp.MSVCR90.dll_tolower]
add esp, 4
jmp 0x520817
mov al, byte [edi + 1]
cmp bl, 0x30
jne 0x521790
cmp al, 0x78
jne 0x52082b
mov ebp, 0xc
jmp 0x520847
cmp al, 0x62
je 0x520842
cmp al, 0x75
jne 0x521790
cmp dword [esp + 0x1c], 0x1e
jne 0x521790
mov ebp, 0x1e
add edi, 2
push edi
mov edi, dword [esp + 0x34]
mov eax, ebp
sub eax, 0xc
push edi
je 0x520882
sub eax, 2
je 0x52086f
call fcn.00584310
add esp, 8
cmp byte [eax], 0
jne 0x5216e9
jmp 0x520899
call fcn.005842e0
add esp, 8
cmp byte [eax], 0
jne 0x5216fa
jmp 0x520899
call fcn.00576ce0
mov ecx, dword [esp + 0x18]
add esp, 8
mov dword [ecx + 0x50], eax
test eax, eax
jne 0x5216fe
mov edx, dword [esp + 0x18]
mov eax, dword [esp + 0x54]
push 0
push edx
push eax
push edi
push ebp
call fcn.00579be0
mov ecx, dword [esp + 0x24]
add esp, 0x14
mov dword [ecx + 0x50], eax
test eax, eax
jne 0x5217d0
push edi
call dword [sym.imp.MSVCR90.dll_free]
mov ebp, dword [esp + 0x14]
add esp, 4
mov dword [esp + 0x30], 0
jmp 0x521657
mov esi, dword [esp + 0x18]
push 0x5a90cc
push esi
call fcn.00576c40
add esp, 8
test eax, eax
jne 0x520906
mov edx, dword [esp + 0x4e8]
shl edx, 5
mov byte [esp + edx + 0x4ec], 1
jmp 0x51ff77
push 0x5a90c4
push esi
call fcn.00576c40
add esp, 8
test eax, eax
jne 0x5217ea
mov eax, dword [esp + 0x4e8]
shl eax, 5
mov byte [esp + eax + 0x4ec], 0
jmp 0x51ff77
mov eax, dword [esp + 0x4e8]
mov ebx, dword [esp + 0x20]
mov ecx, eax
inc eax
shl ecx, 5
mov dword [esp + 0x4e8], eax
mov eax, dword [esp + 0x358c]
sub eax, 0
lea ebp, [esp + ecx + 0x4ec]
mov dword [esp + ebx*4 + 0xd4], ebp
je 0x520d86
sub eax, 1
je 0x520a12
sub eax, 4
jne case.0x51ff19.10
lea edx, [esp + 0x2aec]
push edx
push esi
mov dword [ebp + 4], 0xffffffff
mov dword [ebp], eax
mov byte [ebp + 0x12], al
mov dword [ebp + 0xc], eax
call fcn.0056b400
mov esi, dword [esp + 0x60]
add esp, 8
lea eax, [esp + 0x2bf0]
push eax
lea ecx, [esp + 0x2af0]
push ecx
mov edx, eax
push 0
push edx
lea eax, [esi + 0x201]
push eax
call fcn.0056b010
add esp, 8
push eax
call fcn.0056ae90
add esi, 0x100
push esi
call fcn.0056af80
push eax
lea ecx, [esp + 0x2b04]
push str.BFILE_s
push ecx
call dword [sym.imp.MSVCR90.dll_sprintf]
push ebp
add ebp, 0x10
push ebp
push 0
lea edx, [esp + 0x2c1c]
push edx
lea eax, [esp + 0x2b1c]
push eax
call fcn.00424a70
mov ebp, dword [esp + 0x44]
add esp, 0x34
jmp 0x521657
cmp byte [esp + 0x256c], 0
je 0x520a65
mov esi, dword [esp + 0x48]
lea ecx, [esp + 0xb0]
push ecx
lea edx, [ebp + 0xc]
push edx
lea eax, [ebp + 4]
push eax
push ebp
push str._ld_ld_ld_d
push esi
call fcn.00571f80
add esp, 0x18
cmp eax, 4
jne 0x52180b
mov cx, word [esp + 0xb0]
mov byte [ebp + 9], 1
mov byte [ebp + 8], 1
mov word [ebp + 0x10], cx
mov ebp, dword [esp + 0x10]
jmp 0x521657
mov esi, dword [esp + 0x10]
mov edx, dword [esi + 0x1b]
mov eax, dword [esp + 0x58]
mov ecx, dword [eax + 0x1720]
push 0
push 0x2a
push edx
push ecx
mov dword [ebp], 0
call fcn.0055ace0
add esp, 0x10
mov dword [esi + 0x50], eax
test eax, eax
jne 0x520bb6
lea ecx, [esp + 0x38]
push ecx
xor edx, edx
mov dword [esp + 0xc0], eax
mov eax, dword [esp + 0x5c]
push edx
add eax, 0xb12
push 4
push eax
mov word [esp + 0xd0], dx
mov dword [esp + 0x2c], eax
call fcn.004238c0
add esp, 0x10
mov edx, esi
mov dword [edx + 0x50], eax
test eax, eax
jne 0x520bb6
mov edx, dword [esp + 0x38]
lea eax, [ebp + 0xc]
push eax
push 3
lea ecx, [esp + 0xc4]
push ecx
push edx
call fcn.00423900
add esp, 0x10
mov ecx, esi
mov dword [ecx + 0x50], eax
test eax, eax
jne 0x520bb6
xor esi, esi
lea esp, [esp]
mov ebx, dword [esp + 0x10]
xor edi, edi
cmp dword [ebx + 0x3f], edi
jle 0x520b95
nop
lea edx, [esi + 0xa]
cmp edx, 0x400
jbe 0x520b4e
mov edx, dword [esp + 0x38]
lea eax, [esp + 0x28]
push eax
push esi
lea ecx, [esp + 0x317c]
push ecx
push edx
call fcn.00423e80
add esp, 0x10
mov dword [ebx + 0x50], eax
test eax, eax
jne 0x520bb6
mov eax, dword [esp + 0x28]
add dword [ebp], eax
mov ebx, dword [esp + 0x10]
xor esi, esi
mov eax, dword [ebx + 0x2f]
lea ecx, [esp + esi + 0x3174]
push ecx
movsx ecx, byte [edi + eax]
lea edx, [esp + 0x8c]
push edx
mov edx, dword [esp + 0x60]
mov eax, dword [edx + 0x1720]
push ecx
push eax
call fcn.0055ad50
add esp, 0x10
mov dword [ebx + 0x50], eax
test eax, eax
jne 0x520bb6
mov ebx, dword [esp + 0x10]
add esi, dword [esp + 0x88]
inc edi
cmp edi, dword [ebx + 0x3f]
jl 0x520b10
cmp dword [ebx + 0x37], 0x3eb
je 0x520c9e
mov al, 1
mov ecx, ebx
call fcn.0051d420
mov dword [ebx + 0x50], eax
test eax, eax
je 0x520b00
mov esi, dword [esp + 0x8c]
mov edi, dword [esp + 0x10]
mov eax, dword [edi + 0x50]
mov ebx, 1
add dword [edi + 0x79], ebx
cmp eax, dword [edi + 0x17]
je 0x520c02
push str.File
push str.Attr
push str.Byte
push str.Char
push str.Line
push 0x7e6
push 0x4c37
call fcn.00406f10
mov eax, dword [edi + 0x50]
add esp, 0x1c
mov dword [edi + 0x17], eax
mov ecx, dword [edi]
mov edx, dword [esp + 0x20]
push ecx
mov ecx, dword [edi + 0x27]
inc edx
push edx
mov edx, dword [edi + 0x23]
add ecx, ebx
push ecx
add edx, ebx
xor ecx, ecx
cmp eax, 0x4c2c
sete cl
push edx
mov edx, dword [edi + 4]
sub edx, ecx
push edx
push 0x7e6
push 0x4c44
call fcn.00406f10
add esp, 0x1c
cmp dword [esp + 0xac], 0
jne 0x521bfa
cmp dword [edi + 0x50], 0x5604
je 0x521bfa
cmp dword [esp + 0x4c], 0
mov eax, dword [esp + 0x90]
mov dword [edi + 4], eax
jne 0x520c6c
mov ecx, dword [edi + 0xc]
mov dword [esp + 0x4c], ecx
mov dword [edi + 0x37], 0x3fc
cmp dword [edi + 0x6d], ebx
jne 0x521b1a
mov edx, dword [esp + 0x4c]
mov eax, dword [esp + 0x50]
add edx, 0xfffffffe
push edx
push eax
push esi
lea ecx, [esp + 0x2a78]
call fcn.0051cb70
add esp, 0xc
jmp 0x521b25
lea ecx, [esi + 0xa]
cmp ecx, 0x400
jbe 0x520cdc
mov ecx, dword [esp + 0x38]
lea edx, [esp + 0x28]
push edx
push esi
lea eax, [esp + 0x317c]
push eax
push ecx
call fcn.00423e80
add esp, 0x10
mov dword [ebx + 0x50], eax
test eax, eax
jne 0x520bb6
mov edx, dword [esp + 0x28]
add dword [ebp], edx
mov ebx, dword [esp + 0x10]
xor esi, esi
mov edx, dword [esp + 0x58]
lea eax, [esp + esi + 0x3174]
push eax
mov eax, dword [edx + 0x1720]
lea ecx, [esp + 0x8c]
push ecx
push eax
call fcn.0055adb0
add esp, 0xc
mov dword [ebx + 0x50], eax
test eax, eax
jne 0x520bb6
add esi, dword [esp + 0x88]
mov eax, dword [esp + 0x38]
lea ecx, [esp + 0x28]
push ecx
push esi
lea edx, [esp + 0x317c]
push edx
push eax
call fcn.00423e80
mov ecx, dword [esp + 0x20]
add esp, 0x10
mov dword [ecx + 0x50], eax
test eax, eax
jne 0x520bb6
mov edx, dword [esp + 0x38]
push edx
call fcn.004240d0
mov ecx, dword [esp + 0x14]
add esp, 4
mov dword [ecx + 0x50], eax
test eax, eax
jne 0x520bb6
mov edx, dword [esp + 0x28]
mov eax, dword [esp + 0x1c]
add dword [ebp], edx
mov ecx, dword [eax]
mov edx, dword [eax + 4]
mov byte [ebp + 9], 1
mov byte [ebp + 8], 1
mov dword [ebp + 4], ecx
mov dword [ebp + 8], edx
mov ebp, dword [esp + 0x10]
mov dword [esp + 0x38], 0xffffffff
jmp 0x521657
lea edx, [esp + 0x2cf4]
mov eax, esi
sub edx, esi
mov cl, byte [eax]
mov byte [edx + eax], cl
inc eax
test cl, cl
jne 0x520d91
mov edi, dword [esp + 0x58]
movzx eax, word [edi + 0x171e]
cmp ax, 1
mov esi, dword [esp + 0x10]
jl 0x520e8d
cmp dword [esi + 0x47], 0
jne 0x520e20
cmp byte [esi + 0x4b], cl
je 0x520e20
mov edx, dword [esi + 0x33]
lea eax, [esp + 0x40]
push eax
lea ecx, [esp + 0x68]
push ecx
push edx
call fcn.0056c080
add esp, 0xc
test eax, eax
je 0x521827
mov ecx, dword [esi + 0x43]
mov edx, dword [esi + 0x33]
cmp byte [ecx + edx - 1], 0x3e
jne 0x521827
cmp eax, 1
jne 0x520e8f
lea ecx, [esp + 0x2cf4]
lea esi, [ecx + 1]
mov dl, byte [ecx]
inc ecx
test dl, dl
jne 0x520e01
sub ecx, esi
je 0x520e8f
mov eax, dword [esp + 0x10]
mov dword [eax + 0x50], 0x4c41
jmp 0x5217ad
cmp ax, 1
jl 0x520e8d
cmp byte [esi + 0x4b], 0
jne 0x520e8d
lea eax, [esp + 0x2cf4]
push 0x3c
push eax
call dword [sym.imp.MSVCR90.dll_strrchr]
mov esi, eax
add esp, 8
test esi, esi
je 0x520e8d
lea ecx, [esp + 0x40]
push ecx
lea edx, [esp + 0x68]
push edx
push esi
call fcn.0056c080
add esp, 0xc
test eax, eax
jle 0x520e63
mov byte [esi], 0
cmp eax, 1
jne 0x520e8f
lea ecx, [esp + 0x2cf4]
lea esi, [ecx + 1]
mov dl, byte [ecx]
inc ecx
test dl, dl
jne 0x520e72
sub ecx, esi
je 0x520e8f
mov ecx, dword [esp + 0x10]
mov dword [ecx + 0x50], 0x4c41
jmp 0x5217ad
xor eax, eax
mov dl, byte [esp + 0x2cf4]
test dl, dl
jne 0x520eb1
mov ecx, dword [edi + ebx*4 + 0x131e]
test ecx, ecx
je 0x521833
cmp byte [ecx], dl
je 0x521833
sub eax, 0
je 0x520ffb
mov esi, 1
sub eax, esi
je 0x520f97
sub eax, esi
jne 0x52104e
test dl, dl
je 0x520f1e
cmp dword [edi + ebx*4 + 0x131e], eax
jne 0x520f00
push 0x401
call dword [sym.imp.MSVCR90.dll_malloc]
add esp, 4
mov dword [edi + ebx*4 + 0x131e], eax
test eax, eax
je 0x521843
mov dl, byte [esp + 0x2cf4]
test dl, dl
je 0x520f1e
mov edx, dword [edi + ebx*4 + 0x131e]
lea ecx, [esp + 0x2cf4]
mov al, byte [ecx]
mov byte [edx], al
add ecx, esi
add edx, esi
test al, al
jne 0x520f12
cmp dword [edi + 0x309], esi
jle 0x520f44
mov eax, dword [edi + ebx*4 + 0x131e]
mov ecx, dword [esp + 0x40]
mov edx, dword [esp + 0x64]
push eax
mov eax, dword [esp + 0x4c]
push ecx
push edx
push str.__lu:_lu__s_n
push eax
jmp 0x520f60
mov edx, dword [esp + 0x40]
mov eax, dword [esp + 0x64]
lea ecx, [esp + 0x2cf4]
push ecx
mov ecx, dword [esp + 0x4c]
push edx
push eax
push str.__lu:_lu__s_n
push ecx
call dword [sym.imp.MSVCR90.dll_fprintf]
mov ecx, dword [esp + 0x54]
mov eax, dword [esp + 0x78]
add esp, 0x14
lea edx, [edi + ebx*4 + 0xf1e]
mov dword [edx], eax
cmp ecx, 0xffffffff
jne 0x520f8e
mov edx, dword [edi + ebx*4 + 0x131e]
mov byte [edx], 0
jmp 0x52104e
add eax, ecx
mov dword [edx], eax
jmp 0x52104e
cmp dword [edi + 0x309], esi
mov ecx, dword [esp + 0x40]
jle 0x520fc9
mov eax, dword [edi + ebx*4 + 0x131e]
mov edx, dword [edi + ebx*4 + 0xf1e]
push eax
mov eax, dword [esp + 0x4c]
push ecx
push edx
push str.__ld:_ld__s_n
push eax
call dword [sym.imp.MSVCR90.dll_fprintf]
add esp, 0x14
jmp 0x520fdd
mov edx, dword [esp + 0x48]
push ecx
push str.__ld__n
push edx
call dword [sym.imp.MSVCR90.dll_fprintf]
add esp, 0xc
mov eax, dword [esp + 0x40]
cmp eax, 0xffffffff
jne 0x520ff2
mov eax, dword [edi + ebx*4 + 0x131e]
mov byte [eax], 0
jmp 0x52104e
add dword [edi + ebx*4 + 0xf1e], eax
jmp 0x52104e
mov eax, dword [edi + ebx*4 + 0x131e]
test eax, eax
je 0x521010
mov byte [eax], 0
mov dl, byte [esp + 0x2cf4]
cmp word [edi + 0x171e], 1
jl 0x521033
cmp dl, 0x3c
jne 0x521033
mov edx, dword [esp + 0x48]
lea ecx, [esp + 0x2cf4]
push ecx
push str._0:_1__s_n
push edx
jmp 0x521045
mov ecx, dword [esp + 0x48]
lea eax, [esp + 0x2cf4]
push eax
push 0x5a8500
push ecx
call dword [sym.imp.MSVCR90.dll_fprintf]
add esp, 0xc
xor eax, eax
mov dword [ebp], eax
mov dword [ebp + 4], eax
mov dword [ebp + 8], eax
mov dword [ebp + 0xc], eax
mov dword [ebp + 0x10], eax
mov ebp, dword [esp + 0x10]
jmp 0x521657
mov eax, dword [ebp + 0x59]
mov edx, dword [ebp + 0xc]
push eax
mov dword [esp + 0x50], edx
call sub.MSVCR90.dll_ftell
add esp, 4
mov dword [ebp + 0xc], eax
jmp 0x521657
mov eax, dword [ebp + 0x2f]
lea edx, [esp + 0x266c]
sub edx, eax
nop
mov cl, byte [eax]
mov byte [edx + eax], cl
inc eax
test cl, cl
jne 0x521090
jmp 0x521657
lea esi, [esp + 0x24ec]
call fcn.00516940
test eax, eax
je 0x5210ed
mov eax, dword [ebp + 0x2f]
xor esi, esi
lea edx, [eax + 1]
mov cl, byte [eax]
inc eax
test cl, cl
jne 0x5210b7
sub eax, edx
je 0x5210ed
mov edx, dword [ebp + 0x2f]
movsx eax, byte [edx + esi]
push eax
call dword [sym.imp.MSVCR90.dll_toupper]
mov ecx, dword [ebp + 0x2f]
mov byte [esi + ecx], al
mov eax, dword [ebp + 0x2f]
add esp, 4
inc esi
lea edx, [eax + 1]
mov cl, byte [eax]
inc eax
test cl, cl
jne 0x5210e0
sub eax, edx
cmp esi, eax
jb 0x5210c2
mov ecx, dword [ebp + 0x2f]
lea eax, [esp + 0x24ec]
mov dl, byte [eax]
cmp dl, byte [ecx]
jne 0x521117
test dl, dl
je 0x521113
mov dl, byte [eax + 1]
cmp dl, byte [ecx + 1]
jne 0x521117
add eax, 2
add ecx, 2
test dl, dl
jne 0x5210f7
xor eax, eax
jmp 0x52111c
sbb eax, eax
sbb eax, 0xffffffff
test eax, eax
jne 0x521853
mov ecx, str.COLUMN
lea eax, [esp + 0x24ec]
mov dl, byte [eax]
cmp dl, byte [ecx]
jne 0x521150
test dl, dl
je 0x52114c
mov dl, byte [eax + 1]
cmp dl, byte [ecx + 1]
jne 0x521150
add eax, 2
add ecx, 2
test dl, dl
jne 0x521130
xor eax, eax
jmp 0x521155
sbb eax, eax
sbb eax, 0xffffffff
test eax, eax
jne 0x521168
mov edx, dword [ebp + 0x59]
push edx
call sub.MSVCR90.dll_ftell
mov dword [esp + 0x50], eax
jmp 0x521175
mov eax, dword [ebp + 0x59]
push eax
call sub.MSVCR90.dll_ftell
mov dword [esp + 0x54], eax
mov eax, dword [ebp + 0x37]
add esp, 4
cmp eax, 0x3fe
je 0x5212f8
cmp eax, 0x3ff
je 0x5212f8
mov ecx, str.COLUMN
lea eax, [esp + 0x24ec]
lea ecx, [ecx]
mov dl, byte [eax]
cmp dl, byte [ecx]
jne 0x5211c0
test dl, dl
je 0x5211bc
mov dl, byte [eax + 1]
cmp dl, byte [ecx + 1]
jne 0x5211c0
add eax, 2
add ecx, 2
test dl, dl
jne 0x5211a0
xor eax, eax
jmp 0x5211c5
sbb eax, eax
sbb eax, 0xffffffff
test eax, eax
jne 0x521657
mov dword [ebp + 0x37], 0x3f9
cmp dword [esp + 0x5c], eax
je 0x5212dd
mov ecx, dword [esp + 0x5c]
mov edi, dword [esp + 0x3584]
push ecx
mov ecx, dword [esp + 0x48]
call fcn.005168f0
mov esi, eax
add esp, 4
mov dword [esp + 0x20], esi
cmp esi, 0xffffffff
je 0x5212e4
cmp byte [esp + 0x29ec], 0
je 0x521231
mov edx, dword [esp + 0x80]
mov edx, dword [edx + esi*4]
lea ecx, [esp + 0x29ec]
mov al, byte [ecx]
mov byte [edx], al
inc ecx
inc edx
test al, al
jne 0x521220
mov byte [esp + 0x29ec], al
xor ebx, ebx
cmp dword [esp + 0x78], ebx
je 0x52126f
mov edi, dword [esp + 0x9c]
mov eax, dword [esp + 0x74]
mov edx, dword [eax + esi*4]
mov ecx, edi
lea esp, [esp]
mov al, byte [ecx]
mov byte [edx], al
inc ecx
inc edx
test al, al
jne 0x521250
push edi
call dword [sym.imp.MSVCR90.dll_free]
add esp, 4
mov dword [esp + 0x9c], ebx
mov dword [esp + 0x78], ebx
mov esi, dword [esp + 0x60]
cmp esi, ebx
je 0x5212e4
mov ecx, dword [esp + 0x5c]
mov edi, dword [esp + 0x3584]
push ecx
mov ecx, dword [esp + 0x48]
call fcn.005168f0
add esp, 4
cmp eax, ebx
mov dword [esp + 0x20], eax
jl 0x5212bb
mov edx, dword [esp + 0x7c]
mov ecx, dword [esp + 0x94]
push edx
mov edx, dword [esp + 0x28]
push ecx
mov ecx, dword [esp + 0x44]
push edx
push ebp
push eax
call fcn.00516c90
add esp, 0x14
push esi
call dword [sym.imp.MSVCR90.dll_free]
mov eax, dword [ebp + 0x59]
add esp, 4
push eax
mov dword [esp + 0x64], ebx
call sub.MSVCR90.dll_ftell
add esp, 4
mov dword [ebp + 0xc], eax
jmp 0x521657
mov esi, ebp
call fcn.0051ca60
mov eax, dword [ebp + 0x59]
push eax
call sub.MSVCR90.dll_ftell
add esp, 4
mov dword [ebp + 0xc], eax
jmp 0x521657
cmp byte [esp + 0x276c], 0
je 0x52132a
xor eax, eax
jmp 0x521310
mov cl, byte [esp + eax + 0x276c]
mov byte [esp + eax + 0x256c], cl
inc eax
test cl, cl
jne 0x521310
mov byte [esp + 0x276c], cl
cmp byte [esp + 0x296c], 0
je 0x521657
cmp byte [esp + 0x256c], 0
mov ecx, 0x3c
mov word [esp + 0x26ec], cx
jne 0x52135b
mov edx, ecx
mov word [esp + 0x256c], dx
jmp 0x521374
lea edi, [esp + 0x256c]
dec edi
mov al, byte [edi + 1]
inc edi
test al, al
jne 0x521363
mov ax, word [0x5ae404]
mov word [edi], ax
cmp byte [esp + 0x28ec], 0
je 0x52142b
lea eax, [esp + 0x28ec]
mov edx, eax
jmp 0x521390
mov cl, byte [eax]
inc eax
test cl, cl
jne 0x521390
lea edi, [esp + 0x256c]
sub eax, edx
dec edi
mov cl, byte [edi + 1]
inc edi
test cl, cl
jne 0x5213a1
mov ecx, eax
shr ecx, 2
mov esi, edx
rep movsd dword es:[edi], dword [esi]
mov ecx, eax
and ecx, 3
lea eax, [esp + 0x28ec]
rep movsb byte es:[edi], byte [esi]
mov ecx, eax
mov dl, byte [eax]
inc eax
test dl, dl
jne 0x5213c2
lea edi, [esp + 0x26ec]
sub eax, ecx
mov esi, ecx
dec edi
mov cl, byte [edi + 1]
inc edi
test cl, cl
jne 0x5213d5
mov ecx, eax
shr ecx, 2
rep movsd dword es:[edi], dword [esi]
mov ecx, eax
and ecx, 3
rep movsb byte es:[edi], byte [esi]
lea edi, [esp + 0x256c]
mov byte [esp + 0x28ec], 0
dec edi
jmp 0x521400
mov al, byte [edi + 1]
inc edi
test al, al
jne 0x521400
mov cx, word [0x5b0b6c]
mov word [edi], cx
lea edi, [esp + 0x26ec]
dec edi
lea ebx, [ebx]
mov al, byte [edi + 1]
inc edi
test al, al
jne 0x521420
mov word [edi], cx
lea eax, [esp + 0x296c]
mov edx, eax
mov cl, byte [eax]
inc eax
test cl, cl
jne 0x521434
lea edi, [esp + 0x256c]
sub eax, edx
dec edi
mov cl, byte [edi + 1]
inc edi
test cl, cl
jne 0x521445
mov ecx, eax
shr ecx, 2
mov esi, edx
rep movsd dword es:[edi], dword [esi]
mov ecx, eax
and ecx, 3
lea eax, [esp + 0x296c]
rep movsb byte es:[edi], byte [esi]
mov ecx, eax
mov dl, byte [eax]
inc eax
test dl, dl
jne 0x521466
lea edi, [esp + 0x26ec]
sub eax, ecx
mov esi, ecx
dec edi
lea esp, [esp]
mov cl, byte [edi + 1]
inc edi
test cl, cl
jne 0x521480
mov ecx, eax
shr ecx, 2
rep movsd dword es:[edi], dword [esi]
mov ecx, eax
and ecx, 3
rep movsb byte es:[edi], byte [esi]
lea edi, [esp + 0x256c]
mov byte [esp + 0x296c], 0
dec edi
mov al, byte [edi + 1]
inc edi
test al, al
jne 0x5214a6
mov cx, word [0x5ae428]
mov word [edi], cx
lea edi, [esp + 0x26ec]
dec edi
mov al, byte [edi + 1]
inc edi
test al, al
jne 0x5214c0
mov edx, dword [ebp + 0x2f]
mov word [edi], cx
lea ecx, [esp + 0x256c]
mov al, byte [ecx]
mov byte [edx], al
inc ecx
inc edx
test al, al
jne 0x5214d5
jmp 0x521657
mov esi, dword [ebp + 0x2f]
lea edx, [esp + 0x24ec]
mov eax, esi
sub edx, esi
mov cl, byte [eax]
mov byte [edx + eax], cl
inc eax
test cl, cl
jne 0x5214f2
call fcn.00516940
test eax, eax
jne 0x52151a
lea edx, [esp + 0x286c]
mov eax, esi
sub edx, esi
mov cl, byte [eax]
mov byte [edx + eax], cl
inc eax
test cl, cl
jne 0x521510
mov dword [esp + 0x2c], 1
mov ecx, 0x5b0644
lea eax, [esp + 0x24ec]
mov edi, edi
mov dl, byte [eax]
cmp dl, byte [ecx]
jne 0x521550
test dl, dl
je 0x52154c
mov dl, byte [eax + 1]
cmp dl, byte [ecx + 1]
jne 0x521550
add eax, 2
add ecx, 2
test dl, dl
jne 0x521530
xor eax, eax
jmp 0x521555
sbb eax, eax
sbb eax, 0xffffffff
test eax, eax
jne 0x521657
mov ecx, dword [ebp + 0x59]
push ecx
call sub.MSVCR90.dll_ftell
add esp, 4
mov dword [esp + 0x50], eax
jmp 0x521657
mov ecx, str.TABLE
lea eax, [esp + 0x24ec]
mov edi, edi
mov dl, byte [eax]
cmp dl, byte [ecx]
jne 0x5215a0
test dl, dl
je 0x52159c
mov dl, byte [eax + 1]
cmp dl, byte [ecx + 1]
jne 0x5215a0
add eax, 2
add ecx, 2
test dl, dl
jne 0x521580
xor eax, eax
jmp 0x5215a5
sbb eax, eax
sbb eax, 0xffffffff
test eax, eax
jne 0x5215c8
mov edx, dword [ebp + 0x59]
push edx
mov dword [ebp + 0x37], 0x3fa
call sub.MSVCR90.dll_ftell
add esp, 4
mov dword [ebp + 0xc], eax
mov dword [esp + 0x4c], eax
jmp 0x521657
mov ecx, 0x5b0644
lea eax, [esp + 0x24ec]
mov dl, byte [eax]
cmp dl, byte [ecx]
jne 0x5215f4
test dl, dl
je 0x5215f0
mov dl, byte [eax + 1]
cmp dl, byte [ecx + 1]
jne 0x5215f4
add eax, 2
add ecx, 2
test dl, dl
jne 0x5215d4
xor eax, eax
jmp 0x5215f9
sbb eax, eax
sbb eax, 0xffffffff
test eax, eax
jne 0x521616
mov eax, dword [ebp + 0x59]
push eax
mov dword [ebp + 0x37], 0x3fb
call sub.MSVCR90.dll_ftell
add esp, 4
mov dword [esp + 0x50], eax
jmp 0x521657
mov ecx, str.TABLE
lea eax, [esp + 0x24ec]
mov dl, byte [eax]
cmp dl, byte [ecx]
jne 0x521642
test dl, dl
je 0x52163e
mov dl, byte [eax + 1]
cmp dl, byte [ecx + 1]
jne 0x521642
add eax, 2
add ecx, 2
test dl, dl
jne 0x521622
xor eax, eax
jmp 0x521647
sbb eax, eax
sbb eax, 0xffffffff
test eax, eax
jne 0x521657
cmp byte [ebx], al
jne 0x521657
mov cl, byte [ebp + 0x11]
mov byte [ebx], cl
mov byte [ebx + 1], al
cmp dword [ebp + 0x37], 0x3e9
je 0x52185d
mov ebx, dword [esp + 0x84]
jmp 0x51f506
mov esi, eax
cmp eax, 0x5603
jne 0x520bbd
mov edx, dword [esp + 0x10]
mov eax, dword [edx + 0x59]
push eax
call sub.MSVCR90.dll_ftell
add esp, 4
mov dword [esp + 0x50], eax
jmp 0x520bbd
mov ecx, dword [ebp + 0x4c]
mov dword [ebp + 0x50], ecx
mov esi, 0x411
jmp 0x520bbd
mov eax, dword [ebp + 0x2f]
lea edx, [esp + 0x2a6c]
mov esi, 0x419
sub edx, eax
mov cl, byte [eax]
mov byte [edx + eax], cl
inc eax
test cl, cl
jne 0x5216b7
jmp 0x520bbd
mov esi, 8
mov dword [ebp + 0x50], esi
jmp 0x520bbd
mov edx, dword [esp + 0x10]
mov esi, 0x4c34
mov dword [edx + 0x50], esi
jmp 0x520bbd
mov esi, 0x4c2d
mov eax, dword [esp + 0x10]
mov dword [eax + 0x50], esi
jmp 0x520bbd
mov esi, 0x4c34
mov ecx, dword [esp + 0x10]
mov dword [ecx + 0x50], esi
jmp 0x520bbd
mov edx, dword [esp + 0x10]
mov esi, 0x4c2d
mov dword [edx + 0x50], esi
jmp 0x520bbd
mov eax, dword [esp + 0x10]
mov esi, 0x4c34
mov dword [eax + 0x50], esi
jmp 0x520bbd
mov ecx, dword [esp + 0x10]
mov esi, 0x4c2d
mov dword [ecx + 0x50], esi
jmp 0x520bbd
mov dword [esi + 0x50], 0x520c
jmp 0x521749
mov dword [esi + 0x50], 0x520d
mov ecx, dword [esp + 0x18]
mov esi, dword [esi + 0x50]
push ecx
push 0x7e6
push esi
mov dword [esp + 0x40], esi
call fcn.00406f10
add esp, 0xc
jmp 0x521b58
mov esi, 0x414
jmp 0x520bbd
mov esi, 0x4c34
mov dword [ebx + 0x50], esi
jmp 0x520bbd
mov eax, dword [esp + 0x10]
mov esi, 0x4c2e
mov dword [eax + 0x50], esi
jmp 0x520bbd
mov eax, dword [esp + 0x30]
mov dword [ebp + 0x50], esi
test eax, eax
je 0x5217ad
push eax
call dword [sym.imp.MSVCR90.dll_free]
add esp, 4
mov dword [esp + 0x30], 0
mov ecx, dword [esp + 0x10]
mov eax, dword [ecx + 0x50]
cmp eax, dword [ecx + 0x17]
je 0x520bb6
push 0x7e6
push eax
call fcn.00406f10
add esp, 8
jmp 0x520bb6
mov esi, 0x415
jmp 0x520bbd
mov edx, dword [esp + 0x10]
mov dword [edx + 0x50], 6
jmp 0x521b2d
mov eax, dword [esp + 0x10]
mov esi, 0x4c31
mov dword [eax + 0x50], esi
jmp 0x520bbd
mov ecx, dword [esp + 0x10]
mov dword [ecx + 0x50], 2
jmp 0x521b2d
push esi
call dword [sym.imp.MSVCR90.dll_feof]
mov edx, dword [esp + 0x14]
add esp, 4
neg eax
sbb eax, eax
add eax, 0x4c3f
mov dword [edx + 0x50], eax
jmp 0x5217ad
mov dword [esi + 0x50], 0x4c41
jmp 0x5217ad
mov edx, dword [esp + 0x10]
mov dword [edx + 0x50], 0x4c42
jmp 0x5217ad
mov eax, dword [esp + 0x10]
mov dword [eax + 0x50], 6
jmp 0x5217ad
mov esi, 0x416
jmp 0x520bbd
mov eax, dword [esp + 0xa0]
mov edx, 1
sub edx, dword [eax]
xor ebx, ebx
cmp dword [esp + 0x3584], ebx
mov dword [eax], edx
jle 0x521a86
mov eax, dword [esp + 0x3c]
mov ecx, dword [esp + 0x3588]
mov dword [esp + 0x2c], eax
mov eax, dword [esp + 0x94]
lea edx, [esp + 0xd4]
sub eax, edx
mov dword [esp + 0x84], eax
mov eax, dword [esp + 0x98]
xor ebp, ebp
sub eax, ecx
mov dword [esp + 0x28], ecx
mov dword [esp + 0x7c], eax
jmp 0x5218c0
cmp dword [esp + ebx*4 + 0xd4], 0
jne 0x521a61
mov eax, dword [esp + 0x84]
lea esi, [eax + ebx*4]
mov eax, dword [esp + esi + 0xd4]
lea esi, [esp + esi + 0xd4]
test eax, eax
je 0x521945
mov ecx, dword [esp + 0x2c]
mov dword [esp + ebx*4 + 0xd4], eax
movzx eax, word [ecx]
cmp ax, 4
je 0x521920
cmp ax, 0x1d
je 0x521920
cmp ax, 0xc
je 0x521920
cmp ax, 0xe
je 0x521920
cmp ax, 0x1e
je 0x521920
cmp ax, 0x1c
jne 0x521a4a
push 0x7f
call dword [sym.imp.MSVCR90.dll_malloc]
mov ecx, dword [esi]
add esp, 4
mov dword [esp + ebx*4 + 0xd4], eax
mov edx, eax
mov al, byte [ecx]
mov byte [edx], al
inc ecx
inc edx
test al, al
jne 0x521936
jmp 0x521a4a
mov edx, dword [esp + 0x7c]
mov eax, dword [esp + 0x28]
cmp byte [edx + eax], 1
mov esi, dword [esp + 0x70]
jne 0x521993
mov eax, dword [esp + 0xa4]
cmp byte [eax], 0
je 0x521968
mov byte [eax], 0
jmp 0x521993
mov ecx, dword [esp + 0x98]
mov edx, dword [esp + 0x8c]
mov edi, dword [esp + 0x10]
push ecx
push 0
push esi
push edx
push edi
call fcn.00516800
add esp, 0x14
mov dword [edi + 0x50], eax
test eax, eax
jne 0x520bb6
movzx eax, word [esi + ebx*2]
cmp ax, word [esi + ebx*2 + 2]
jne 0x5219a2
xor eax, eax
jmp 0x5219a5
cwde
add eax, esi
mov dword [esp + ebx*4 + 0xd4], eax
test eax, eax
je 0x521a4a
mov eax, dword [esp + 0x2c]
movzx eax, word [eax]
cmp ax, 4
je 0x5219e3
cmp ax, 0x1d
je 0x5219e3
cmp ax, 0xc
je 0x5219e3
cmp ax, 0xe
je 0x5219e3
cmp ax, 0x1e
je 0x5219e3
cmp ax, 0x1c
jne 0x521a4a
push 0x7f
call dword [sym.imp.MSVCR90.dll_malloc]
mov ecx, dword [esp + 0x48]
mov edx, dword [ecx + 0x1a3]
mov edi, eax
mov dword [esp + ebx*4 + 0xd8], edi
mov ecx, dword [edx + ebp + 0x15]
lea esi, [esp + 0x2770]
add esp, 4
mov edx, ecx
sub esi, ecx
mov al, byte [edx]
mov byte [edx + esi], al
inc edx
test al, al
jne 0x521a10
lea edx, [ecx + 1]
lea ecx, [ecx]
mov al, byte [ecx]
inc ecx
test al, al
jne 0x521a20
sub ecx, edx
mov byte [esp + ecx + 0x276b], al
lea ecx, [esp + 0x276d]
mov edx, edi
lea esp, [esp]
mov al, byte [ecx]
mov byte [edx], al
inc ecx
inc edx
test al, al
jne 0x521a40
cmp dword [esp + ebx*4 + 0xd4], 0
jne 0x521a61
mov eax, dword [esp + 0x28]
cmp byte [eax], 0
je 0x521ada
add dword [esp + 0x2c], 6
inc dword [esp + 0x28]
inc ebx
add ebp, 0x2a
cmp ebx, dword [esp + 0x3584]
jl 0x5218c0
mov ebp, dword [esp + 0x10]
mov eax, dword [esp + 0xa0]
mov edx, dword [eax]
mov ecx, dword [esp + 0x3c]
imul edx, edx, 0x7fa0
lea eax, [edx + eax + 4]
push eax
mov eax, dword [esp + 0x3588]
push ecx
lea edx, [esp + 0xdc]
push edx
push eax
call fcn.005789e0
add esp, 0x10
mov dword [ebp + 0x50], eax
test eax, eax
je 0x521c07
mov ecx, dword [esp + 0x10]
mov edx, dword [ecx + 0x50]
push 0x7e6
push 0
mov dword [esp + 0x3c], edx
call fcn.00406f10
add esp, 8
jmp 0x521b58
mov edi, dword [esp + 0x10]
imul ebx, ebx, 0x2a
mov ecx, dword [esp + 0x44]
mov dword [edi + 0x50], 0x4c33
mov edx, dword [ecx + 0x1a3]
mov ecx, dword [ebx + edx]
mov esi, 0x417
lea edx, [esp + 0x2a6c]
mov al, byte [ecx]
mov byte [edx], al
inc ecx
inc edx
test al, al
jne 0x521b01
mov eax, dword [esp + 0x90]
mov dword [edi + 4], eax
jmp 0x520bbd
push esi
mov esi, edi
call fcn.0051dc50
add esp, 4
test eax, eax
je 0x521bed
mov ecx, dword [esp + 0x10]
mov eax, dword [ecx + 0x50]
push 0x7e6
push eax
mov dword [esp + 0x3c], eax
call fcn.00406f10
add esp, 8
mov eax, dword [esp + 0x30]
test eax, eax
je 0x521b58
push eax
call dword [sym.imp.MSVCR90.dll_free]
add esp, 4
mov ebp, dword [sym.imp.MSVCR90.dll_free]
xor esi, esi
cmp dword [esp + 0x3584], esi
jle 0x521bb4
mov edi, dword [esp + 0x3c]
mov ebx, dword [esp + 0x3584]
movzx eax, word [edi]
cmp ax, 4
je 0x521b9b
cmp ax, 0x1d
je 0x521b9b
cmp ax, 0xc
je 0x521b9b
cmp ax, 0xe
je 0x521b9b
cmp ax, 0x1e
je 0x521b9b
cmp ax, 0x1c
jne 0x521bac
mov eax, dword [esp + esi*4 + 0xd4]
test eax, eax
je 0x521bac
push eax
call ebp
add esp, 4
inc esi
add edi, 6
cmp esi, ebx
jl 0x521b74
mov eax, dword [esp + 0x5c]
test eax, eax
je 0x521bc2
push eax
call ebp
add esp, 4
mov eax, dword [esp + 0x60]
test eax, eax
je 0x521bd0
push eax
call ebp
add esp, 4
mov ecx, dword [esp + 0x3574]
mov eax, dword [esp + 0x34]
pop edi
pop esi
pop ebp
pop ebx
xor ecx, esp
call fcn.00586584
add esp, 0x3568
ret
mov dword [esp + 0x34], 0
jmp 0x521b46
mov dword [esp + 0x34], 5
jmp 0x521b46
mov eax, dword [esp + 0xa8]
mov ecx, dword [esp + 0x10]
mov byte [eax], 1
mov dword [ecx + 0x50], 0
jmp 0x521b58