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

Disassembly:
push ebp
push edi
push esi
push ebx
sub esp, 0xbc
test eax, eax
mov dword [esp + 0x18], eax
mov dword [esp + 0x44], ecx
mov dword [esp + 0x8c], 0
mov dword [esp + 0x90], 0
mov dword [esp + 0x94], 0
mov dword [esp + 0x98], 0
je 0x47d833
mov eax, dword [eax]
test eax, eax
je 0x47d833
test edx, edx
mov esi, edx
je 0x47d833
mov dword [esp + 0xa0], 0
call sub.msvcrt.dll_localeconv
mov eax, dword [eax]
mov dword [esp + 0x50], eax
call sub.msvcrt.dll_localeconv
mov eax, dword [eax + 4]
test eax, eax
mov dword [esp + 0x2c], eax
mov edi, eax
je 0x47b9d1
cmp byte [eax], 0
mov eax, 0
cmovne eax, edi
mov dword [esp + 0x2c], eax
mov eax, dword [esp + 0x44]
xor edi, edi
mov dword [esp + 0x30], 0
mov dword [esp + 0x20], 0
mov dword [esp + 0x3c], 0
mov ebp, edi
mov dword [esp + 0x4c], 0
mov dword [esp + 0x24], 0
mov dword [esp + 0x48], eax
mov dword [esp + 0x58], 0
mov dword [esp + 0x40], 0
movzx eax, byte [esi]
test al, al
je 0x47cb7f
js 0x47bd50
cmp al, 0x25
lea ebx, [esi + 1]
je 0x47ba50
movzx esi, al
mov dword [esp], esi
call sub.msvcrt.dll_isspace
test eax, eax
je 0x47bb61
mov dword [esp + 0x20], 1
mov esi, ebx
jmp 0x47ba15
movzx edx, byte [esi + 1]
mov dword [esp + 0x38], 0
mov eax, edx
sub edx, 0x30
cmp edx, 9
jbe 0x47bc20
xor edx, edx
mov ecx, dword [esp + 0x2c]
jmp 0x47ba8c
cmp al, 0x27
je 0x47baa0
cmp al, 0x49
jne 0x47bad4
movzx eax, byte [ebx + 1]
cmp al, 0x36
je 0x47bab0
cmp al, 0x33
je 0x47bac2
or edx, 4
add ebx, 1
cmp al, 0x2a
jne 0x47ba72
or dl, 0x80
movzx eax, byte [ebx + 1]
jmp 0x47ba89
test ecx, ecx
je 0x47baa7
or dh, 1
movzx eax, byte [ebx + 1]
jmp 0x47ba89
cmp byte [ebx + 2], 0x34
jne 0x47ba86
movzx eax, byte [ebx + 3]
or edx, 0xc
add ebx, 2
jmp 0x47ba89
cmp byte [ebx + 2], 0x32
jne 0x47ba86
movzx eax, byte [ebx + 3]
or edx, 4
add ebx, 2
jmp 0x47ba89
mov dword [esp + 0x28], edx
movzx edx, al
xor esi, esi
lea ecx, [edx - 0x30]
cmp ecx, 9
ja 0x47cb75
lea esi, [esi]
lea eax, [esi + esi*4]
add ebx, 1
lea esi, [edx + eax*2 - 0x30]
movzx edx, byte [ebx]
lea ecx, [edx - 0x30]
mov eax, edx
cmp ecx, 9
jbe 0x47baf0
test esi, esi
mov edx, 0xffffffff
cmove esi, edx
cmp al, 0x6a
je 0x47cb5c
jle 0x47bc80
cmp al, 0x71
je 0x47cb43
jg 0x47bdc0
cmp al, 0x6c
je 0x47be0f
cmp al, 0x6d
jne 0x47bdff
movzx eax, byte [ebx + 1]
cmp al, 0x6c
mov byte [esp + 0x34], al
je 0x47d86a
lea eax, [ebx + 1]
or dword [esp + 0x28], 0x400
mov dword [esp + 0x54], eax
jmp 0x47bcc0
lea eax, [esp + 0x90]
mov dword [esp + 0x1c], eax
mov edx, eax
mov eax, dword [esp + 0x18]
call fcn.0047b850
cmp eax, 0xffffffff
mov ebp, eax
je 0x47d89f
mov eax, dword [esp + 0x20]
test eax, eax
je 0x47bc00
mov dword [esp], ebp
call sub.msvcrt.dll_isspace
test eax, eax
je 0x47bc00
mov dword [esp + 0x20], ebx
mov edi, dword [esp + 0x18]
mov ebp, dword [esp + 0x1c]
jmp 0x47bbb0
mov dword [esp], eax
call sub.msvcrt.dll_isspace
test eax, eax
je 0x47bbf2
mov edx, ebp
mov eax, edi
call fcn.0047b850
cmp eax, 0xffffffff
mov ebx, eax
jne 0x47bba4
mov edi, eax
mov eax, dword [esp + 0x3c]
test eax, eax
cmovne edi, eax
lea eax, [esp + 0x98]
mov ecx, dword [esp + 0x24]
lea edx, [esp + 0x8c]
mov dword [esp], eax
mov eax, edi
call fcn.0047b7a0
add esp, 0xbc
pop ebx
pop esi
pop edi
pop ebp
ret
mov ebp, ebx
mov ebx, dword [esp + 0x20]
nop
lea esi, [esi]
cmp esi, ebp
jne 0x47bd00
mov dword [esp + 0x20], 0
mov esi, ebx
jmp 0x47ba15
lea ecx, [esi + 2]
movzx esi, byte [esi + 2]
mov dword [esp + 0x38], edx
mov edx, esi
movzx edx, dl
lea edi, [edx - 0x30]
cmp edi, 9
ja 0x47bc63
mov dword [esp + 0x1c], ebx
mov ebx, dword [esp + 0x38]
mov edi, eax
lea eax, [ebx + ebx*4]
add ecx, 1
lea ebx, [edx + eax*2 - 0x30]
movzx edx, byte [ecx]
lea esi, [edx - 0x30]
cmp esi, 9
jbe 0x47bc42
mov dword [esp + 0x38], ebx
mov ebx, dword [esp + 0x1c]
mov esi, edx
mov eax, edi
mov edx, esi
cmp dl, 0x24
je 0x47cb0d
mov dword [esp + 0x38], 0
jmp 0x47ba6a
cmp al, 0x4c
je 0x47cb43
jle 0x47cb36
cmp al, 0x61
je 0x47bde1
cmp al, 0x68
jne 0x47bdff
movzx eax, byte [ebx + 1]
cmp al, 0x68
mov byte [esp + 0x34], al
je 0x47d886
or dword [esp + 0x28], 2
lea eax, [ebx + 1]
mov dword [esp + 0x54], eax
lea esi, [esi]
cmp byte [esp + 0x34], 0
je case.0x47bcf9.1
mov eax, dword [esp + 0x54]
lea ebx, [eax + 1]
mov eax, dword [esp + 0x20]
test eax, eax
jne 0x47be40
movzx ecx, byte [esp + 0x34]
cmp cl, 0x5b
mov eax, ecx
jne 0x47be30
movzx eax, byte [esp + 0x34]
sub eax, 0x25
cmp al, 0x53
ja case.0x47bcf9.1
movzx eax, al
jmp dword [eax*4 + 0x4d984c]
mov edi, ebp
mov ecx, dword [esp + 0x1c]
mov edx, dword [esp + 0x18]
mov eax, edi
mov dword [esp], 0
call fcn.0047b8e0
jmp case.0x47bcf9.1
fstp st(0)
jmp case.0x47bcf9.1
fstp st(0)
jmp case.0x47bcf9.1
fstp st(0)
lea eax, [esp + 0x98]
mov ecx, dword [esp + 0x24]
lea edx, [esp + 0x8c]
mov dword [esp], eax
mov eax, dword [esp + 0x3c]
call fcn.0047b7a0
add esp, 0xbc
pop ebx
pop esi
pop edi
pop ebp
ret
mov dword [esp], esi
call sub.msvcrt.dll_strlen
lea edx, [esp + 0xa0]
mov dword [esp + 4], eax
mov dword [esp], esi
mov dword [esp + 8], edx
call fcn.0047ee10
test eax, eax
jle 0x47cb19
lea edi, [esi + eax]
mov ebx, esi
lea eax, [esp + 0x90]
mov esi, dword [esp + 0x18]
mov ebp, edi
mov dword [esp + 0x1c], eax
mov edi, eax
mov edx, edi
mov eax, esi
call fcn.0047b850
cmp eax, 0xffffffff
je 0x47cbd2
add ebx, 1
movzx edx, byte [ebx - 1]
cmp eax, edx
jne 0x47cbd2
cmp ebx, ebp
jne 0x47bd8f
mov ebp, eax
mov esi, ebx
jmp 0x47ba15
cmp al, 0x74
je 0x47bdc8
cmp al, 0x7a
jne 0x47bdff
lea eax, [ebx + 1]
or dword [esp + 0x28], 4
mov dword [esp + 0x54], eax
movzx eax, byte [ebx + 1]
mov byte [esp + 0x34], al
jmp 0x47bcc0
movzx eax, byte [ebx + 1]
mov ecx, eax
mov byte [esp + 0x34], al
and eax, 0xfffffff7
cmp al, 0x53
je 0x47cbfb
cmp cl, 0x73
je 0x47cbfb
movzx eax, byte [ebx]
mov dword [esp + 0x54], ebx
mov byte [esp + 0x34], al
jmp 0x47bcc0
movzx eax, byte [ebx + 1]
cmp al, 0x6c
mov byte [esp + 0x34], al
je 0x47d851
lea eax, [ebx + 1]
or dword [esp + 0x28], 4
mov dword [esp + 0x54], eax
jmp 0x47bcc0
and eax, 0xffffffdf
cmp al, 0x43
je 0x47bebb
cmp cl, 0x6e
je 0x47bebb
call sub.msvcrt.dll__errno
mov edi, dword [eax]
call sub.msvcrt.dll__errno
mov dword [eax], 0
lea eax, [esp + 0x90]
cmp ebp, 0xffffffff
mov dword [esp + 0x1c], eax
je 0x47cae4
mov dword [esp + 0x20], ebx
mov ebx, dword [esp + 0x18]
mov ebp, eax
mov dword [esp + 0x5c], esi
mov edx, ebp
mov eax, ebx
call fcn.0047b850
cmp eax, 0xffffffff
mov esi, eax
je 0x47cb03
mov dword [esp], eax
call sub.msvcrt.dll_isspace
test eax, eax
jne 0x47be74
mov ebp, esi
mov ebx, dword [esp + 0x20]
mov esi, dword [esp + 0x5c]
call sub.msvcrt.dll__errno
mov ecx, dword [esp + 0x1c]
mov edx, dword [esp + 0x18]
mov dword [eax], edi
mov dword [esp], 0
mov eax, ebp
call fcn.0047b8e0
movzx eax, byte [esp + 0x34]
cmp al, 0x63
je 0x47c073
cmp al, 0x73
jne 0x47bcea
test byte [esp + 0x28], 4
jne case.0x47bcf9.46
mov edi, dword [esp + 0x28]
mov eax, edi
and eax, 0x80
mov dword [esp + 0x20], eax
jne 0x47bf7c
mov eax, edi
test ah, 6
je 0x47ccd8
mov ecx, dword [esp + 0x38]
test ecx, ecx
je 0x47dcff
mov edi, dword [esp + 0x44]
cmp ecx, 1
lea eax, [edi + ecx*4 - 4]
cmove eax, edi
mov eax, dword [eax]
mov dword [esp + 0x24], eax
mov eax, dword [esp + 0x24]
test eax, eax
je 0x47e612
mov dword [esp], 0x64
call sub.msvcrt.dll_malloc
mov edi, eax
mov eax, dword [esp + 0x24]
test edi, edi
mov dword [eax], edi
je 0x47e5f9
mov eax, dword [esp + 0x8c]
test eax, eax
je 0x47bf55
mov edx, dword [eax]
cmp edx, 0x1f
jbe 0x47bf5c
call fcn.0047b830
mov edx, dword [eax]
lea ecx, [edx + 1]
mov dword [esp + 0x8c], eax
mov dword [esp + 0x58], edi
mov dword [esp + 0x40], 0x64
mov dword [eax], ecx
mov ecx, dword [esp + 0x24]
mov dword [eax + edx*4 + 8], ecx
lea eax, [esp + 0x90]
mov dword [esp + 0x1c], eax
mov edx, eax
mov eax, dword [esp + 0x18]
call fcn.0047b850
cmp eax, 0xffffffff
mov ebp, eax
je 0x47d89f
mov eax, dword [esp + 0x28]
mov dword [esp + 0x38], ebx
mov ebx, ebp
mov edi, dword [esp + 0x58]
mov ebp, dword [esp + 0x20]
and eax, 0x600
mov dword [esp + 0x34], eax
jmp 0x47bffc
mov eax, dword [esp + 0x24]
mov edi, dword [esp + 0x40]
mov eax, dword [eax]
lea ecx, [eax + edi]
mov edi, edx
cmp edx, ecx
je 0x47d531
test esi, esi
jle 0x47bfe4
sub esi, 1
je 0x47d399
mov edx, dword [esp + 0x1c]
mov eax, dword [esp + 0x18]
call fcn.0047b850
cmp eax, 0xffffffff
mov ebx, eax
je 0x47d399
mov dword [esp], ebx
call sub.msvcrt.dll_isspace
test eax, eax
jne 0x47d8a6
test ebp, ebp
jne 0x47bfd7
mov eax, dword [esp + 0x34]
lea edx, [edi + 1]
mov byte [edi], bl
test eax, eax
jne 0x47bfc0
mov edi, edx
jmp 0x47bfd7
mov ecx, dword [esp + 0x28]
mov eax, ecx
and eax, 0x80
mov dword [esp + 0x20], eax
jne 0x47bc08
mov eax, ecx
test al, 8
je 0x47daa0
mov ecx, dword [esp + 0x38]
test ecx, ecx
je 0x47dd99
mov edi, dword [esp + 0x44]
cmp ecx, 1
lea eax, [edi + ecx*4 - 4]
cmove eax, edi
mov eax, dword [eax]
mov ecx, dword [esp + 0x90]
mov dword [eax + 4], 0
mov esi, ebx
mov dword [eax], ecx
jmp 0x47ba15
test byte [esp + 0x28], 4
jne case.0x47bcf9.30
mov edi, dword [esp + 0x28]
cmp esi, 0xffffffff
mov eax, 1
cmove esi, eax
mov eax, edi
and eax, 0x80
mov dword [esp + 0x20], eax
jne 0x47d9d2
mov eax, edi
and eax, 0x600
mov dword [esp + 0x34], eax
jne 0x47cd72
mov edi, dword [esp + 0x38]
test edi, edi
je 0x47dd57
mov ecx, dword [esp + 0x44]
cmp edi, 1
lea eax, [ecx + edi*4 - 4]
cmove eax, ecx
mov eax, dword [eax]
mov dword [esp + 0x58], eax
mov eax, dword [esp + 0x58]
test eax, eax
je case.0x47bcf9.1
lea eax, [esp + 0x90]
mov dword [esp + 0x1c], eax
mov edx, eax
mov eax, dword [esp + 0x18]
call fcn.0047b850
cmp eax, 0xffffffff
mov ebp, eax
je 0x47e507
mov dword [esp + 0x38], ebx
mov edi, dword [esp + 0x58]
jmp 0x47c153
mov eax, dword [esp + 0x24]
mov edx, dword [eax]
mov eax, dword [esp + 0x40]
lea ecx, [edx + eax]
mov ebx, eax
mov eax, edi
cmp edi, ecx
je 0x47d3e0
sub esi, 1
mov ecx, ebp
lea edi, [eax + 1]
test esi, esi
mov byte [eax], cl
jle 0x47d70a
mov edx, dword [esp + 0x1c]
mov eax, dword [esp + 0x18]
call fcn.0047b850
cmp eax, 0xffffffff
mov ebp, eax
je 0x47d70a
mov eax, dword [esp + 0x34]
test eax, eax
jne 0x47c110
mov ebx, dword [esp + 0x40]
mov eax, edi
jmp 0x47c129
mov edi, dword [esp + 0x28]
mov eax, edi
and eax, 4
mov dword [esp + 0x20], eax
jne 0x47cc0f
mov eax, dword [esp + 0x28]
test al, 0x80
jne 0x47c20c
test ah, 6
je 0x47df3c
mov edi, dword [esp + 0x38]
test edi, edi
je 0x47e274
mov ecx, dword [esp + 0x44]
cmp edi, 1
lea eax, [ecx + edi*4 - 4]
cmove eax, ecx
mov eax, dword [eax]
mov dword [esp + 0x24], eax
mov eax, dword [esp + 0x24]
test eax, eax
je 0x47e612
mov dword [esp], 0x64
call sub.msvcrt.dll_malloc
mov edi, eax
mov eax, dword [esp + 0x24]
test edi, edi
mov dword [eax], edi
je 0x47e5f9
mov eax, dword [esp + 0x8c]
test eax, eax
je 0x47c1e5
mov edx, dword [eax]
cmp edx, 0x1f
jbe 0x47c1ec
call fcn.0047b830
mov edx, dword [eax]
lea ecx, [edx + 1]
mov dword [esp + 0x8c], eax
mov dword [esp + 0x58], edi
mov dword [esp + 0x40], 0x64
mov dword [eax], ecx
mov ecx, dword [esp + 0x24]
mov dword [eax + edx*4 + 8], ecx
mov edi, dword [esp + 0x54]
movzx eax, byte [edi + 1]
lea edx, [edi + 2]
cmp al, 0x5e
sete byte [esp + 0x34]
cmp al, 0x5e
mov eax, 0x7fffffff
cmove ebx, edx
test esi, esi
cmovs esi, eax
cmp dword [esp + 0x94], 0xff
jbe 0x47d6cc
mov eax, dword [esp + 0x98]
lea edi, [eax + 4]
mov dword [eax], 0
mov dword [eax + 0xfc], 0
and edi, 0xfffffffc
sub eax, edi
lea ecx, [eax + 0x100]
xor eax, eax
shr ecx, 2
rep stosd dword es:[edi], eax
movzx eax, byte [ebx]
cmp al, 0x5d
je 0x47d6b6
cmp al, 0x2d
jne 0x47c291
jmp 0x47d6b6
mov edx, dword [esp + 0x98]
mov byte [edx + eax], 1
movzx edx, byte [ebx]
movzx eax, dl
add ebx, 1
test al, al
je case.0x47bcf9.1
cmp al, 0x5d
je 0x47d1f1
cmp al, 0x2d
jne 0x47c280
movzx edx, byte [ebx]
test dl, dl
je 0x47c280
cmp dl, 0x5d
je 0x47c280
movzx ecx, byte [ebx - 2]
cmp cl, dl
ja 0x47c280
jae 0x47c28e
nop
mov edx, dword [esp + 0x98]
movzx eax, cl
add ecx, 1
mov byte [edx + eax], 1
cmp byte [ebx], cl
ja 0x47c2c0
jmp 0x47c28b
movzx eax, byte [esp + 0x34]
sub eax, 0x58
cmp al, 0x20
ja case.0x47c2ea.1
movzx eax, al
jmp dword [eax*4 + 0x4d999c]
mov ecx, dword [esp + 0x28]
mov eax, ecx
and eax, 0x80
mov dword [esp + 0x20], eax
jne 0x47c390
test ch, 6
je 0x47cd41
mov ecx, dword [esp + 0x38]
test ecx, ecx
je 0x47dd6d
mov edi, dword [esp + 0x44]
cmp ecx, 1
lea eax, [edi + ecx*4 - 4]
cmove eax, edi
mov eax, dword [eax]
mov dword [esp + 0x24], eax
mov edi, dword [esp + 0x24]
test edi, edi
je 0x47e612
mov dword [esp], 0xc8
call sub.msvcrt.dll_malloc
mov edi, eax
mov eax, dword [esp + 0x24]
test edi, edi
mov dword [eax], edi
je 0x47e5f9
mov eax, dword [esp + 0x8c]
test eax, eax
je 0x47c369
mov edx, dword [eax]
cmp edx, 0x1f
jbe 0x47c370
call fcn.0047b830
mov edx, dword [eax]
lea ecx, [edx + 1]
mov dword [esp + 0x8c], eax
mov dword [esp + 0x4c], edi
mov dword [esp + 0x40], 0x64
mov dword [eax], ecx
mov ecx, dword [esp + 0x24]
mov dword [eax + edx*4 + 8], ecx
lea eax, [esp + 0x90]
mov dword [esp + 0x1c], eax
mov edx, eax
mov eax, dword [esp + 0x18]
call fcn.0047b850
cmp eax, 0xffffffff
mov ebp, eax
je 0x47d89f
mov dword [esp + 0x38], esi
mov edi, dword [esp + 0x18]
mov esi, dword [esp + 0x1c]
mov dword [esp + 0xa4], 0
mov dword [esp + 0x34], ebx
mov dword [esp], ebp
call sub.msvcrt.dll_isspace
test eax, eax
jne 0x47e5a6
mov edx, dword [esp + 0x20]
mov ecx, ebp
mov byte [esp + 0xab], cl
test edx, edx
cmove eax, dword [esp + 0x4c]
mov ebx, eax
mov eax, ebp
mov ebp, ebx
mov ebx, eax
jmp 0x47c407
mov byte [esp + 0xab], al
lea eax, [esp + 0xa4]
mov dword [esp + 8], 1
mov dword [esp], ebp
mov dword [esp + 0xc], eax
lea eax, [esp + 0xab]
mov dword [esp + 4], eax
call fcn.0047ec90
cmp eax, 0xfffffffe
jne 0x47d767
mov edx, esi
mov eax, edi
call fcn.0047b850
cmp eax, 0xffffffff
mov ebx, eax
jne 0x47c400
call sub.msvcrt.dll__errno
mov dword [eax], 0x2a
jmp case.0x47bcf9.1
lea eax, [esp + 0x90]
mov dword [esp + 0x1c], eax
mov edx, eax
mov eax, dword [esp + 0x18]
call fcn.0047b850
cmp eax, 0xffffffff
mov ebp, eax
je 0x47d89f
cmp eax, 0x25
je 0x47bc08
mov ecx, dword [esp + 0x1c]
mov edx, dword [esp + 0x18]
mov dword [esp], 1
call fcn.0047b8e0
jmp case.0x47bcf9.1
mov ecx, dword [esp + 0x28]
cmp esi, 0xffffffff
mov eax, 1
cmove esi, eax
mov eax, ecx
and eax, 0x80
mov dword [esp + 0x20], eax
jne 0x47c552
test ch, 6
je 0x47cd10
mov ecx, dword [esp + 0x38]
test ecx, ecx
je 0x47dd41
mov edi, dword [esp + 0x44]
cmp ecx, 1
lea eax, [edi + ecx*4 - 4]
cmove eax, edi
mov eax, dword [eax]
mov dword [esp + 0x24], eax
mov ebp, dword [esp + 0x24]
test ebp, ebp
je 0x47e612
cmp esi, 0x400
mov eax, 0x400
cmovle eax, esi
mov dword [esp + 0x40], eax
add eax, eax
mov dword [esp], eax
call sub.msvcrt.dll_malloc
mov edi, eax
mov eax, dword [esp + 0x24]
test edi, edi
mov dword [eax], edi
je 0x47e5f9
mov eax, dword [esp + 0x8c]
test eax, eax
je 0x47c533
mov edx, dword [eax]
cmp edx, 0x1f
jbe 0x47c53a
call fcn.0047b830
mov edx, dword [eax]
lea ecx, [edx + 1]
mov dword [esp + 0x8c], eax
mov dword [esp + 0x4c], edi
mov dword [eax], ecx
mov ecx, dword [esp + 0x24]
mov dword [eax + edx*4 + 8], ecx
lea eax, [esp + 0x90]
mov dword [esp + 0x1c], eax
mov edx, eax
mov eax, dword [esp + 0x18]
call fcn.0047b850
cmp eax, 0xffffffff
mov ebp, eax
je 0x47d89f
mov eax, dword [esp + 0x28]
mov edi, ebp
mov ebp, dword [esp + 0x1c]
mov dword [esp + 0xa4], 0
mov dword [esp + 0x38], ebx
mov dword [esp + 0x28], esi
and eax, 0x600
mov dword [esp + 0x34], eax
mov ecx, dword [esp + 0x20]
mov eax, edi
mov byte [esp + 0xab], al
test ecx, ecx
jne 0x47c616
mov edx, dword [esp + 0x34]
test edx, edx
je 0x47c616
mov eax, dword [esp + 0x24]
mov ecx, dword [eax]
mov eax, dword [esp + 0x40]
add eax, eax
mov dword [esp + 0x1c], eax
add eax, ecx
cmp dword [esp + 0x4c], eax
jne 0x47c616
mov esi, dword [esp + 0x28]
mov eax, dword [esp + 0x40]
lea ebx, [esi - 1]
cmp eax, esi
lea esi, [eax + 1]
cmovle ebx, eax
add ebx, eax
jmp 0x47c5f1
cmp ebx, esi
jbe 0x47d8cb
mov eax, dword [esp + 0x24]
mov ebx, esi
mov ecx, dword [eax]
lea eax, [ebx + ebx]
mov dword [esp], ecx
mov dword [esp + 4], eax
call sub.msvcrt.dll_realloc
test eax, eax
je 0x47c5e1
mov ecx, dword [esp + 0x24]
mov dword [esp + 0x40], ebx
mov dword [ecx], eax
add eax, dword [esp + 0x1c]
mov dword [esp + 0x4c], eax
mov eax, dword [esp + 0x20]
mov ebx, 0
lea esi, [esp + 0xab]
test eax, eax
cmove ebx, dword [esp + 0x4c]
jmp 0x47c637
mov byte [esp + 0xab], al
lea eax, [esp + 0xa4]
mov dword [esp + 8], 1
mov dword [esp + 4], esi
mov dword [esp], ebx
mov dword [esp + 0xc], eax
call fcn.0047ec90
cmp eax, 0xfffffffe
jne 0x47d58c
mov eax, dword [esp + 0x18]
mov edx, ebp
call fcn.0047b850
cmp eax, 0xffffffff
mov edi, eax
jne 0x47c630
jmp 0x47c446
xor eax, eax
test esi, esi
setg al
sub esi, eax
lea eax, [esp + 0x90]
mov dword [esp + 0x1c], eax
mov edx, eax
mov eax, dword [esp + 0x18]
call fcn.0047b850
cmp eax, 0xffffffff
mov dword [esp + 0x68], eax
je 0x47e541
mov eax, dword [esp + 0x68]
sub eax, 0x2b
and eax, 0xfffffffd
je 0x47cca8
mov ebp, dword [esp + 0x68]
mov dword [esp], ebp
call sub.msvcrt.dll_tolower
cmp eax, 0x6e
je 0x47e036
cmp eax, 0x69
je 0x47df70
test esi, esi
mov byte [esp + 0x60], 0x65
mov dword [esp + 0x20], 0
je 0x47c6ea
cmp ebp, 0x30
je 0x47e20f
mov eax, dword [esp + 0x28]
mov dword [esp + 0x70], ebx
mov byte [esp + 0x5c], 0
mov ebx, dword [esp + 0x20]
mov byte [esp + 0x54], 0
mov dword [esp + 0x20], esi
and eax, 0x100
mov dword [esp + 0x6c], eax
lea eax, [ebp - 0x30]
cmp eax, 9
jbe 0x47c8f9
lea esi, [esi]
cmp byte [esp + 0x5c], 0
je 0x47d064
mov ecx, dword [esp + 0x98]
movzx eax, byte [esp + 0x60]
cmp al, byte [ecx + ebx - 1]
je 0x47d1e0
mov edi, dword [esp + 0x20]
mov eax, 0x7fffffff
test edi, edi
cmovg eax, edi
cmp byte [esp + 0x54], 0
mov dword [esp + 0x34], eax
jne 0x47d0d0
mov ecx, dword [esp + 0x50]
movzx edx, byte [ecx]
cmp ebp, edx
mov eax, edx
jne 0x47e19d
cmp byte [ecx + 1], 0
lea edi, [ecx + 1]
je 0x47d0fe
mov dword [esp + 0x64], ebx
mov ebp, dword [esp + 0x34]
mov esi, dword [esp + 0x18]
mov ebx, dword [esp + 0x1c]
jmp 0x47c7b2
movzx ecx, byte [edi]
sub ebp, 1
cmp ecx, eax
jne 0x47d379
add edi, 1
cmp byte [edi], 0
je 0x47d0ed
test ebp, ebp
je 0x47d38a
mov edx, ebx
mov eax, esi
call fcn.0047b850
cmp eax, 0xffffffff
jne 0x47c790
mov dword [esp + 0x34], ebp
mov ebp, eax
movzx eax, byte [edi]
mov ebx, dword [esp + 0x64]
test al, al
je 0x47d8e8
mov edx, dword [esp + 0x6c]
test edx, edx
je 0x47d0d9
mov ecx, dword [esp + 0x50]
sub edi, ecx
test edi, edi
jle 0x47e43b
mov esi, dword [esp + 0x2c]
movzx eax, byte [esi]
cmp byte [ecx], al
jne 0x47e432
mov dword [esp + 0x64], ebx
mov eax, esi
mov ebx, ecx
mov ecx, esi
jmp 0x47c81c
movzx edx, byte [ebx + edx]
cmp byte [eax], dl
jne 0x47d848
add eax, 1
mov edx, eax
sub edx, ecx
cmp edx, edi
jl 0x47c810
mov ebx, dword [esp + 0x64]
cmp edx, edi
jne 0x47d0dd
movzx ecx, byte [eax]
cmp ecx, ebp
mov edx, ecx
jne 0x47c8a2
cmp byte [eax + 1], 0
lea edi, [eax + 1]
je 0x47c8aa
mov eax, dword [esp + 0x34]
test eax, eax
je 0x47ddab
mov dword [esp + 0x64], ebx
mov esi, dword [esp + 0x18]
mov ebx, dword [esp + 0x34]
mov ebp, dword [esp + 0x1c]
jmp 0x47c887
movzx ecx, byte [edi]
sub ebx, 1
cmp ecx, eax
mov edx, ecx
jne 0x47e142
add edi, 1
cmp byte [edi], 0
je 0x47e265
test ebx, ebx
je 0x47e51c
mov edx, ebp
mov eax, esi
call fcn.0047b850
cmp eax, 0xffffffff
jne 0x47c863
movzx edx, byte [edi]
mov dword [esp + 0x34], ebx
mov ebp, eax
mov ebx, dword [esp + 0x64]
test dl, dl
jne 0x47ddab
mov eax, dword [esp + 0x20]
mov edi, dword [esp + 0x34]
test eax, eax
cmovle edi, eax
mov dword [esp + 0x20], edi
mov edi, dword [esp + 0x20]
test edi, edi
je 0x47d43f
mov edx, dword [esp + 0x1c]
mov eax, dword [esp + 0x18]
call fcn.0047b850
cmp eax, 0xffffffff
mov ebp, eax
je 0x47d43f
test edi, edi
setg al
movzx eax, al
sub edi, eax
lea eax, [ebp - 0x30]
mov dword [esp + 0x20], edi
cmp eax, 9
ja 0x47c720
mov ecx, dword [esp + 0x98]
lea edx, [esp + 0x94]
mov eax, ebx
call fcn.0047b730
mov ecx, ebp
mov dword [esp + 0x98], eax
mov byte [eax + ebx], cl
add ebx, 1
jmp 0x47c8bb
mov dword [esp + 0x30], 0xa
lea eax, [esp + 0x90]
mov dword [esp + 0x1c], eax
mov edx, eax
mov eax, dword [esp + 0x18]
call fcn.0047b850
cmp eax, 0xffffffff
mov ebp, eax
je 0x47d89f
lea eax, [eax - 0x2b]
xor edi, edi
and eax, 0xfffffffd
je 0x47d98e
test esi, esi
setne al
cmp ebp, 0x30
jne 0x47cdfe
test al, al
je 0x47cdfe
test esi, esi
jle 0x47da29
lea eax, [esp + 0x94]
mov ecx, dword [esp + 0x98]
sub esi, 1
mov edx, eax
mov eax, edi
call fcn.0047b730
mov edx, dword [esp + 0x1c]
mov dword [esp + 0x98], eax
lea ecx, [edi + 1]
mov byte [eax + edi], 0x30
mov eax, dword [esp + 0x18]
mov dword [esp + 0x20], ecx
call fcn.0047b850
test esi, esi
mov ebp, eax
jne 0x47da61
mov ecx, dword [esp + 0x30]
mov eax, 8
mov edi, eax
test ecx, ecx
cmovne edi, ecx
mov dword [esp + 0x30], edi
cmp dword [esp + 0x20], 1
jne 0x47c9e7
mov eax, dword [esp + 0x98]
movzx eax, byte [eax]
sub eax, 0x2b
test al, 0xfd
je 0x47bd00
mov ecx, dword [esp + 0x1c]
mov edx, dword [esp + 0x18]
mov eax, ebp
mov dword [esp], 0
call fcn.0047b8e0
lea eax, [esp + 0x94]
mov dword [esp + 0x34], eax
mov edi, dword [esp + 0x20]
mov ecx, dword [esp + 0x98]
mov edx, dword [esp + 0x34]
mov eax, edi
call fcn.0047b730
mov dword [esp + 0x98], eax
mov byte [eax + edi], 0
mov eax, dword [esp + 0x28]
mov esi, eax
and esi, 8
je 0x47d735
test al, 0x10
mov eax, dword [esp + 0x30]
mov dword [esp + 8], eax
lea eax, [esp + 0x9c]
mov dword [esp + 4], eax
mov eax, dword [esp + 0x98]
mov dword [esp], eax
je 0x47dbe0
call fcn.0047ee70
mov dword [esp + 0x74], edx
mov edi, dword [esp + 0x9c]
cmp dword [esp + 0x98], edi
je case.0x47bcf9.1
mov ecx, dword [esp + 0x28]
mov edi, ecx
and edi, 0x80
mov dword [esp + 0x20], edi
jne 0x47bc08
mov edi, ecx
and edi, 0x10
je 0x47dbee
test esi, esi
je 0x47df11
mov ecx, dword [esp + 0x38]
test ecx, ecx
je 0x47e167
mov edi, dword [esp + 0x44]
cmp ecx, 1
lea edx, [edi + ecx*4 - 4]
cmove edx, edi
mov edx, dword [edx]
mov dword [edx], eax
mov eax, dword [esp + 0x74]
mov dword [edx + 4], eax
add dword [esp + 0x3c], 1
mov esi, ebx
jmp 0x47ba15
mov dword [esp], 0xffffffff
call sub.msvcrt.dll_isspace
test eax, eax
je 0x47cb21
call sub.msvcrt.dll__errno
cmp dword [eax], 4
jne 0x47cad4
mov ecx, dword [esp + 0x3c]
mov eax, 0xffffffff
test ecx, ecx
cmovne eax, ecx
mov edi, eax
jmp 0x47bbcb
mov ebx, dword [esp + 0x20]
mov esi, dword [esp + 0x5c]
jmp 0x47cae4
lea ebx, [ecx + 1]
movzx eax, byte [ecx + 1]
jmp 0x47ba6a
movzx eax, byte [esi]
jmp 0x47ba26
lea eax, [esp + 0x90]
mov ebp, 0xffffffff
mov dword [esp + 0x1c], eax
jmp 0x47be9e
test al, al
je case.0x47bcf9.1
jmp 0x47bdff
lea eax, [ebx + 1]
or dword [esp + 0x28], 0xc
mov dword [esp + 0x54], eax
movzx eax, byte [ebx + 1]
mov byte [esp + 0x34], al
jmp 0x47bcc0
lea eax, [ebx + 1]
or dword [esp + 0x28], 8
mov dword [esp + 0x54], eax
movzx eax, byte [ebx + 1]
mov byte [esp + 0x34], al
jmp 0x47bcc0
mov esi, 0xffffffff
jmp 0x47bb11
mov edx, dword [esp + 0x20]
test edx, edx
je case.0x47bcf9.1
lea eax, [esp + 0x90]
mov esi, dword [esp + 0x18]
mov dword [esp + 0x1c], eax
mov edi, eax
lea esi, [esi]
mov edx, edi
mov eax, esi
call fcn.0047b850
mov dword [esp], eax
mov ebx, eax
call sub.msvcrt.dll_isspace
test eax, eax
jne 0x47cba0
mov ecx, dword [esp + 0x1c]
mov edx, dword [esp + 0x18]
mov eax, ebx
mov dword [esp], 0
call fcn.0047b8e0
jmp case.0x47bcf9.1
mov ecx, dword [esp + 0x1c]
mov edx, dword [esp + 0x18]
mov dword [esp], 1
call fcn.0047b8e0
mov edi, dword [esp + 0x3c]
mov eax, 0xffffffff
test edi, edi
cmovne eax, edi
mov edi, eax
jmp 0x47bbcb
lea eax, [ebx + 1]
or dword [esp + 0x28], 0x200
mov dword [esp + 0x54], eax
jmp 0x47bcc0
mov eax, edi
test al, 0x80
jne 0x47c20c
test ah, 6
mov ecx, dword [esp + 0x38]
je 0x47dfa3
test ecx, ecx
je 0x47e151
mov edi, dword [esp + 0x44]
cmp ecx, 1
lea eax, [edi + ecx*4 - 4]
cmove eax, edi
mov eax, dword [eax]
mov dword [esp + 0x24], eax
mov eax, dword [esp + 0x24]
test eax, eax
je 0x47e612
mov dword [esp], 0xc8
call sub.msvcrt.dll_malloc
mov edi, eax
mov eax, dword [esp + 0x24]
test edi, edi
mov dword [eax], edi
je 0x47e5f9
mov eax, dword [esp + 0x8c]
test eax, eax
je 0x47cc7c
mov edx, dword [eax]
cmp edx, 0x1f
jbe 0x47cc83
call fcn.0047b830
mov edx, dword [eax]
lea ecx, [edx + 1]
mov dword [esp + 0x8c], eax
mov dword [esp + 0x4c], edi
mov dword [esp + 0x40], 0x64
mov dword [eax], ecx
mov ecx, dword [esp + 0x24]
mov dword [eax + edx*4 + 8], ecx
jmp 0x47c20c
test esi, esi
je case.0x47bcf9.1
mov edx, dword [esp + 0x1c]
mov eax, dword [esp + 0x18]
call fcn.0047b850
cmp eax, 0xffffffff
mov ebp, eax
je case.0x47bcf9.1
test esi, esi
jle 0x47ddce
sub esi, 1
jmp 0x47c6b6
mov edi, dword [esp + 0x38]
test edi, edi
je 0x47dd15
mov ecx, dword [esp + 0x44]
cmp edi, 1
lea eax, [ecx + edi*4 - 4]
cmove eax, ecx
mov eax, dword [eax]
mov dword [esp + 0x58], eax
mov eax, dword [esp + 0x58]
test eax, eax
jne 0x47bf7c
jmp case.0x47bcf9.1
mov edi, dword [esp + 0x38]
test edi, edi
je 0x47dd2b
mov ecx, dword [esp + 0x44]
cmp edi, 1
lea eax, [ecx + edi*4 - 4]
cmove eax, ecx
mov eax, dword [eax]
mov dword [esp + 0x4c], eax
mov edi, dword [esp + 0x4c]
test edi, edi
jne 0x47c552
jmp case.0x47bcf9.1
mov edi, dword [esp + 0x38]
test edi, edi
je 0x47dd83
mov ecx, dword [esp + 0x44]
cmp edi, 1
lea eax, [ecx + edi*4 - 4]
cmove eax, ecx
mov eax, dword [eax]
mov dword [esp + 0x4c], eax
mov ecx, dword [esp + 0x4c]
test ecx, ecx
jne 0x47c390
jmp case.0x47bcf9.1
mov ecx, dword [esp + 0x38]
test ecx, ecx
je 0x47dc96
mov edi, dword [esp + 0x44]
cmp ecx, 1
lea eax, [edi + ecx*4 - 4]
cmove eax, edi
mov eax, dword [eax]
mov dword [esp + 0x24], eax
mov eax, dword [esp + 0x24]
test eax, eax
je 0x47e612
cmp esi, 0x400
mov eax, 0x400
cmovle eax, esi
mov dword [esp], eax
mov dword [esp + 0x40], eax
call sub.msvcrt.dll_malloc
mov edi, eax
mov eax, dword [esp + 0x24]
test edi, edi
mov dword [eax], edi
je 0x47e5f9
mov eax, dword [esp + 0x8c]
test eax, eax
je 0x47cdda
mov edx, dword [eax]
cmp edx, 0x1f
jbe 0x47cde1
call fcn.0047b830
mov edx, dword [eax]
lea ecx, [edx + 1]
mov dword [esp + 0x8c], eax
mov dword [esp + 0x58], edi
mov dword [eax], ecx
mov ecx, dword [esp + 0x24]
mov dword [eax + edx*4 + 8], ecx
jmp 0x47c0db
cmp ebp, 0xffffffff
setne dl
and eax, edx
mov edx, dword [esp + 0x30]
test edx, edx
jne 0x47ce16
mov dword [esp + 0x30], 0xa
test al, al
mov dword [esp + 0x20], edi
je 0x47ce5b
mov eax, dword [esp + 0x28]
mov dword [esp + 0x5c], ebx
mov ebx, ebp
and eax, 0x100
mov dword [esp + 0x54], eax
cmp dword [esp + 0x30], 0x10
je 0x47cf51
lea eax, [ebx - 0x30]
cmp eax, 9
ja 0x47cfc0
lea eax, [ebx - 0x2f]
cmp eax, dword [esp + 0x30]
jle 0x47cf61
mov ebp, ebx
mov ebx, dword [esp + 0x5c]
mov esi, dword [esp + 0x20]
test esi, esi
jne 0x47c9cb
test byte [esp + 0x28], 0x20
je 0x47bd00
mov dword [esp], ebp
call sub.msvcrt.dll_tolower
cmp al, 0x28
jne 0x47bd00
mov edi, 0x6e
mov ebp, ebx
mov esi, 0x4d9839
mov ebx, edi
mov edx, dword [esp + 0x1c]
mov eax, dword [esp + 0x18]
call fcn.0047b850
cmp eax, 0xffffffff
mov edi, eax
je 0x47bd02
mov dword [esp], eax
call sub.msvcrt.dll_tolower
cmp bl, al
jne 0x47bd02
add esi, 1
movzx ebx, byte [esi]
test bl, bl
jne 0x47ce90
lea eax, [esp + 0x94]
mov ecx, dword [esp + 0x98]
mov ebx, ebp
mov ebp, edi
mov dword [esp + 0x34], eax
mov edx, eax
xor eax, eax
call fcn.0047b730
mov dword [esp + 0x20], 1
mov dword [esp + 0x98], eax
mov byte [eax], 0x30
jmp 0x47ca08
mov dword [esp + 0x30], 8
jmp case.0x47c2ea.1
or dword [esp + 0x28], 0x10
mov dword [esp + 0x30], 0
jmp case.0x47c2ea.1
or dword [esp + 0x28], 0x10
mov dword [esp + 0x30], 0xa
jmp case.0x47c2ea.1
mov dword [esp + 0x30], 0x10
jmp case.0x47c2ea.1
mov eax, dword [esp + 0x28]
mov dword [esp + 0x30], 0x10
and eax, 0xfffffff1
or eax, 0x24
mov dword [esp + 0x28], eax
jmp case.0x47c2ea.1
mov dword [esp], ebx
call sub.msvcrt.dll_isxdigit
test eax, eax
je 0x47ce55
mov edi, dword [esp + 0x20]
mov ecx, dword [esp + 0x98]
lea edx, [esp + 0x94]
mov eax, edi
call fcn.0047b730
mov dword [esp + 0x98], eax
mov byte [eax + edi], bl
xor eax, eax
test esi, esi
mov edx, dword [esp + 0x1c]
lea ecx, [edi + 1]
setg al
sub esi, eax
mov eax, dword [esp + 0x18]
mov dword [esp + 0x20], ecx
call fcn.0047b850
cmp eax, 0xffffffff
mov ebx, eax
setne dl
test esi, esi
setne al
test dl, al
jne 0x47ce31
jmp 0x47ce55
cmp dword [esp + 0x30], 0xa
jne 0x47ce55
mov edi, dword [esp + 0x54]
test edi, edi
je 0x47ce55
test esi, esi
mov ecx, 0x7fffffff
cmovg ecx, esi
mov ebp, ecx
mov ecx, dword [esp + 0x2c]
movzx edx, byte [ecx]
cmp edx, ebx
mov eax, edx
jne 0x47dcf6
cmp byte [ecx + 1], 0
lea edi, [ecx + 1]
je 0x47d051
mov dword [esp + 0x34], esi
mov ebx, dword [esp + 0x18]
mov esi, dword [esp + 0x1c]
jmp 0x47d032
movzx ecx, byte [edi]
sub ebp, 1
cmp ecx, eax
jne 0x47d15a
add edi, 1
cmp byte [edi], 0
je 0x47d167
test ebp, ebp
je 0x47d172
mov edx, esi
mov eax, ebx
call fcn.0047b850
cmp eax, 0xffffffff
jne 0x47d010
mov ebx, eax
movzx eax, byte [edi]
mov esi, dword [esp + 0x34]
test al, al
jne 0x47e722
mov edi, dword [esp + 0x20]
test esi, esi
cmovle ebp, esi
mov esi, ebp
sub edi, 1
jmp 0x47cf65
test byte [esp + 0x28], 0x40
je 0x47d07b
mov dword [esp], ebp
call sub.msvcrt.dll_isxdigit
test eax, eax
jne 0x47c8f9
test ebx, ebx
je 0x47c741
mov dword [esp], ebp
call sub.msvcrt.dll_tolower
cmp byte [esp + 0x60], al
jne 0x47c741
mov ecx, dword [esp + 0x98]
lea edx, [esp + 0x94]
mov eax, ebx
call fcn.0047b730
movzx ecx, byte [esp + 0x60]
mov dword [esp + 0x98], eax
mov byte [esp + 0x5c], 1
mov byte [esp + 0x54], 1
mov byte [eax + ebx], cl
add ebx, 1
jmp 0x47c8bb
mov eax, dword [esp + 0x50]
cmp byte [eax], 0
je 0x47d140
mov eax, dword [esp + 0x2c]
test eax, eax
je 0x47ddab
movzx edx, byte [eax]
jmp 0x47c8a2
mov dword [esp + 0x34], ebp
mov ebp, eax
mov eax, dword [esp + 0x50]
mov ebx, dword [esp + 0x64]
movzx eax, byte [eax]
test al, al
je 0x47d140
mov esi, dword [esp + 0x50]
mov edi, ebx
nop
lea esi, [esi]
mov ecx, dword [esp + 0x98]
lea edx, [esp + 0x94]
mov eax, ebx
add esi, 1
add ebx, 1
call fcn.0047b730
mov dword [esp + 0x98], eax
movzx edx, byte [esi - 1]
mov byte [eax + edi], dl
cmp byte [esi], 0
mov edi, ebx
jne 0x47d110
mov ecx, dword [esp + 0x20]
test ecx, ecx
jle 0x47d150
mov eax, dword [esp + 0x34]
mov dword [esp + 0x20], eax
mov byte [esp + 0x54], 1
jmp 0x47c8bb
mov ebx, eax
mov esi, dword [esp + 0x34]
mov eax, ecx
jmp 0x47d049
mov esi, dword [esp + 0x34]
mov ebx, eax
jmp 0x47d051
mov ebx, dword [esp + 0x5c]
mov ebp, eax
cmp dword [esp + 0x2c], edi
jae 0x47ce5b
mov ecx, dword [esp + 0x1c]
mov edx, dword [esp + 0x18]
mov eax, ebp
mov dword [esp], 0
lea ebp, [edi - 1]
call fcn.0047b8e0
cmp ebp, dword [esp + 0x2c]
jbe 0x47d1cd
mov esi, ebp
movzx eax, byte [esi]
mov ecx, dword [esp + 0x1c]
sub esi, 1
mov edx, dword [esp + 0x18]
mov dword [esp], 1
call fcn.0047b8e0
cmp esi, dword [esp + 0x2c]
jne 0x47d1a3
mov eax, dword [esp + 0x2c]
sub eax, edi
lea ebp, [ebp + eax + 1]
movzx ebp, byte [ebp]
jmp 0x47ce5b
lea eax, [ebp - 0x2b]
and eax, 0xfffffffd
jne 0x47c741
jmp 0x47c900
mov eax, dword [esp + 0x20]
test eax, eax
je 0x47d600
mov eax, dword [esp + 0x90]
mov dword [esp + 0x5c], eax
lea eax, [esp + 0x90]
mov dword [esp + 0x1c], eax
mov edx, eax
mov eax, dword [esp + 0x18]
call fcn.0047b850
cmp eax, 0xffffffff
mov ebp, eax
je 0x47d89f
mov eax, dword [esp + 0x28]
xor edi, edi
mov dword [esp + 0x54], ebx
mov dword [esp + 0x20], edi
mov ebx, ebp
mov dword [esp + 0xa4], 0
mov edi, dword [esp + 0x18]
and eax, 0x80
mov ebp, eax
jmp 0x47d272
sub esi, 1
test esi, esi
jle 0x47d8f4
mov edx, dword [esp + 0x1c]
mov eax, edi
call fcn.0047b850
cmp eax, 0xffffffff
mov ebx, eax
je 0x47d8f4
mov eax, dword [esp + 0x98]
movzx ecx, byte [esp + 0x34]
cmp cl, byte [eax + ebx]
je 0x47dcd1
test ebp, ebp
jne 0x47d251
lea eax, [esp + 0xa4]
mov dword [esp + 8], 1
mov byte [esp + 0xab], bl
mov dword [esp + 0xc], eax
lea eax, [esp + 0xab]
mov dword [esp + 4], eax
mov eax, dword [esp + 0x4c]
mov dword [esp], eax
call fcn.0047ec90
cmp eax, 0xfffffffe
je 0x47d435
add dword [esp + 0x4c], 2
test dword [esp + 0x28], 0x600
mov ecx, dword [esp + 0x4c]
je 0x47d36c
mov eax, dword [esp + 0x24]
mov edx, dword [esp + 0x40]
mov dword [esp + 0x20], 0
mov eax, dword [eax]
add edx, edx
mov dword [esp + 0x38], edx
add edx, eax
cmp ecx, edx
jne 0x47d251
mov ecx, dword [esp + 0x40]
mov edx, dword [esp + 0x38]
mov dword [esp + 0x20], esi
mov dword [esp + 0x4c], ebx
add ecx, 1
mov ebx, edx
mov esi, ecx
jmp 0x47d330
cmp ebx, esi
jbe 0x47e0fc
mov eax, dword [esp + 0x24]
mov ebx, esi
mov eax, dword [eax]
lea ecx, [ebx + ebx]
mov dword [esp], eax
mov dword [esp + 4], ecx
call sub.msvcrt.dll_realloc
test eax, eax
je 0x47d320
mov ecx, dword [esp + 0x24]
mov edx, ebx
mov esi, dword [esp + 0x20]
mov ebx, dword [esp + 0x4c]
mov dword [esp + 0x40], edx
mov dword [esp + 0x20], 0
mov dword [ecx], eax
add eax, dword [esp + 0x38]
mov dword [esp + 0x4c], eax
jmp 0x47d251
mov dword [esp + 0x20], 0
jmp 0x47d251
mov dword [esp + 0x34], ebp
mov ebx, dword [esp + 0x64]
mov ebp, eax
mov eax, ecx
jmp 0x47c7cd
mov dword [esp + 0x34], ebp
mov ebx, dword [esp + 0x64]
mov ebp, eax
jmp 0x47c7d5
mov ebp, ebx
mov ebx, dword [esp + 0x38]
mov dword [esp + 0x58], edi
mov eax, dword [esp + 0x20]
test eax, eax
jne 0x47bc08
mov eax, dword [esp + 0x58]
mov ecx, dword [esp + 0x40]
lea esi, [eax + 1]
mov byte [eax], 0
mov eax, dword [esp + 0x24]
mov edx, esi
call fcn.0047b680
mov dword [esp + 0x58], esi
add dword [esp + 0x3c], 1
mov esi, ebx
mov dword [esp + 0x24], 0
jmp 0x47ba15
mov eax, dword [esp + 0x40]
lea ebx, [esi - 1]
mov dword [esp + 0x28], esi
cmp eax, esi
lea edi, [eax + 1]
cmovl ebx, eax
add ebx, eax
mov esi, ebx
mov ebx, dword [esp + 0x24]
jmp 0x47d40c
cmp esi, edi
jbe 0x47d8cb
mov edx, dword [ebx]
mov esi, edi
mov dword [esp + 4], esi
mov dword [esp], edx
call sub.msvcrt.dll_realloc
test eax, eax
je 0x47d400
mov edi, dword [esp + 0x24]
mov ebx, esi
mov esi, dword [esp + 0x28]
mov dword [edi], eax
add eax, dword [esp + 0x40]
mov dword [esp + 0x40], ebx
jmp 0x47c129
add dword [esp + 0x20], 1
jmp 0x47d25c
mov dword [esp + 0x20], ebx
mov ebx, dword [esp + 0x70]
mov eax, dword [esp + 0x20]
test eax, eax
je case.0x47bcf9.1
test byte [esp + 0x28], 0x40
je 0x47d465
cmp dword [esp + 0x20], 2
je case.0x47bcf9.1
lea eax, [esp + 0x94]
mov dword [esp + 0x34], eax
mov edi, dword [esp + 0x20]
mov ecx, dword [esp + 0x98]
mov edx, dword [esp + 0x34]
mov eax, edi
call fcn.0047b730
test byte [esp + 0x28], 8
mov dword [esp + 0x98], eax
mov byte [eax + edi], 0
jne 0x47dc28
mov edi, dword [esp + 0x28]
mov eax, edi
test al, 4
lea eax, [esp + 0x9c]
mov dword [esp + 4], eax
mov eax, dword [esp + 0x98]
mov dword [esp], eax
je 0x47db3b
call fcn.0047ea30
mov eax, edi
test al, 0x80
jne 0x47d810
mov edx, dword [esp + 0x9c]
mov eax, dword [esp + 0x98]
cmp edx, eax
je 0x47bd1a
mov edi, dword [esp + 0x38]
test edi, edi
je 0x47e179
mov esi, dword [esp + 0x44]
cmp edi, 1
lea ecx, [esi + edi*4 - 4]
cmove ecx, esi
mov ecx, dword [ecx]
cmp dword [esp + 0x68], 0x2d
fstp qword [esp + 0x78]
fld qword [esp + 0x78]
je 0x47d52d
fstp qword [ecx]
cmp edx, eax
je case.0x47bcf9.1
add dword [esp + 0x3c], 1
mov dword [esp + 0x20], 0
mov esi, ebx
jmp 0x47ba15
fchs
jmp 0x47d50f
mov ecx, dword [esp + 0x40]
mov dword [esp + 0x54], ebp
mov dword [esp + 0x58], ebx
mov ebp, dword [esp + 0x24]
lea edx, [ecx + ecx]
lea edi, [ecx + 1]
mov ebx, edx
jmp 0x47d55d
cmp ebx, edi
jbe 0x47db94
mov eax, dword [ebp]
mov ebx, edi
mov dword [esp + 4], ebx
mov dword [esp], eax
call sub.msvcrt.dll_realloc
test eax, eax
je 0x47d550
mov edi, dword [esp + 0x24]
mov edx, ebx
mov ebp, dword [esp + 0x54]
mov ebx, dword [esp + 0x58]
mov dword [edi], eax
mov edi, dword [esp + 0x40]
mov dword [esp + 0x40], edx
add edi, eax
jmp 0x47bfd7
cmp eax, 1
jne 0x47c446
sub dword [esp + 0x28], 1
add dword [esp + 0x4c], 2
mov eax, dword [esp + 0x28]
test eax, eax
jle 0x47d5bd
mov eax, dword [esp + 0x18]
mov edx, ebp
call fcn.0047b850
cmp eax, 0xffffffff
mov edi, eax
jne 0x47c599
mov eax, dword [esp + 0x20]
mov ebx, dword [esp + 0x38]
mov ebp, edi
test eax, eax
jne 0x47bc08
mov eax, dword [esp + 0x40]
mov edx, dword [esp + 0x4c]
mov esi, ebx
lea ecx, [eax + eax]
mov eax, dword [esp + 0x24]
call fcn.0047b680
add dword [esp + 0x3c], 1
mov dword [esp + 0x24], 0
jmp 0x47ba15
mov eax, dword [esp + 0x90]
mov dword [esp + 0x5c], eax
lea eax, [esp + 0x90]
mov dword [esp + 0x1c], eax
mov edx, eax
mov eax, dword [esp + 0x18]
call fcn.0047b850
cmp eax, 0xffffffff
mov ebp, eax
je 0x47d89f
mov edi, dword [esp + 0x28]
mov dword [esp + 0x54], ebx
mov ebx, ebp
mov eax, edi
and eax, 0x80
mov ecx, eax
mov eax, edi
mov edi, dword [esp + 0x58]
and eax, 0x600
mov ebp, ecx
mov dword [esp + 0x38], eax
jmp 0x47d68c
mov eax, dword [esp + 0x24]
mov edi, dword [esp + 0x40]
mov eax, dword [eax]
lea ecx, [eax + edi]
mov edi, edx
cmp edx, ecx
je 0x47dae5
sub esi, 1
test esi, esi
jle 0x47d92f
mov edx, dword [esp + 0x1c]
mov eax, dword [esp + 0x18]
call fcn.0047b850
cmp eax, 0xffffffff
mov ebx, eax
je 0x47d92f
mov eax, dword [esp + 0x98]
movzx ecx, byte [esp + 0x34]
cmp cl, byte [eax + ebx]
je 0x47dcac
test ebp, ebp
jne 0x47d669
mov ecx, dword [esp + 0x38]
lea edx, [edi + 1]
mov byte [edi], bl
test ecx, ecx
jne 0x47d652
mov edi, edx
jmp 0x47d669
mov edx, dword [esp + 0x98]
add ebx, 1
mov byte [edx + eax], 1
movzx eax, byte [ebx]
jmp 0x47c291
mov edx, dword [esp + 0x98]
mov dword [esp + 0x94], 0x100
mov eax, 0x100
test edx, edx
je 0x47d6f6
mov dword [esp], edx
call sub.msvcrt.dll_free
mov eax, dword [esp + 0x94]
mov dword [esp], eax
call sub.msvcrt.dll_malloc
mov dword [esp + 0x98], eax
jmp 0x47c245
mov dword [esp + 0x58], edi
mov ecx, ebx
mov edx, dword [esp + 0x58]
mov ebx, dword [esp + 0x38]
mov eax, dword [esp + 0x24]
mov esi, ebx
call fcn.0047b680
add dword [esp + 0x3c], 1
mov dword [esp + 0x24], 0
jmp 0x47ba15
mov eax, dword [esp + 0x30]
test byte [esp + 0x28], 0x10
mov dword [esp + 8], eax
lea eax, [esp + 0x9c]
mov dword [esp + 4], eax
mov eax, dword [esp + 0x98]
mov dword [esp], eax
je 0x47dc1e
call sub.msvcrt.dll_strtol
jmp 0x47ca66
cmp eax, 1
mov ebp, ebx
jne 0x47c446
mov eax, dword [esp + 0x20]
add dword [esp + 0x4c], 2
mov ebx, dword [esp + 0x4c]
test eax, eax
jne 0x47d7a5
test dword [esp + 0x28], 0x600
je 0x47d7a5
mov eax, dword [esp + 0x24]
mov ecx, dword [eax]
mov eax, dword [esp + 0x40]
lea edx, [eax + eax]
lea eax, [ecx + edx]
cmp ebx, eax
je 0x47e553
mov eax, dword [esp + 0x38]
test eax, eax
jle 0x47d7b6
sub eax, 1
mov dword [esp + 0x38], eax
je 0x47d7ca
mov edx, esi
mov eax, edi
call fcn.0047b850
cmp eax, 0xffffffff
mov ebp, eax
jne 0x47c3cc
mov ebx, dword [esp + 0x34]
mov esi, dword [esp + 0x20]
test esi, esi
jne 0x47bc08
mov eax, dword [esp + 0x4c]
xor edi, edi
lea esi, [eax + 2]
mov word [eax], di
mov eax, dword [esp + 0x40]
mov edx, esi
lea ecx, [eax + eax]
mov eax, dword [esp + 0x24]
call fcn.0047b680
mov dword [esp + 0x4c], esi
add dword [esp + 0x3c], 1
mov esi, ebx
mov dword [esp + 0x24], 0
jmp 0x47ba15
fstp st(0)
jmp 0x47d81a
fstp st(0)
jmp 0x47d81a
fstp st(0)
mov eax, dword [esp + 0x98]
cmp dword [esp + 0x9c], eax
jne 0x47bc08
jmp case.0x47bcf9.1
call sub.msvcrt.dll__errno
mov dword [eax], 0x16
mov eax, 0xffffffff
jmp 0x47bd42
mov ebx, dword [esp + 0x64]
jmp 0x47d0e5
lea eax, [ebx + 2]
or dword [esp + 0x28], 0xc
mov dword [esp + 0x54], eax
movzx eax, byte [ebx + 2]
mov byte [esp + 0x34], al
jmp 0x47bcc0
lea eax, [ebx + 2]
or dword [esp + 0x28], 0x404
mov dword [esp + 0x54], eax
movzx eax, byte [ebx + 2]
mov byte [esp + 0x34], al
jmp 0x47bcc0
lea eax, [ebx + 2]
or dword [esp + 0x28], 1
mov dword [esp + 0x54], eax
movzx eax, byte [ebx + 2]
mov byte [esp + 0x34], al
jmp 0x47bcc0
mov edi, ebp
jmp 0x47bbc2
mov ecx, dword [esp + 0x1c]
mov edx, dword [esp + 0x18]
mov ebp, ebx
mov dword [esp], 1
mov eax, ebp
mov dword [esp + 0x58], edi
mov ebx, dword [esp + 0x38]
call fcn.0047b8e0
jmp 0x47d3a3
lea eax, [esp + 0x8c]
lea edx, [esp + 0x98]
call fcn.0047b6b0
mov eax, 0xffffffff
jmp 0x47bd42
mov eax, dword [esp + 0x50]
movzx eax, byte [eax]
jmp 0x47d0fe
mov ebp, ebx
mov edi, dword [esp + 0x20]
mov ebx, dword [esp + 0x54]
test edi, edi
jne 0x47c446
mov eax, dword [esp + 0x5c]
cmp eax, dword [esp + 0x90]
je case.0x47bcf9.1
mov eax, dword [esp + 0x28]
and eax, 0x80
mov dword [esp + 0x20], eax
jne 0x47bc08
jmp 0x47d7da
mov ebp, ebx
mov ebx, dword [esp + 0x54]
mov dword [esp + 0x58], edi
mov eax, dword [esp + 0x5c]
cmp eax, dword [esp + 0x90]
je case.0x47bcf9.1
test byte [esp + 0x28], 0x80
jne 0x47ba48
mov eax, dword [esp + 0x58]
mov ecx, dword [esp + 0x40]
lea esi, [eax + 1]
mov byte [eax], 0
mov eax, dword [esp + 0x24]
mov edx, esi
call fcn.0047b680
mov dword [esp + 0x58], esi
add dword [esp + 0x3c], 1
mov esi, ebx
mov dword [esp + 0x20], 0
mov dword [esp + 0x24], 0
jmp 0x47ba15
lea eax, [esp + 0x94]
mov ecx, dword [esp + 0x98]
mov edi, 1
mov edx, eax
xor eax, eax
call fcn.0047b730
mov ecx, ebp
mov dword [esp + 0x98], eax
mov edx, dword [esp + 0x1c]
mov byte [eax], cl
xor eax, eax
test esi, esi
setg al
sub esi, eax
mov eax, dword [esp + 0x18]
call fcn.0047b850
mov ebp, eax
jmp 0x47c956
lea eax, [esp + 0x90]
mov dword [esp + 0x1c], eax
mov edx, eax
mov eax, dword [esp + 0x18]
call fcn.0047b850
cmp eax, 0xffffffff
mov ebp, eax
je 0x47e507
mov eax, ebp
mov edi, dword [esp + 0x18]
mov ebp, ebx
mov ebx, dword [esp + 0x1c]
jmp 0x47da0f
mov edx, ebx
mov eax, edi
call fcn.0047b850
cmp eax, 0xffffffff
je 0x47da16
sub esi, 1
test esi, esi
jg 0x47da01
mov ebx, ebp
mov dword [esp + 0x20], 0
mov ebp, eax
mov esi, ebx
jmp 0x47ba15
lea eax, [esp + 0x94]
mov ecx, dword [esp + 0x98]
mov edx, eax
mov eax, edi
call fcn.0047b730
mov edx, dword [esp + 0x1c]
mov dword [esp + 0x98], eax
lea ecx, [edi + 1]
mov byte [eax + edi], 0x30
mov eax, dword [esp + 0x18]
mov dword [esp + 0x20], ecx
call fcn.0047b850
mov ebp, eax
mov dword [esp], ebp
call sub.msvcrt.dll_tolower
cmp eax, 0x78
je 0x47e458
mov ecx, dword [esp + 0x30]
test ecx, ecx
jne 0x47e446
cmp ebp, 0xffffffff
mov dword [esp + 0x30], 8
setne al
test esi, esi
setne dl
and eax, edx
test al, al
jne 0x47ce1e
jmp 0x47c9cb
mov eax, dword [esp + 0x28]
and eax, 4
mov dword [esp + 0x20], eax
je 0x47dfd0
mov ecx, dword [esp + 0x38]
test ecx, ecx
je 0x47e1e7
mov edi, dword [esp + 0x44]
cmp ecx, 1
lea eax, [edi + ecx*4 - 4]
cmove eax, edi
mov eax, dword [eax]
mov edx, dword [esp + 0x90]
mov dword [esp + 0x20], 0
mov esi, ebx
mov dword [eax], edx
jmp 0x47ba15
mov ecx, dword [esp + 0x40]
mov dword [esp + 0x58], esi
mov dword [esp + 0x60], ebx
mov esi, dword [esp + 0x24]
lea edx, [ecx + ecx]
lea edi, [ecx + 1]
mov ebx, edx
jmp 0x47db0c
cmp ebx, edi
jbe 0x47dee0
mov eax, dword [esi]
mov ebx, edi
mov dword [esp + 4], ebx
mov dword [esp], eax
call sub.msvcrt.dll_realloc
test eax, eax
je 0x47db00
mov edi, dword [esp + 0x24]
mov edx, ebx
mov esi, dword [esp + 0x58]
mov ebx, dword [esp + 0x60]
mov dword [edi], eax
mov edi, dword [esp + 0x40]
mov dword [esp + 0x40], edx
add edi, eax
jmp 0x47d669
call fcn.0047e980
test byte [esp + 0x28], 0x80
jne 0x47d814
mov edx, dword [esp + 0x9c]
mov eax, dword [esp + 0x98]
cmp edx, eax
je 0x47bd1e
mov edi, dword [esp + 0x38]
test edi, edi
je 0x47e1d5
mov esi, dword [esp + 0x44]
cmp edi, 1
lea ecx, [esi + edi*4 - 4]
cmove ecx, esi
mov ecx, dword [ecx]
cmp dword [esp + 0x68], 0x2d
je 0x47db8b
fstp dword [ecx]
jmp 0x47d511
fchs
fstp dword [ecx]
jmp 0x47d511
test dword [esp + 0x28], 0x400
jne 0x47dc17
mov eax, dword [esp + 0x24]
mov ecx, dword [esp + 0x40]
mov dword [esp + 0x24], 0
mov eax, dword [eax]
mov byte [eax + ecx - 1], 0
mov eax, dword [esp + 0x3c]
add eax, 1
lea edx, [esp + 0x98]
mov ecx, dword [esp + 0x24]
mov dword [esp], edx
lea edx, [esp + 0x8c]
call fcn.0047b7a0
jmp 0x47bd42
call fcn.0047f180
mov dword [esp + 0x74], edx
jmp 0x47ca66
test esi, esi
je 0x47e008
mov edi, dword [esp + 0x38]
test edi, edi
je 0x47e130
mov ecx, dword [esp + 0x44]
cmp edi, 1
lea edx, [ecx + edi*4 - 4]
cmove edx, ecx
mov edx, dword [edx]
jmp 0x47cabf
mov eax, 0xffffffff
jmp 0x47dbbc
call sub.msvcrt.dll_strtoul
jmp 0x47ca66
lea eax, [esp + 0x9c]
mov dword [esp + 4], eax
mov eax, dword [esp + 0x98]
mov dword [esp], eax
call fcn.0047ea30
test byte [esp + 0x28], 0x80
jne 0x47d818
mov edx, dword [esp + 0x9c]
mov eax, dword [esp + 0x98]
cmp edx, eax
je 0x47bd22
mov edi, dword [esp + 0x38]
test edi, edi
je 0x47e18b
mov esi, dword [esp + 0x44]
cmp edi, 1
lea ecx, [esi + edi*4 - 4]
cmove ecx, esi
mov ecx, dword [ecx]
cmp dword [esp + 0x68], 0x2d
je 0x47dc8d
fstp xword [ecx]
jmp 0x47d511
fchs
fstp xword [ecx]
jmp 0x47d511
mov eax, dword [esp + 0x48]
mov ecx, dword [eax]
add eax, 4
mov dword [esp + 0x48], eax
mov dword [esp + 0x24], ecx
jmp 0x47cd92
mov ecx, dword [esp + 0x1c]
mov edx, dword [esp + 0x18]
mov ebp, ebx
mov dword [esp], 1
mov eax, ebp
mov dword [esp + 0x58], edi
mov ebx, dword [esp + 0x54]
call fcn.0047b8e0
jmp 0x47d939
mov ecx, dword [esp + 0x1c]
mov edx, dword [esp + 0x18]
mov ebp, ebx
mov dword [esp], 1
mov eax, ebp
mov edi, dword [esp + 0x20]
mov ebx, dword [esp + 0x54]
call fcn.0047b8e0
jmp 0x47d8fe
mov edi, dword [esp + 0x2c]
jmp 0x47d049
mov eax, dword [esp + 0x48]
mov ecx, dword [eax]
add eax, 4
mov dword [esp + 0x48], eax
mov dword [esp + 0x24], ecx
jmp 0x47bf1b
mov eax, dword [esp + 0x48]
mov ecx, dword [eax]
add eax, 4
mov dword [esp + 0x48], eax
mov dword [esp + 0x58], ecx
jmp 0x47ccf8
mov eax, dword [esp + 0x48]
mov ecx, dword [eax]
add eax, 4
mov dword [esp + 0x48], eax
mov dword [esp + 0x4c], ecx
jmp 0x47cd30
mov eax, dword [esp + 0x48]
mov ecx, dword [eax]
add eax, 4
mov dword [esp + 0x48], eax
mov dword [esp + 0x24], ecx
jmp 0x47c4e9
mov eax, dword [esp + 0x48]
mov ecx, dword [eax]
add eax, 4
mov dword [esp + 0x48], eax
mov dword [esp + 0x58], ecx
jmp 0x47c0cf
mov eax, dword [esp + 0x48]
mov ecx, dword [eax]
add eax, 4
mov dword [esp + 0x48], eax
mov dword [esp + 0x24], ecx
jmp 0x47c32f
mov eax, dword [esp + 0x48]
mov edi, dword [eax]
add eax, 4
mov dword [esp + 0x48], eax
mov dword [esp + 0x4c], edi
jmp 0x47cd61
mov ecx, dword [esp + 0x48]
mov eax, dword [ecx]
add ecx, 4
mov dword [esp + 0x48], ecx
jmp 0x47c05c
mov dword [esp + 0x20], ebx
mov ebx, dword [esp + 0x70]
mov ecx, dword [esp + 0x1c]
mov edx, dword [esp + 0x18]
mov eax, ebp
mov dword [esp], 0
call fcn.0047b8e0
jmp 0x47d447
mov dword [esp], eax
call sub.msvcrt.dll_tolower
cmp eax, 0x6e
je 0x47e3c7
cmp eax, 0x69
jne 0x47c6d0
lea eax, [esp + 0x94]
mov ecx, dword [esp + 0x98]
mov dword [esp + 0x34], eax
mov edx, eax
xor eax, eax
call fcn.0047b730
mov ecx, ebp
mov dword [esp + 0x98], eax
mov byte [eax], cl
mov edi, 1
mov ebp, ebx
jmp 0x47de2a
test esi, esi
je case.0x47bcf9.1
mov edi, edx
mov edx, dword [esp + 0x1c]
mov eax, dword [esp + 0x18]
call fcn.0047b850
cmp eax, 0xffffffff
mov ebx, eax
je case.0x47bcf9.1
mov dword [esp], eax
call sub.msvcrt.dll_tolower
movsx edx, byte [edi + 0x4d9848]
cmp eax, edx
jne case.0x47bcf9.1
mov edx, dword [esp + 0x34]
xor eax, eax
mov ecx, dword [esp + 0x98]
test esi, esi
setg al
sub esi, eax
mov eax, edi
call fcn.0047b730
lea edx, [edi + 1]
cmp byte [edx + 0x4d9848], 0
mov dword [esp + 0x98], eax
mov byte [eax + edi], bl
jne 0x47de20
mov eax, ebx
test esi, esi
mov ebx, ebp
mov dword [esp + 0x20], edx
mov ebp, eax
je 0x47d470
mov edx, dword [esp + 0x1c]
mov eax, dword [esp + 0x18]
call fcn.0047b850
cmp eax, 0xffffffff
mov ebp, eax
je 0x47d470
mov dword [esp], eax
call sub.msvcrt.dll_tolower
cmp eax, 0x69
je 0x47e65f
mov ecx, dword [esp + 0x1c]
mov edx, dword [esp + 0x18]
mov eax, ebp
mov dword [esp], 0
call fcn.0047b8e0
jmp 0x47d470
test dword [esp + 0x28], 0x400
jne 0x47dc17
mov eax, dword [esp + 0x24]
mov edi, dword [esp + 0x40]
mov dword [esp + 0x24], 0
mov eax, dword [eax]
mov byte [eax + edi - 1], 0
mov eax, dword [esp + 0x3c]
add eax, 1
jmp 0x47dbbc
test byte [esp + 0x28], 4
je 0x47e1a6
mov edi, dword [esp + 0x38]
test edi, edi
jne 0x47e360
mov edi, dword [esp + 0x48]
mov edx, dword [edi]
lea ecx, [edi + 4]
mov dword [esp + 0x48], ecx
mov dword [edx], eax
jmp 0x47cac8
mov ecx, dword [esp + 0x38]
test ecx, ecx
je 0x47e0e6
mov edi, dword [esp + 0x44]
cmp ecx, 1
lea eax, [edi + ecx*4 - 4]
cmove eax, edi
mov eax, dword [eax]
mov dword [esp + 0x58], eax
mov eax, dword [esp + 0x58]
test eax, eax
jne 0x47c20c
jmp case.0x47bcf9.1
lea eax, [esp + 0x94]
mov ecx, dword [esp + 0x98]
mov dword [esp + 0x34], eax
mov edx, eax
xor eax, eax
call fcn.0047b730
mov ecx, ebp
test esi, esi
mov dword [esp + 0x98], eax
mov byte [eax], cl
jne 0x47de0e
jmp case.0x47bcf9.1
test ecx, ecx
je 0x47e1f9
mov edi, dword [esp + 0x44]
cmp ecx, 1
lea eax, [edi + ecx*4 - 4]
cmove eax, edi
mov eax, dword [eax]
mov dword [esp + 0x4c], eax
mov eax, dword [esp + 0x4c]
test eax, eax
jne 0x47c20c
jmp case.0x47bcf9.1
test byte [esp + 0x28], 2
je 0x47e28a
mov edi, dword [esp + 0x38]
test edi, edi
je 0x47e377
mov ecx, dword [esp + 0x44]
cmp edi, 1
lea eax, [ecx + edi*4 - 4]
cmove eax, ecx
mov eax, dword [eax]
mov edx, dword [esp + 0x90]
mov esi, ebx
mov word [eax], dx
jmp 0x47ba15
test byte [esp + 0x28], 4
je 0x47e2cf
mov ecx, dword [esp + 0x38]
test ecx, ecx
je 0x47e2f3
mov edi, dword [esp + 0x44]
cmp ecx, 1
lea edx, [edi + ecx*4 - 4]
cmove edx, edi
mov edx, dword [edx]
mov dword [edx], eax
jmp 0x47cac8
lea eax, [esp + 0x94]
mov ecx, dword [esp + 0x98]
mov dword [esp + 0x34], eax
mov edx, eax
xor eax, eax
call fcn.0047b730
mov ecx, ebp
test esi, esi
mov dword [esp + 0x98], eax
mov byte [eax], cl
je case.0x47bcf9.1
mov edi, 1
mov ebp, ebx
jmp 0x47e077
test esi, esi
je case.0x47bcf9.1
mov edi, edx
mov edx, dword [esp + 0x1c]
mov eax, dword [esp + 0x18]
call fcn.0047b850
cmp eax, 0xffffffff
mov ebx, eax
je case.0x47bcf9.1
mov dword [esp], eax
call sub.msvcrt.dll_tolower
movsx edx, byte [edi + 0x4d9844]
cmp eax, edx
jne case.0x47bcf9.1
mov edx, dword [esp + 0x34]
xor eax, eax
mov ecx, dword [esp + 0x98]
test esi, esi
setg al
sub esi, eax
mov eax, edi
call fcn.0047b730
lea edx, [edi + 1]
cmp byte [edx + 0x4d9844], 0
mov dword [esp + 0x98], eax
mov byte [eax + edi], bl
jne 0x47e06d
mov eax, ebx
mov dword [esp + 0x20], edx
mov ebx, ebp
mov ebp, eax
jmp 0x47d470
mov eax, dword [esp + 0x48]
mov edi, dword [eax]
add eax, 4
mov dword [esp + 0x48], eax
mov dword [esp + 0x58], edi
jmp 0x47df5c
test dword [esp + 0x28], 0x400
jne 0x47dc17
mov eax, dword [esp + 0x24]
mov edi, dword [esp + 0x40]
xor ebp, ebp
mov eax, dword [eax]
mov word [eax + edi*2 - 2], bp
mov eax, dword [esp + 0x3c]
mov dword [esp + 0x24], 0
add eax, 1
jmp 0x47dbbc
mov edi, dword [esp + 0x48]
lea ecx, [edi + 4]
mov edx, dword [edi]
mov dword [esp + 0x48], ecx
jmp 0x47cabf
mov dword [esp + 0x34], ebx
mov ebp, eax
mov ebx, dword [esp + 0x64]
jmp 0x47c8a2
mov eax, dword [esp + 0x48]
mov ecx, dword [eax]
add eax, 4
mov dword [esp + 0x48], eax
mov dword [esp + 0x24], ecx
jmp 0x47cc42
mov ecx, dword [esp + 0x48]
lea edi, [ecx + 4]
mov edx, dword [ecx]
mov dword [esp + 0x48], edi
jmp 0x47cabf
mov edi, dword [esp + 0x48]
mov ecx, dword [edi]
add edi, 4
mov dword [esp + 0x48], edi
jmp 0x47d500
mov edi, dword [esp + 0x48]
mov ecx, dword [edi]
add edi, 4
mov dword [esp + 0x48], edi
jmp 0x47dc7f
mov edi, dword [esp + 0x50]
jmp 0x47c7cd
test byte [esp + 0x28], 2
je 0x47e404
mov ecx, dword [esp + 0x38]
test ecx, ecx
je 0x47e3f2
mov edi, dword [esp + 0x44]
cmp ecx, 1
lea edx, [edi + ecx*4 - 4]
cmove edx, edi
mov edx, dword [edx]
mov word [edx], ax
jmp 0x47cac8
mov edi, dword [esp + 0x48]
mov ecx, dword [edi]
add edi, 4
mov dword [esp + 0x48], edi
jmp 0x47db7d
mov ecx, dword [esp + 0x48]
mov eax, dword [ecx]
add ecx, 4
mov dword [esp + 0x48], ecx
jmp 0x47dacd
mov eax, dword [esp + 0x48]
mov ecx, dword [eax]
add eax, 4
mov dword [esp + 0x48], eax
mov dword [esp + 0x4c], ecx
jmp 0x47dfbf
lea eax, [esp + 0x94]
mov ecx, dword [esp + 0x98]
mov edx, eax
mov dword [esp + 0x34], eax
xor eax, eax
call fcn.0047b730
mov edx, dword [esp + 0x1c]
mov dword [esp + 0x98], eax
mov byte [eax], 0x30
mov eax, dword [esp + 0x18]
call fcn.0047b850
test esi, esi
mov ebp, eax
jle 0x47e474
mov edi, esi
sub edi, 1
jne 0x47e647
xor esi, esi
mov dword [esp + 0x20], 1
jmp 0x47c6ea
mov dword [esp + 0x34], ebx
mov ebp, eax
mov ebx, dword [esp + 0x64]
jmp 0x47c8aa
mov eax, dword [esp + 0x48]
mov ecx, dword [eax]
add eax, 4
mov dword [esp + 0x48], eax
mov dword [esp + 0x24], ecx
jmp 0x47c1ab
mov eax, dword [esp + 0x28]
and eax, 1
mov dword [esp + 0x20], eax
je 0x47e39b
mov ecx, dword [esp + 0x38]
test ecx, ecx
je 0x47e389
mov edi, dword [esp + 0x44]
cmp ecx, 1
lea eax, [edi + ecx*4 - 4]
cmove eax, edi
mov eax, dword [eax]
mov edx, dword [esp + 0x90]
mov dword [esp + 0x20], 0
mov esi, ebx
mov byte [eax], dl
jmp 0x47ba15
test byte [esp + 0x28], 2
je 0x47e319
mov edi, dword [esp + 0x38]
test edi, edi
je 0x47e307
mov ecx, dword [esp + 0x44]
cmp edi, 1
lea edx, [ecx + edi*4 - 4]
cmove edx, ecx
mov edx, dword [edx]
jmp 0x47e1cd
mov ecx, dword [esp + 0x48]
mov edx, dword [ecx]
add ecx, 4
mov dword [esp + 0x48], ecx
mov dword [edx], eax
jmp 0x47cac8
mov edi, dword [esp + 0x48]
lea ecx, [edi + 4]
mov edx, dword [edi]
mov dword [esp + 0x48], ecx
jmp 0x47e1cd
test byte [esp + 0x28], 1
je 0x47e343
mov ecx, dword [esp + 0x38]
test ecx, ecx
je 0x47e633
mov edi, dword [esp + 0x44]
cmp ecx, 1
lea edx, [edi + ecx*4 - 4]
cmove edx, edi
mov edx, dword [edx]
mov byte [edx], al
jmp 0x47cac8
mov edi, dword [esp + 0x38]
test edi, edi
jne 0x47e360
mov edi, dword [esp + 0x48]
mov edx, dword [edi]
add edi, 4
mov dword [esp + 0x48], edi
mov dword [edx], eax
jmp 0x47cac8
mov ecx, dword [esp + 0x44]
cmp edi, 1
lea edx, [ecx + edi*4 - 4]
cmove edx, ecx
mov edx, dword [edx]
mov dword [edx], eax
jmp 0x47cac8
mov edi, dword [esp + 0x48]
lea ecx, [edi + 4]
mov eax, dword [edi]
mov dword [esp + 0x48], ecx
jmp 0x47dff7
mov ecx, dword [esp + 0x48]
mov eax, dword [ecx]
add ecx, 4
mov dword [esp + 0x48], ecx
jmp 0x47e2b7
mov edi, dword [esp + 0x38]
test edi, edi
je 0x47e52f
mov ecx, dword [esp + 0x44]
cmp edi, 1
lea eax, [ecx + edi*4 - 4]
cmove eax, ecx
mov eax, dword [eax]
mov edx, dword [esp + 0x90]
mov esi, ebx
mov dword [eax], edx
jmp 0x47ba15
lea eax, [esp + 0x94]
mov ecx, dword [esp + 0x98]
mov dword [esp + 0x34], eax
mov edx, eax
xor eax, eax
call fcn.0047b730
mov ecx, ebp
mov dword [esp + 0x98], eax
mov byte [eax], cl
jmp 0x47e064
mov ecx, dword [esp + 0x48]
mov edx, dword [ecx]
add ecx, 4
mov dword [esp + 0x48], ecx
jmp 0x47e1cd
test byte [esp + 0x28], 1
je 0x47e5c5
mov edi, dword [esp + 0x38]
test edi, edi
je 0x47e5e5
mov ecx, dword [esp + 0x44]
cmp edi, 1
lea edx, [ecx + edi*4 - 4]
cmove edx, ecx
mov edx, dword [edx]
mov byte [edx], al
jmp 0x47cac8
mov eax, dword [esp + 0x2c]
jmp 0x47d0e5
mov eax, dword [esp + 0x2c]
xor edx, edx
jmp 0x47c82b
test esi, esi
setne al
cmp ebp, 0xffffffff
setne dl
and eax, edx
jmp 0x47da93
test dword [esp + 0x30], 0xffffffef
je 0x47e4d5
cmp ebp, 0xffffffff
setne al
test esi, esi
setne dl
and eax, edx
jmp 0x47da93
mov dword [esp], eax
call sub.msvcrt.dll_tolower
cmp eax, 0x78
jne 0x47e258
mov ecx, dword [esp + 0x98]
mov edx, dword [esp + 0x34]
mov eax, 1
call fcn.0047b730
mov ecx, ebp
mov dword [esp + 0x98], eax
mov edx, dword [esp + 0x1c]
mov byte [eax + 1], cl
mov eax, dword [esp + 0x28]
and ah, 0xfe
or eax, 0x40
mov dword [esp + 0x28], eax
mov eax, dword [esp + 0x18]
call fcn.0047b850
mov byte [esp + 0x60], 0x70
mov ebp, eax
mov dword [esp + 0x20], 2
jmp 0x47c6ea
xor eax, eax
test esi, esi
mov edx, dword [esp + 0x1c]
setg al
sub esi, eax
mov eax, dword [esp + 0x18]
call fcn.0047b850
test esi, esi
mov ebp, eax
mov dword [esp + 0x30], 0x10
setne al
cmp ebp, 0xffffffff
setne dl
and eax, edx
jmp 0x47da93
mov ecx, dword [esp + 0x3c]
mov eax, 0xffffffff
mov edi, eax
test ecx, ecx
cmovne edi, ecx
jmp 0x47bbcb
mov edi, dword [esp + 0x64]
mov ebx, dword [esp + 0x70]
mov ebp, eax
mov dword [esp + 0x20], edi
jmp 0x47ddb3
mov edi, dword [esp + 0x48]
lea ecx, [edi + 4]
mov eax, dword [edi]
mov dword [esp + 0x48], ecx
jmp 0x47e3b7
mov eax, dword [esp + 0x3c]
test eax, eax
cmove eax, dword [esp + 0x68]
mov edi, eax
jmp 0x47bbcb
mov eax, dword [esp + 0x40]
mov ebx, edx
add eax, 1
mov dword [esp + 0x4c], eax
jmp 0x47e576
mov eax, dword [esp + 0x4c]
cmp ebx, eax
jbe 0x47e0fc
mov ecx, dword [esp + 0x24]
mov ebx, eax
mov ecx, dword [ecx]
lea eax, [ebx + ebx]
mov dword [esp], ecx
mov dword [esp + 0x54], edx
mov dword [esp + 4], eax
call sub.msvcrt.dll_realloc
test eax, eax
mov edx, dword [esp + 0x54]
je 0x47e562
mov ecx, dword [esp + 0x24]
mov dword [esp + 0x40], ebx
mov dword [ecx], eax
add eax, edx
mov dword [esp + 0x4c], eax
jmp 0x47d7a5
mov ecx, dword [esp + 0x1c]
mov edx, dword [esp + 0x18]
mov eax, ebp
mov dword [esp], 1
mov ebx, dword [esp + 0x34]
call fcn.0047b8e0
jmp 0x47d7ce
mov ecx, dword [esp + 0x38]
test ecx, ecx
jne 0x47e01f
mov ecx, dword [esp + 0x48]
mov edx, dword [ecx]
lea edi, [ecx + 4]
mov dword [esp + 0x48], edi
mov dword [edx], eax
jmp 0x47cac8
mov edi, dword [esp + 0x48]
mov edx, dword [edi]
lea ecx, [edi + 4]
mov dword [esp + 0x48], ecx
mov byte [edx], al
jmp 0x47cac8
test dword [esp + 0x28], 0x400
mov eax, 0xffffffff
cmove eax, dword [esp + 0x3c]
mov edi, eax
jmp 0x47bbcb
lea eax, [esp + 0x98]
lea edx, [esp + 0x8c]
xor ecx, ecx
mov dword [esp], eax
mov eax, dword [esp + 0x3c]
call fcn.0047b7a0
jmp 0x47bd42
mov ecx, dword [esp + 0x48]
mov edx, dword [ecx]
add ecx, 4
mov dword [esp + 0x48], ecx
mov byte [edx], al
jmp 0x47cac8
mov dword [esp], eax
call sub.msvcrt.dll_tolower
cmp eax, 0x78
je 0x47e72d
mov esi, edi
jmp 0x47e258
test esi, esi
jle 0x47e780
mov ecx, dword [esp + 0x98]
mov edx, dword [esp + 0x34]
sub esi, 1
mov eax, dword [esp + 0x20]
call fcn.0047b730
lea ecx, [edi + 2]
mov edi, dword [esp + 0x20]
test esi, esi
mov dword [esp + 0x98], eax
mov dword [esp + 0x54], ecx
mov ecx, ebp
mov byte [eax + edi], cl
je case.0x47bcf9.1
mov edi, 0x4d983f
jmp 0x47e709
mov dword [esp], eax
call sub.msvcrt.dll_tolower
movsx edx, byte [edi]
cmp eax, edx
jne case.0x47bcf9.1
xor eax, eax
test esi, esi
mov ecx, dword [esp + 0x98]
setg al
mov edx, dword [esp + 0x34]
add edi, 1
sub esi, eax
mov eax, dword [esp + 0x54]
call fcn.0047b730
mov ecx, dword [esp + 0x54]
cmp byte [edi], 0
mov dword [esp + 0x98], eax
lea edx, [ecx + 1]
mov dword [esp + 0x20], edx
mov edx, ecx
mov ecx, ebp
mov byte [eax + edx], cl
je 0x47d470
test esi, esi
je case.0x47bcf9.1
mov eax, dword [esp + 0x20]
mov dword [esp + 0x54], eax
mov edx, dword [esp + 0x1c]
mov eax, dword [esp + 0x18]
call fcn.0047b850
cmp eax, 0xffffffff
mov ebp, eax
jne 0x47e6a4
jmp case.0x47bcf9.1
mov ebp, ebx
mov ebx, dword [esp + 0x5c]
jmp 0x47d178
mov ecx, dword [esp + 0x98]
mov edx, dword [esp + 0x34]
mov eax, 1
sub esi, 2
call fcn.0047b730
mov ecx, ebp
mov dword [esp + 0x98], eax
mov edx, dword [esp + 0x1c]
mov byte [eax + 1], cl
mov eax, dword [esp + 0x28]
and ah, 0xfe
or eax, 0x40
mov dword [esp + 0x28], eax
mov eax, dword [esp + 0x18]
call fcn.0047b850
mov byte [esp + 0x60], 0x70
mov ebp, eax
mov dword [esp + 0x20], 2
jmp 0x47c6ea
mov ecx, dword [esp + 0x98]
mov edx, dword [esp + 0x34]
mov eax, dword [esp + 0x20]
call fcn.0047b730
lea ecx, [edi + 2]
mov edi, dword [esp + 0x20]
mov dword [esp + 0x98], eax
mov dword [esp + 0x54], ecx
mov ecx, ebp
mov byte [eax + edi], cl
jmp 0x47e69d