Function at 0x473a30
Capabilities:
Parse credit card information
Resolve function by parsing pe exports

Disassembly:
push ebp
push edi
push esi
push ebx
sub esp, 0x9c
mov edi, dword [eax]
mov dword [esp + 0x18], eax
test edi, edi
mov dword [esp + 0x10], edx
sete al
test edx, edx
mov dword [esp + 0x2c], ecx
sete dl
mov dword [esp + 0x6c], 0
or al, dl
mov dword [esp + 0x70], 0
mov dword [esp + 0x74], 0
mov dword [esp + 0x78], 0
jne 0x4752ee
mov dword [esp + 0x88], 0
lea ebx, [esp + 0x6a]
mov esi, 0x2e
mov dword [esp + 0x8c], 0
call sub.msvcrt.dll_localeconv
lea ecx, [esp + 0x88]
mov dword [esp + 8], 0x10
mov dword [esp + 0xc], ecx
mov eax, dword [eax]
mov dword [esp], ebx
mov dword [esp + 4], eax
call fcn.00482d40
mov word [esp + 0x3e], si
test eax, eax
jle 0x473ad2
movzx eax, word [esp + 0x6a]
mov word [esp + 0x3e], ax
mov dword [esp + 0x88], 0
lea edi, [esp + 0x88]
mov dword [esp + 0x8c], 0
call sub.msvcrt.dll_localeconv
mov dword [esp + 0xc], edi
mov dword [esp + 8], 0x10
mov eax, dword [eax + 4]
mov dword [esp], ebx
xor ebx, ebx
mov dword [esp + 4], eax
call fcn.00482d40
mov word [esp + 0x22], bx
test eax, eax
jle 0x473b24
movzx eax, word [esp + 0x6a]
mov word [esp + 0x22], ax
mov eax, dword [esp + 0x10]
movzx esi, word [eax]
test si, si
je 0x475276
mov eax, dword [esp + 0x2c]
xor ecx, ecx
mov dword [esp + 0x34], 0
xor ebp, ebp
mov dword [esp + 0x14], 0
mov dword [esp + 0x38], eax
mov word [esp + 0x3c], cx
mov dword [esp + 0x40], 0
mov dword [esp + 0x1c], 0
mov dword [esp + 0x44], 0
mov dword [esp + 0x30], 0
mov eax, dword [esp + 0x10]
lea ebx, [eax + 2]
cmp si, 0x25
je 0x473d38
movzx eax, si
mov dword [esp + 4], 8
mov dword [esp], eax
call sub.msvcrt.dll_iswctype
test eax, eax
jne 0x473c50
mov eax, dword [esp + 0x18]
lea edx, [esp + 0x70]
call fcn.00473930
mov ebp, eax
cmp ax, 0xffff
je 0x47523b
mov edx, dword [esp + 0x14]
test edx, edx
jne 0x473da0
cmp si, bp
je 0x473d20
mov dword [esp], 0
mov edx, dword [esp + 0x18]
movzx eax, bp
lea ecx, [esp + 0x70]
call fcn.004739d0
mov esi, dword [esp + 0x6c]
movzx ebx, word [esp + 0x3c]
test esi, esi
je 0x473c09
lea esi, [esi]
nop
mov eax, esi
mov esi, dword [esi + 4]
mov dword [esp], eax
call fcn.00483050
test esi, esi
jne 0x473bf8
mov esi, dword [esp + 0x1c]
mov dword [esp + 0x6c], 0
test esi, esi
je 0x473c2d
mov edi, dword [esp + 0x1c]
mov eax, dword [edi]
mov dword [esp], eax
call fcn.00483050
mov dword [edi], 0
mov eax, dword [esp + 0x78]
mov dword [esp], eax
call fcn.00483050
add esp, 0x9c
mov eax, ebx
pop ebx
pop esi
pop edi
pop ebp
ret
mov dword [esp + 0x10], ebx
mov dword [esp + 0x14], 1
mov eax, dword [esp + 0x10]
movzx esi, word [eax]
test si, si
jne 0x473b75
mov ebx, dword [esp + 0x14]
test ebx, ebx
je 0x473cbe
lea eax, [esp + 0x70]
mov esi, dword [esp + 0x18]
mov dword [esp + 0x28], eax
mov edi, eax
lea esi, [esi]
mov edx, edi
mov eax, esi
call fcn.00473930
mov dword [esp + 4], 8
movzx ebx, ax
mov dword [esp], ebx
call sub.msvcrt.dll_iswctype
test eax, eax
jne 0x473c88
mov dword [esp], 0
mov ecx, dword [esp + 0x28]
mov eax, ebx
mov edx, dword [esp + 0x18]
call fcn.004739d0
mov ebx, dword [esp + 0x6c]
mov esi, dword [esp + 0x78]
test ebx, ebx
je 0x473ce1
lea esi, [esi]
mov eax, ebx
mov ebx, dword [ebx + 4]
mov dword [esp], eax
call fcn.00483050
test ebx, ebx
jne 0x473cd0
mov ecx, dword [esp + 0x1c]
mov dword [esp + 0x6c], 0
test ecx, ecx
je 0x473d05
mov edi, dword [esp + 0x1c]
mov eax, dword [edi]
mov dword [esp], eax
call fcn.00483050
mov dword [edi], 0
movzx ebx, word [esp + 0x3c]
mov dword [esp], esi
call fcn.00483050
jmp 0x473c39
mov dword [esp + 0x14], 0
mov dword [esp + 0x10], ebx
jmp 0x473c5c
mov eax, dword [esp + 0x10]
mov dword [esp + 4], 4
movzx eax, word [eax + 2]
mov dword [esp], eax
call sub.msvcrt.dll_iswctype
test eax, eax
jne 0x473e30
mov dword [esp + 0x48], 0
movzx eax, word [ebx]
xor edx, edx
jmp 0x473d8f
cmp ax, 0x27
jne 0x473e98
mov ecx, edx
movzx eax, word [ebx + 2]
or ch, 1
cmp word [esp + 0x22], 0
cmovne edx, ecx
add ebx, 2
cmp ax, 0x2a
jne 0x473d70
movzx eax, word [ebx + 2]
or dl, 0x80
jmp 0x473d8c
movzx eax, ax
mov dword [esp + 4], 8
mov dword [esp], eax
call sub.msvcrt.dll_iswctype
test eax, eax
je 0x473bc6
mov edi, dword [esp + 0x18]
jmp 0x473de3
movzx eax, ax
mov dword [esp + 4], 8
mov dword [esp], eax
call sub.msvcrt.dll_iswctype
test eax, eax
je 0x473bc6
lea edx, [esp + 0x70]
mov eax, edi
call fcn.00473930
mov ebp, eax
cmp ax, 0xffff
jne 0x473dc8
movzx eax, word [esp + 0x3c]
test ax, ax
je 0x473e7a
mov esi, dword [esp + 0x6c]
movzx ebx, ax
test esi, esi
je 0x473c09
nop
mov eax, esi
mov esi, dword [esi + 4]
mov dword [esp], eax
call fcn.00483050
test esi, esi
jne 0x473e10
jmp 0x473c09
mov eax, dword [esp + 0x10]
lea esi, [eax + 4]
movzx eax, word [eax + 2]
lea edi, [eax - 0x30]
jmp 0x473e4d
movzx eax, word [esi]
lea edx, [edi + edi*4]
add esi, 2
lea edi, [eax + edx*2 - 0x30]
mov dword [esp + 4], 4
movzx eax, word [esi]
mov dword [esp], eax
call sub.msvcrt.dll_iswctype
test eax, eax
jne 0x473e40
cmp word [esi], 0x24
mov dword [esp + 0x48], edi
jne 0x473d58
lea ebx, [esi + 2]
jmp 0x473d60
lea edx, [esp + 0x78]
lea eax, [esp + 0x6c]
call fcn.004737b0
mov ebx, 0xffffffff
jmp 0x473c39
cmp ax, 0x49
jne 0x474130
movzx eax, word [ebx + 2]
cmp ax, 0x36
je 0x474110
or edx, 4
cmp ax, 0x33
jne 0x473d8c
cmp word [ebx + 4], 0x32
je 0x474150
mov dword [esp + 0x24], edx
add ebx, 2
xor esi, esi
jmp 0x473ee5
movzx eax, byte [ebx]
lea edx, [esi + esi*4]
add ebx, 2
lea esi, [eax + edx*2 - 0x30]
mov dword [esp + 4], 4
movzx eax, byte [ebx]
mov dword [esp], eax
call sub.msvcrt.dll_iswctype
test eax, eax
jne 0x473ed8
mov eax, 0xffffffff
test esi, esi
cmove esi, eax
movzx eax, word [ebx]
mov word [esp + 0x28], ax
test ax, ax
je 0x4748c3
sub eax, 0x4c
cmp ax, 0x2e
ja case.default.0x473f23
movzx eax, ax
jmp dword [eax*4 + 0x4cc1a8]
movzx eax, word [ebx + 2]
or dword [esp + 0x24], 4
add ebx, 2
mov word [esp + 0x28], ax
lea esi, [esi]
nop
cmp word [esp + 0x28], 0
je 0x4757e8
lea eax, [ebx + 2]
mov dword [esp + 0x10], eax
mov eax, dword [esp + 0x14]
test eax, eax
jne 0x474020
movzx ecx, word [esp + 0x28]
mov eax, ecx
and eax, 0xffffffdf
cmp ax, 0x43
je 0x474187
mov eax, ecx
cmp cx, 0x5b
je 0x474187
mov ecx, 5
cmp ax, 0x6e
jne 0x474020
mov eax, 1
shl eax, cl
test eax, 0x90c1
jne case.0x4741ce.51
cmp cx, 0xa
je 0x47467b
cmp cx, 5
je 0x4751f2
mov esi, dword [esp + 0x6c]
movzx ebx, word [esp + 0x3c]
test esi, esi
je 0x473c09
lea esi, [esi]
mov eax, esi
mov esi, dword [esi + 4]
mov dword [esp], eax
call fcn.00483050
test esi, esi
jne 0x473fc8
jmp 0x473c09
movzx eax, word [ebx + 2]
or dword [esp + 0x24], 0xc
add ebx, 2
mov word [esp + 0x28], ax
jmp case.0x473f23.1
movzx eax, word [ebx + 2]
mov edx, eax
and edx, 0xfffffff7
cmp dx, 0x53
je 0x4749c6
cmp ax, 0x73
je 0x4749c6
lea eax, [ebx + 2]
mov dword [esp + 0x10], eax
lea esi, [esi]
nop
call sub.msvcrt.dll__errno
mov eax, dword [eax]
mov dword [esp + 0x14], eax
call sub.msvcrt.dll__errno
mov dword [esp + 0x4c], ebx
mov edi, dword [esp + 0x18]
mov ebx, ebp
mov dword [eax], 0
jmp 0x474076
lea edx, [esp + 0x70]
mov eax, edi
call fcn.00473930
mov ebx, eax
movzx ebp, ax
cmp ax, 0xffff
je 0x47407c
mov dword [esp + 4], 8
mov dword [esp], ebp
call sub.msvcrt.dll_iswctype
test eax, eax
je 0x47415c
cmp bx, 0xffff
jne 0x474048
call sub.msvcrt.dll__errno
cmp dword [eax], 4
je 0x4750bd
mov ebp, 0xffff
mov ebx, 0xffffffff
jmp 0x47405e
movzx eax, word [ebx + 2]
or dword [esp + 0x24], 8
add ebx, 2
mov word [esp + 0x28], ax
jmp case.0x473f23.1
movzx eax, word [ebx + 2]
mov word [esp + 0x28], ax
cmp ax, 0x68
je 0x4749db
or dword [esp + 0x24], 2
add ebx, 2
jmp case.0x473f23.1
movzx eax, word [ebx + 2]
mov word [esp + 0x28], ax
cmp ax, 0x6c
je 0x474a07
or dword [esp + 0x24], 0x400
add ebx, 2
jmp case.0x473f23.1
movzx eax, word [ebx + 2]
mov word [esp + 0x28], ax
cmp ax, 0x6c
je 0x4749f1
or dword [esp + 0x24], 4
add ebx, 2
jmp case.0x473f23.1
cmp word [ebx + 4], 0x34
je 0x474140
or edx, 4
add ebx, 2
mov dword [esp + 0x24], edx
jmp 0x473ecf
mov dword [esp + 0x24], edx
jmp 0x473ecf
movzx eax, word [ebx + 6]
or edx, 0xc
add ebx, 4
jmp 0x473d8c
movzx eax, word [ebx + 6]
add ebx, 4
jmp 0x473d8c
mov edi, ebp
mov ebp, ebx
mov ebx, dword [esp + 0x4c]
call sub.msvcrt.dll__errno
mov ecx, dword [esp + 0x14]
mov edx, dword [esp + 0x18]
mov dword [eax], ecx
lea eax, [esp + 0x70]
mov dword [esp], 0
mov ecx, eax
mov eax, edi
call fcn.004739d0
movzx eax, word [esp + 0x28]
cmp ax, 0x63
je 0x4744a7
cmp ax, 0x73
je 0x474670
movzx eax, word [esp + 0x28]
cmp ax, 0x67
ja 0x476780
cmp ax, 0x24
jbe case.0x4741ce.1
movzx eax, word [esp + 0x28]
sub eax, 0x25
cmp ax, 0x42
ja case.0x4741ce.1
movzx eax, ax
jmp dword [eax*4 + 0x4cc264]
mov eax, dword [esp + 0x24]
mov edi, eax
and edi, 0x80
mov dword [esp + 0x14], edi
jne 0x474281
test ah, 6
je 0x4748ee
mov eax, dword [esp + 0x48]
test eax, eax
jne 0x4757b0
mov eax, dword [esp + 0x38]
mov ecx, dword [eax]
add eax, 4
mov dword [esp + 0x38], eax
mov dword [esp + 0x1c], ecx
mov eax, dword [esp + 0x1c]
test eax, eax
je 0x476027
mov dword [esp], 0xc8
call sub.msvcrt.dll_malloc
mov ecx, dword [esp + 0x1c]
mov dword [esp + 0x40], eax
mov dword [ecx], eax
test eax, eax
je 0x476a1d
mov ebx, dword [esp + 0x6c]
test ebx, ebx
je 0x47424f
mov edx, dword [ebx]
mov eax, ebx
lea ecx, [edx + 1]
cmp edx, 0x1f
jbe 0x47426b
mov dword [esp], 0x88
call sub.msvcrt.dll_malloc
mov ecx, 1
xor edx, edx
mov dword [eax], 0
mov dword [eax + 4], ebx
mov dword [eax], ecx
mov ecx, dword [esp + 0x1c]
mov dword [esp + 0x6c], eax
mov dword [eax + edx*4 + 8], ecx
mov dword [esp + 0x30], 0x64
lea eax, [esp + 0x70]
mov dword [esp + 0x28], eax
mov edx, eax
mov eax, dword [esp + 0x18]
call fcn.00473930
mov ebp, eax
cmp ax, 0xffff
je 0x47624f
mov eax, dword [esp + 0x24]
mov edi, dword [esp + 0x40]
and eax, 0x600
mov dword [esp + 0x48], eax
jmp 0x4742f8
mov edi, dword [esp + 0x1c]
mov ecx, dword [esp + 0x30]
mov edx, dword [edi]
lea ebx, [ecx + ecx]
mov edi, eax
lea ecx, [edx + ebx]
cmp eax, ecx
je 0x4750f6
test esi, esi
jle 0x4742df
sub esi, 1
je 0x4748a6
mov edx, dword [esp + 0x28]
mov eax, dword [esp + 0x18]
call fcn.00473930
mov ebp, eax
cmp ax, 0xffff
je 0x4748a6
movzx ebx, bp
mov dword [esp + 4], 8
mov dword [esp], ebx
call sub.msvcrt.dll_iswctype
test eax, eax
jne 0x475134
mov eax, dword [esp + 0x14]
test eax, eax
jne 0x4742d2
mov word [edi], bp
lea eax, [edi + 2]
mov edi, dword [esp + 0x48]
test edi, edi
jne 0x4742b8
mov edi, eax
jmp 0x4742d2
cmp esi, 0xffffffff
mov eax, 1
cmove esi, eax
mov eax, dword [esp + 0x24]
mov edi, eax
and edi, 0x80
mov dword [esp + 0x14], edi
jne 0x475153
test ah, 6
je 0x474943
mov edi, dword [esp + 0x48]
test edi, edi
jne 0x4758c4
mov eax, dword [esp + 0x38]
mov ecx, dword [eax]
add eax, 4
mov dword [esp + 0x38], eax
mov dword [esp + 0x1c], ecx
mov ebx, dword [esp + 0x1c]
test ebx, ebx
je 0x476027
mov eax, 0x400
cmp esi, eax
cmovle eax, esi
mov dword [esp + 0x30], eax
add eax, eax
mov dword [esp], eax
call sub.msvcrt.dll_malloc
mov ebx, eax
mov eax, dword [esp + 0x1c]
mov dword [eax], ebx
test ebx, ebx
je 0x476a1d
mov edi, dword [esp + 0x6c]
test edi, edi
je 0x4743bc
mov edx, dword [edi]
mov eax, edi
lea ecx, [edx + 1]
cmp edx, 0x1f
jbe 0x4743d8
mov dword [esp], 0x88
call sub.msvcrt.dll_malloc
mov ecx, 1
xor edx, edx
mov dword [eax], 0
mov dword [eax + 4], edi
mov dword [eax], ecx
mov ecx, dword [esp + 0x1c]
mov dword [esp + 0x6c], eax
mov dword [eax + edx*4 + 8], ecx
lea eax, [esp + 0x70]
mov dword [esp + 0x28], eax
mov edx, eax
mov eax, dword [esp + 0x18]
call fcn.00473930
mov ebp, eax
cmp ax, 0xffff
je 0x476045
mov edi, dword [esp + 0x24]
mov edx, ebp
and edi, 0x600
mov ebp, edi
jmp 0x474444
sub esi, 1
mov word [ebx], dx
lea edi, [ebx + 2]
test esi, esi
jle 0x475070
mov edx, dword [esp + 0x28]
mov eax, dword [esp + 0x18]
call fcn.00473930
mov edx, eax
cmp ax, 0xffff
je 0x475070
mov ebx, edi
test ebp, ebp
je 0x474418
mov eax, dword [esp + 0x1c]
mov ecx, dword [esp + 0x30]
mov eax, dword [eax]
add ecx, ecx
lea edi, [eax + ecx]
cmp ebx, edi
jne 0x474418
mov ebx, dword [esp + 0x30]
lea edi, [esi - 1]
mov dword [esp + 0x40], esi
cmp ebx, esi
mov esi, ecx
cmovle edi, ebx
add edi, ebx
lea ebx, [edi + edi]
mov dword [esp], eax
mov dword [esp + 4], ebx
mov dword [esp + 0x24], edx
call sub.msvcrt.dll_realloc
mov edx, dword [esp + 0x24]
test eax, eax
mov ebx, eax
je 0x4768dd
mov eax, dword [esp + 0x1c]
mov ecx, esi
mov esi, dword [esp + 0x40]
mov dword [esp + 0x30], edi
mov dword [eax], ebx
add ebx, ecx
jmp 0x474418
test byte [esp + 0x24], 4
jne case.0x4741ce.30
cmp esi, 0xffffffff
mov eax, 1
cmove esi, eax
mov eax, dword [esp + 0x24]
mov edi, eax
and edi, 0x80
mov dword [esp + 0x14], edi
jne 0x474569
test ah, 6
je 0x475780
mov edx, dword [esp + 0x48]
test edx, edx
jne 0x475fb8
mov eax, dword [esp + 0x38]
mov ecx, dword [eax]
add eax, 4
mov dword [esp + 0x38], eax
mov dword [esp + 0x1c], ecx
mov eax, dword [esp + 0x1c]
test eax, eax
je 0x476027
mov dword [esp], 0x64
call sub.msvcrt.dll_malloc
mov edi, dword [esp + 0x1c]
mov dword [esp + 0x44], eax
mov dword [edi], eax
test eax, eax
je 0x476a1d
mov ebx, dword [esp + 0x6c]
test ebx, ebx
je 0x474537
mov edx, dword [ebx]
mov eax, ebx
lea ecx, [edx + 1]
cmp edx, 0x1f
jbe 0x474553
mov dword [esp], 0x88
call sub.msvcrt.dll_malloc
mov ecx, 1
xor edx, edx
mov dword [eax], 0
mov dword [eax + 4], ebx
mov edi, dword [esp + 0x1c]
mov dword [eax], ecx
mov dword [esp + 0x6c], eax
mov dword [eax + edx*4 + 8], edi
mov dword [esp + 0x30], 0x64
lea eax, [esp + 0x70]
mov dword [esp + 0x28], eax
mov edx, eax
mov eax, dword [esp + 0x18]
call fcn.00473930
mov ebp, eax
cmp ax, 0xffff
je 0x475fd4
mov ebx, dword [esp + 0x24]
xor edi, edi
mov dword [esp + 0x88], 0
mov dword [esp + 0x8c], 0
and ebx, 0x480
mov dword [esp + 0x24], ebx
mov ebx, dword [esp + 0x44]
jmp 0x47460c
mov eax, dword [esp + 0x14]
movzx edx, bp
lea ecx, [esp + 0x88]
mov dword [esp + 8], ecx
test eax, eax
mov eax, edi
mov dword [esp + 4], edx
cmove eax, ebx
mov dword [esp], eax
call fcn.00482a40
cmp eax, 0xffffffff
je 0x475891
sub esi, 1
add ebx, eax
test esi, esi
jle 0x47527f
mov edx, dword [esp + 0x28]
mov eax, dword [esp + 0x18]
call fcn.00473930
mov ebp, eax
cmp ax, 0xffff
je 0x47527f
cmp dword [esp + 0x24], 0x400
jne 0x4745b8
call fcn.004827b0
mov ecx, dword [esp + 0x1c]
add eax, ebx
mov edx, dword [ecx]
mov ecx, dword [esp + 0x30]
add ecx, edx
cmp eax, ecx
jb 0x4745b8
mov ecx, dword [esp + 0x30]
sub ebx, edx
mov dword [esp + 0x30], esi
add ecx, ecx
mov esi, ecx
mov dword [esp + 4], esi
mov dword [esp], edx
call sub.msvcrt.dll_realloc
test eax, eax
je 0x4769fb
mov edx, dword [esp + 0x1c]
mov ecx, esi
add ebx, eax
mov esi, dword [esp + 0x30]
mov dword [esp + 0x30], ecx
mov dword [edx], eax
jmp 0x4745b8
test byte [esp + 0x24], 4
jne case.0x4741ce.46
mov eax, dword [esp + 0x24]
mov edi, eax
and edi, 0x80
mov dword [esp + 0x14], edi
jne 0x474727
test ah, 6
je 0x475748
mov edx, dword [esp + 0x48]
test edx, edx
jne 0x475fef
mov eax, dword [esp + 0x38]
mov edi, dword [eax]
add eax, 4
mov dword [esp + 0x38], eax
mov dword [esp + 0x1c], edi
mov eax, dword [esp + 0x1c]
test eax, eax
je 0x476027
mov dword [esp], 0x64
call sub.msvcrt.dll_malloc
mov edi, dword [esp + 0x1c]
mov dword [esp + 0x44], eax
mov dword [edi], eax
test eax, eax
je 0x476a1d
mov ebx, dword [esp + 0x6c]
test ebx, ebx
je 0x4746f5
mov edx, dword [ebx]
mov eax, ebx
lea ecx, [edx + 1]
cmp edx, 0x1f
jbe 0x474711
mov dword [esp], 0x88
call sub.msvcrt.dll_malloc
mov ecx, 1
xor edx, edx
mov dword [eax], 0
mov dword [eax + 4], ebx
mov edi, dword [esp + 0x1c]
mov dword [eax], ecx
mov dword [esp + 0x6c], eax
mov dword [eax + edx*4 + 8], edi
mov dword [esp + 0x30], 0x64
lea eax, [esp + 0x70]
mov dword [esp + 0x28], eax
mov edx, eax
mov eax, dword [esp + 0x18]
call fcn.00473930
mov ebp, eax
cmp ax, 0xffff
je 0x475fd4
mov eax, dword [esp + 0x24]
mov edi, dword [esp + 0x44]
mov dword [esp + 0x88], 0
mov dword [esp + 0x8c], 0
and eax, 0x600
mov dword [esp + 0x48], eax
lea esi, [esi]
movzx ebx, bp
mov dword [esp + 4], 8
mov dword [esp], ebx
call sub.msvcrt.dll_iswctype
test eax, eax
jne 0x475912
mov eax, dword [esp + 0x14]
test eax, eax
jne 0x474f90
mov eax, dword [esp + 0x48]
test eax, eax
jne 0x474970
mov eax, edi
lea ecx, [esp + 0x88]
mov dword [esp + 4], ebx
mov dword [esp + 8], ecx
mov dword [esp], eax
call fcn.00482a40
cmp eax, 0xffffffff
je 0x4758e0
add edi, eax
test esi, esi
jle 0x4747d0
sub esi, 1
je 0x4747e5
mov edx, dword [esp + 0x28]
mov eax, dword [esp + 0x18]
call fcn.00473930
mov ebp, eax
cmp ax, 0xffff
jne 0x474770
mov dword [esp + 0x44], edi
mov edx, dword [esp + 0x14]
test edx, edx
jne 0x4748b6
lea eax, [esp + 0x88]
lea ebx, [esp + 0x83]
mov dword [esp + 4], 0
mov dword [esp + 8], eax
mov dword [esp], ebx
call fcn.00482a40
mov esi, eax
test eax, eax
je 0x47485b
mov eax, dword [esp + 0x44]
lea edi, [eax + esi]
test dword [esp + 0x24], 0x600
je 0x474843
mov eax, dword [esp + 0x1c]
mov ecx, dword [esp + 0x30]
mov eax, dword [eax]
lea edx, [eax + ecx]
cmp edi, edx
jae 0x4769bd
mov eax, dword [esp + 0x44]
mov dword [esp + 8], esi
mov dword [esp + 4], ebx
mov dword [esp], eax
call sub.msvcrt.dll_memcpy
mov dword [esp + 0x44], edi
mov eax, dword [esp + 0x44]
mov edi, dword [esp + 0x1c]
mov byte [eax], 0
lea ebx, [eax + 1]
test edi, edi
je 0x47488f
mov eax, dword [edi]
test eax, eax
je 0x47488f
mov edx, ebx
sub edx, eax
cmp dword [esp + 0x30], edx
je 0x47488f
mov dword [esp + 4], edx
mov dword [esp], eax
call sub.msvcrt.dll_realloc
test eax, eax
je 0x47488f
mov dword [edi], eax
add word [esp + 0x3c], 1
mov dword [esp + 0x44], ebx
mov dword [esp + 0x1c], 0
jmp 0x473c5c
mov dword [esp + 0x40], edi
mov ebx, dword [esp + 0x14]
test ebx, ebx
je 0x4751a1
mov dword [esp + 0x14], 0
jmp 0x473c5c
mov esi, dword [esp + 0x6c]
movzx ebx, word [esp + 0x3c]
test esi, esi
je 0x473c09
lea esi, [esi]
mov eax, esi
mov esi, dword [esi + 4]
mov dword [esp], eax
call fcn.00483050
test esi, esi
jne 0x4748d8
jmp 0x473c09
mov eax, dword [esp + 0x48]
test eax, eax
jne 0x4757cc
mov eax, dword [esp + 0x38]
mov ecx, dword [eax]
add eax, 4
mov dword [esp + 0x38], eax
mov dword [esp + 0x40], ecx
mov eax, dword [esp + 0x40]
test eax, eax
jne 0x474281
jmp 0x474923
fstp st(0)
jmp 0x474923
fstp st(0)
jmp 0x474923
fstp st(0)
movzx eax, word [esp + 0x3c]
lea edx, [esp + 0x78]
mov ecx, dword [esp + 0x1c]
mov dword [esp], edx
lea edx, [esp + 0x6c]
call fcn.004738a0
mov ebx, eax
jmp 0x473c39
mov ecx, dword [esp + 0x48]
test ecx, ecx
jne 0x475879
mov eax, dword [esp + 0x38]
mov ebx, dword [eax]
add eax, 4
mov dword [esp + 0x38], eax
test ebx, ebx
jne 0x4743e6
jmp 0x474923
call fcn.004827b0
mov ecx, dword [esp + 0x1c]
add eax, edi
mov edx, dword [ecx]
mov ecx, dword [esp + 0x30]
add ecx, edx
cmp eax, ecx
jb 0x4747a3
mov ecx, dword [esp + 0x30]
sub edi, edx
mov dword [esp + 0x30], ebx
add ecx, ecx
mov ebx, ecx
mov dword [esp + 4], ebx
mov dword [esp], edx
call sub.msvcrt.dll_realloc
test eax, eax
je 0x47685a
mov edx, dword [esp + 0x1c]
mov ecx, ebx
mov ebx, dword [esp + 0x30]
mov dword [esp + 0x30], ecx
mov dword [edx], eax
add eax, edi
mov edi, eax
jmp 0x4747a5
or dword [esp + 0x24], 0x200
add ebx, 2
mov word [esp + 0x28], ax
jmp case.default.0x473f23
movzx eax, word [ebx + 4]
or dword [esp + 0x24], 1
add ebx, 4
mov word [esp + 0x28], ax
jmp case.0x473f23.1
movzx eax, word [ebx + 4]
or dword [esp + 0x24], 0xc
add ebx, 4
mov word [esp + 0x28], ax
jmp case.0x473f23.1
movzx eax, word [ebx + 4]
or dword [esp + 0x24], 0x404
add ebx, 4
mov word [esp + 0x28], ax
jmp case.0x473f23.1
xor eax, eax
test esi, esi
setg al
sub esi, eax
lea eax, [esp + 0x70]
mov dword [esp + 0x28], eax
mov edx, eax
mov eax, dword [esp + 0x18]
call fcn.00473930
mov dword [esp + 0x58], eax
cmp ax, 0xffff
je 0x475fd4
movzx eax, word [esp + 0x58]
sub eax, 0x2b
test ax, 0xfffd
jne 0x4753d3
test esi, esi
je 0x474923
mov edx, dword [esp + 0x28]
mov eax, dword [esp + 0x18]
call fcn.00473930
mov ebp, eax
cmp ax, 0xffff
je 0x474923
xor eax, eax
test esi, esi
setg al
sub esi, eax
movzx eax, bp
mov dword [esp], eax
mov dword [esp + 0x54], eax
call sub.msvcrt.dll_towlower
cmp ax, 0x6e
je 0x476078
cmp ax, 0x69
je 0x475e80
mov eax, 0x65
xor ebx, ebx
mov word [esp + 0x14], ax
test esi, esi
je 0x474ac3
cmp bp, 0x30
je 0x476194
mov eax, dword [esp + 0x24]
mov edi, dword [esp + 0x54]
mov byte [esp + 0x4c], 0
mov byte [esp + 0x50], 0
shr eax, 8
and eax, 1
mov byte [esp + 0x5c], al
nop
mov dword [esp + 4], 4
mov dword [esp], edi
call sub.msvcrt.dll_iswctype
test eax, eax
jne 0x474faf
cmp byte [esp + 0x4c], 0
jne 0x474ffb
test byte [esp + 0x24], 0x40
jne 0x474f97
test ebx, ebx
je 0x474b25
mov dword [esp], edi
call sub.msvcrt.dll_towlower
cmp ax, word [esp + 0x14]
je 0x4752c0
cmp byte [esp + 0x50], 0
je 0x475045
mov dword [esp], 0
mov ecx, dword [esp + 0x28]
mov eax, edi
mov edx, dword [esp + 0x18]
call fcn.004739d0
test ebx, ebx
je 0x474923
test byte [esp + 0x24], 0x40
je 0x474b5e
cmp ebx, 2
je 0x474923
lea eax, [esp + 0x74]
mov dword [esp + 0x4c], eax
mov ecx, dword [esp + 0x78]
mov edx, dword [esp + 0x4c]
mov eax, ebx
call fcn.00473830
mov edi, eax
mov dword [esp + 0x78], eax
xor eax, eax
mov word [edi + ebx*2], ax
mov eax, dword [esp + 0x24]
mov esi, eax
and esi, 0x80
test al, 8
lea eax, [esp + 0x7c]
jne 0x4759f7
test byte [esp + 0x24], 4
mov dword [esp + 4], eax
mov dword [esp], edi
je 0x4759b0
call fcn.00476ae0
test esi, esi
jne 0x47580f
mov ecx, dword [esp + 0x7c]
cmp edi, ecx
je 0x474919
cmp word [esp + 0x58], 0x2d
jne 0x474bce
fchs
mov esi, dword [esp + 0x48]
test esi, esi
jne 0x476389
mov esi, dword [esp + 0x38]
mov edx, dword [esi]
lea eax, [esi + 4]
mov dword [esp + 0x38], eax
fstp qword [edx]
cmp edi, ecx
je 0x474923
add word [esp + 0x3c], 1
mov dword [esp + 0x14], 0
jmp 0x473c5c
movzx ebp, word [esp + 0x28]
sub ebp, 0x58
cmp bp, 0x20
ja case.0x474c15.1
movzx ebp, bp
jmp dword [ebp*4 + 0x4cc370]
or dword [esp + 0x24], 0x10
mov dword [esp + 0x34], 0xa
lea eax, [esp + 0x70]
mov dword [esp + 0x28], eax
mov edx, eax
mov eax, dword [esp + 0x18]
call fcn.00473930
mov ebx, eax
mov ebp, eax
cmp ax, 0xffff
je 0x475fd4
lea eax, [eax - 0x2b]
mov dword [esp + 0x14], 0
test ax, 0xfffd
je 0x47583c
test esi, esi
setne al
cmp bp, 0x30
jne 0x475620
test al, al
je 0x475620
mov ebx, dword [esp + 0x14]
mov ecx, dword [esp + 0x78]
mov eax, ebx
lea edi, [ebx + 1]
test esi, esi
jle 0x475a41
lea edx, [esp + 0x74]
sub esi, 1
call fcn.00473830
mov edx, 0x30
mov word [eax + ebx*2], dx
mov edx, dword [esp + 0x28]
mov dword [esp + 0x78], eax
mov eax, dword [esp + 0x18]
call fcn.00473930
mov ebp, eax
test esi, esi
jne 0x475a6e
mov ecx, dword [esp + 0x34]
mov eax, 8
test ecx, ecx
cmovne eax, ecx
mov dword [esp + 0x34], eax
mov dword [esp + 0x14], edi
movzx ebx, bp
cmp dword [esp + 0x14], 1
mov esi, dword [esp + 0x78]
jne 0x474cef
movzx eax, word [esi]
sub eax, 0x2b
test ax, 0xfffd
je 0x475728
mov dword [esp], 0
mov ecx, dword [esp + 0x28]
mov eax, ebx
mov edx, dword [esp + 0x18]
call fcn.004739d0
mov eax, dword [esp + 0x14]
lea edi, [eax + eax]
lea eax, [esp + 0x74]
mov dword [esp + 0x4c], eax
mov edx, dword [esp + 0x4c]
mov eax, dword [esp + 0x14]
mov ecx, esi
call fcn.00473830
mov ebx, eax
mov dword [esp + 0x78], eax
xor eax, eax
mov word [ebx + edi], ax
mov edi, dword [esp + 0x24]
mov eax, edi
and eax, 0x10
mov dword [esp + 0x14], eax
test edi, 8
je 0x4755b8
test eax, eax
mov eax, dword [esp + 0x34]
mov dword [esp], ebx
mov dword [esp + 8], eax
lea eax, [esp + 0x7c]
mov dword [esp + 4], eax
je 0x475976
call fcn.00476e40
mov esi, edx
cmp ebx, dword [esp + 0x7c]
je 0x474923
and edi, 0x80
jne 0x4748b6
mov ebx, dword [esp + 0x48]
test ebx, ebx
jne 0x476236
mov ecx, dword [esp + 0x38]
lea edi, [ecx + 4]
mov edx, dword [ecx]
mov dword [esp + 0x38], edi
mov dword [edx], eax
mov dword [edx + 4], esi
jmp 0x474bf1
lea eax, [esp + 0x70]
mov edx, eax
mov dword [esp + 0x28], eax
mov eax, dword [esp + 0x18]
call fcn.00473930
mov edx, eax
mov ebp, eax
cmp ax, 0xffff
je 0x475fd4
movzx eax, ax
cmp dx, 0x25
je 0x4748b6
mov ecx, dword [esp + 0x28]
mov edx, dword [esp + 0x18]
mov dword [esp], 1
call fcn.004739d0
jmp 0x474923
mov eax, dword [esp + 0x24]
mov edi, eax
mov ecx, eax
and edi, 0x80
and ecx, 4
mov dword [esp + 0x4c], edi
mov dword [esp + 0x14], ecx
je 0x475327
test edi, edi
jne 0x474ead
test ah, 6
je 0x475e1b
mov ecx, dword [esp + 0x48]
test ecx, ecx
jne 0x476363
mov eax, dword [esp + 0x38]
mov ecx, dword [eax]
add eax, 4
mov dword [esp + 0x38], eax
mov dword [esp + 0x1c], ecx
mov edx, dword [esp + 0x1c]
test edx, edx
je 0x476027
mov dword [esp], 0xc8
call sub.msvcrt.dll_malloc
mov edi, dword [esp + 0x1c]
mov dword [esp + 0x40], eax
mov dword [edi], eax
test eax, eax
je 0x476a1d
mov edi, dword [esp + 0x6c]
test edi, edi
je 0x474e7b
mov edx, dword [edi]
mov eax, edi
lea ecx, [edx + 1]
cmp edx, 0x1f
jbe 0x474e97
mov dword [esp], 0x88
call sub.msvcrt.dll_malloc
mov ecx, 1
xor edx, edx
mov dword [eax], 0
mov dword [eax + 4], edi
mov edi, dword [esp + 0x1c]
mov dword [eax], ecx
mov dword [esp + 0x6c], eax
mov dword [eax + edx*4 + 8], edi
mov dword [esp + 0x30], 0x64
movzx eax, word [ebx + 2]
mov word [esp + 0x48], ax
cmp ax, 0x5e
jne 0x474ec7
lea eax, [ebx + 4]
mov dword [esp + 0x10], eax
movzx eax, word [ebx + 4]
mov edi, dword [esp + 0x10]
test esi, esi
mov edx, 0x7fffffff
cmovs esi, edx
cmp ax, 0x5d
lea edx, [edi + 2]
mov dword [esp + 0x7c], edi
cmovne edx, edi
mov eax, edx
jmp 0x474ef9
cmp edx, 0x5d
je 0x4753dd
mov ecx, eax
movzx edx, word [eax]
add eax, 2
test edx, edx
jne 0x474ef0
mov esi, dword [esp + 0x6c]
movzx ebx, word [esp + 0x3c]
test esi, esi
je 0x473c09
lea esi, [esi]
lea esi, [esi]
mov eax, esi
mov esi, dword [esi + 4]
mov dword [esp], eax
call fcn.00483050
test esi, esi
jne 0x474f20
jmp 0x473c09
mov dword [esp + 0x34], 0x10
jmp case.0x474c15.1
or dword [esp + 0x24], 0x10
mov dword [esp + 0x34], 0
jmp case.0x474c15.1
mov dword [esp + 0x34], 0xa
jmp case.0x474c15.1
mov eax, dword [esp + 0x24]
mov dword [esp + 0x34], 0x10
and eax, 0xfffffff1
or eax, 0x24
mov dword [esp + 0x24], eax
jmp case.0x474c15.1
mov dword [esp + 0x34], 8
jmp case.0x474c15.1
xor eax, eax
jmp 0x4747a5
mov dword [esp + 4], pe_nt_image_headers32
mov dword [esp], edi
call sub.msvcrt.dll_iswctype
test eax, eax
je 0x474b0e
mov ecx, dword [esp + 0x78]
mov eax, ebx
lea edx, [esp + 0x74]
call fcn.00473830
mov dword [esp + 0x78], eax
mov word [eax + ebx*2], bp
add ebx, 1
test esi, esi
je 0x474b46
mov edx, dword [esp + 0x28]
mov eax, dword [esp + 0x18]
call fcn.00473930
mov ebp, eax
cmp ax, 0xffff
je 0x474b46
xor eax, eax
test esi, esi
movzx edi, bp
setg al
sub esi, eax
jmp 0x474ae0
lea eax, [ebx + 0x7fffffff]
mov ecx, dword [esp + 0x78]
lea edx, [eax + eax]
mov dword [esp + 0x54], edx
movzx edx, word [esp + 0x14]
cmp word [ecx + eax*2], dx
jne 0x474b25
lea eax, [ebp - 0x2b]
test ax, 0xfffd
jne 0x474b25
mov eax, ebx
lea edx, [esp + 0x74]
add ebx, 1
call fcn.00473830
mov edi, dword [esp + 0x54]
mov dword [esp + 0x78], eax
mov word [eax + edi + 2], bp
jmp 0x474fc9
cmp word [esp + 0x3e], bp
je 0x4752fe
cmp byte [esp + 0x5c], 0
je 0x474b30
cmp word [esp + 0x22], bp
je 0x474fc9
jmp 0x474b30
mov eax, dword [esp + 0x1c]
mov dword [esp + 0x40], edi
mov ebp, edx
test eax, eax
je 0x4750aa
mov edi, dword [esp + 0x1c]
mov eax, dword [edi]
test eax, eax
je 0x4750aa
mov edx, dword [esp + 0x40]
mov ecx, dword [esp + 0x30]
sub edx, eax
add ecx, ecx
cmp ecx, edx
je 0x4750aa
mov dword [esp + 4], edx
mov dword [esp], eax
call sub.msvcrt.dll_realloc
test eax, eax
je 0x4750aa
mov dword [edi], eax
add word [esp + 0x3c], 1
mov dword [esp + 0x1c], 0
jmp 0x473c5c
movzx eax, word [esp + 0x3c]
test ax, ax
je 0x473e7a
mov esi, dword [esp + 0x6c]
movzx ebx, ax
test esi, esi
je 0x473c09
lea esi, [esi]
mov eax, esi
mov esi, dword [esi + 4]
mov dword [esp], eax
call fcn.00483050
test esi, esi
jne 0x4750e0
jmp 0x473c09
mov word [esp + 0x40], bp
mov ebp, esi
mov esi, ebx
lea eax, [ebx + ebx]
mov dword [esp], edx
mov dword [esp + 4], eax
call sub.msvcrt.dll_realloc
mov edi, eax
test eax, eax
je 0x476711
mov eax, dword [esp + 0x1c]
mov ecx, ebx
mov ebx, esi
mov esi, ebp
mov dword [esp + 0x30], ecx
movzx ebp, word [esp + 0x40]
mov dword [eax], edi
add edi, ebx
jmp 0x4742d2
mov ecx, dword [esp + 0x28]
mov edx, dword [esp + 0x18]
mov eax, ebx
mov dword [esp + 0x40], edi
mov dword [esp], 1
call fcn.004739d0
jmp 0x4748aa
lea eax, [esp + 0x70]
mov dword [esp + 0x28], eax
mov edx, eax
mov eax, dword [esp + 0x18]
call fcn.00473930
mov ebp, eax
cmp ax, 0xffff
je 0x476045
mov ebx, dword [esp + 0x18]
mov edi, dword [esp + 0x28]
jmp 0x475195
mov edx, edi
mov eax, ebx
call fcn.00473930
mov ebp, eax
cmp ax, 0xffff
je 0x4748b6
sub esi, 1
test esi, esi
jg 0x475180
jmp 0x4748b6
mov eax, dword [esp + 0x40]
mov edi, dword [esp + 0x1c]
xor ecx, ecx
mov word [eax], cx
lea ebx, [eax + 2]
test edi, edi
je 0x4751db
mov eax, dword [edi]
test eax, eax
je 0x4751db
mov ecx, dword [esp + 0x30]
mov edx, ebx
sub edx, eax
add ecx, ecx
cmp ecx, edx
je 0x4751db
mov dword [esp + 4], edx
mov dword [esp], eax
call sub.msvcrt.dll_realloc
test eax, eax
je 0x4751db
mov dword [edi], eax
add word [esp + 0x3c], 1
mov dword [esp + 0x40], ebx
mov dword [esp + 0x1c], 0
jmp 0x473c5c
mov ecx, dword [esp + 0x24]
mov eax, ecx
and eax, 0x80
mov dword [esp + 0x14], eax
jne 0x4748b6
and ecx, 8
mov eax, dword [esp + 0x70]
je 0x475b2a
mov edi, dword [esp + 0x48]
test edi, edi
jne 0x47621e
mov ecx, dword [esp + 0x38]
lea edi, [ecx + 4]
mov edx, dword [ecx]
mov dword [esp + 0x38], edi
mov dword [edx], eax
mov dword [edx + 4], 0
jmp 0x473c5c
movzx eax, word [esp + 0x3c]
test ax, ax
je 0x473e7a
mov esi, dword [esp + 0x6c]
movzx ebx, ax
test esi, esi
je 0x473c09
lea esi, [esi]
nop
mov eax, esi
mov esi, dword [esi + 4]
mov dword [esp], eax
call fcn.00483050
test esi, esi
jne 0x475260
jmp 0x473c09
xor esi, esi
xor ebx, ebx
jmp 0x473d0a
mov eax, dword [esp + 0x14]
mov dword [esp + 0x44], ebx
test eax, eax
jne 0x4748b6
mov edi, dword [esp + 0x1c]
test edi, edi
je 0x4750aa
mov eax, dword [edi]
test eax, eax
je 0x4750aa
mov edx, ebx
sub edx, eax
cmp dword [esp + 0x30], edx
jne 0x475098
jmp 0x4750aa
mov ecx, dword [esp + 0x78]
mov eax, ebx
lea edx, [esp + 0x74]
call fcn.00473830
movzx ecx, word [esp + 0x14]
mov byte [esp + 0x4c], 1
mov dword [esp + 0x78], eax
mov word [eax + ebx*2], cx
add ebx, 1
mov byte [esp + 0x50], 1
jmp 0x474fc9
call sub.msvcrt.dll__errno
mov dword [eax], 0x16
jmp 0x473e87
mov ecx, dword [esp + 0x78]
mov eax, ebx
lea edx, [esp + 0x74]
call fcn.00473830
movzx edi, word [esp + 0x3e]
mov byte [esp + 0x50], 1
mov dword [esp + 0x78], eax
mov word [eax + ebx*2], di
add ebx, 1
jmp 0x474fc9
mov eax, dword [esp + 0x4c]
test eax, eax
jne 0x474ead
test dword [esp + 0x24], 0x600
je 0x475e50
mov eax, dword [esp + 0x48]
test eax, eax
jne 0x4763a6
mov eax, dword [esp + 0x38]
mov edi, dword [eax]
add eax, 4
mov dword [esp + 0x38], eax
mov dword [esp + 0x1c], edi
mov eax, dword [esp + 0x1c]
test eax, eax
je 0x476027
mov dword [esp], 0x64
call sub.msvcrt.dll_malloc
mov ecx, dword [esp + 0x1c]
mov dword [esp + 0x44], eax
mov dword [ecx], eax
test eax, eax
je 0x476a1d
mov edi, dword [esp + 0x6c]
test edi, edi
je 0x47539c
mov edx, dword [edi]
mov eax, edi
lea ecx, [edx + 1]
cmp edx, 0x1f
jbe 0x4753b8
mov dword [esp], 0x88
call sub.msvcrt.dll_malloc
mov ecx, 1
xor edx, edx
mov dword [eax], 0
mov dword [eax + 4], edi
mov dword [eax], ecx
mov ecx, dword [esp + 0x1c]
mov dword [esp + 0x6c], eax
mov dword [eax + edx*4 + 8], ecx
mov dword [esp + 0x30], 0x64
jmp 0x474ead
movzx ebp, word [esp + 0x58]
jmp 0x474a86
mov dword [esp + 0x10], eax
mov ebx, dword [esp + 0x14]
mov eax, dword [esp + 0x70]
mov dword [esp + 0x50], eax
test ebx, ebx
je 0x475b63
lea eax, [esp + 0x70]
mov dword [esp + 0x14], ecx
mov dword [esp + 0x28], eax
mov edx, eax
mov eax, dword [esp + 0x18]
call fcn.00473930
mov ebp, eax
cmp ax, 0xffff
je 0x475fd4
mov eax, dword [esp + 0x24]
mov ebx, dword [esp + 0x14]
mov edi, esi
and eax, 0x600
mov dword [esp + 0x54], eax
mov eax, dword [esp + 0x7c]
mov dword [esp + 0x14], eax
cmp eax, ebx
jb 0x475450
jmp 0x47553e
cmp dx, bp
je 0x4754a0
add eax, 2
cmp eax, ebx
jae 0x475542
movzx edx, word [eax]
cmp dx, 0x2d
jne 0x475440
movzx esi, word [eax + 2]
test si, si
je 0x475440
lea ecx, [eax + 2]
cmp ebx, ecx
je 0x475440
mov ecx, dword [esp + 0x14]
cmp eax, ecx
je 0x475440
movzx ecx, word [eax - 2]
cmp si, cx
jb 0x475440
jmp 0x475485
cmp cx, bp
je 0x47548d
add ecx, 1
cmp si, cx
jae 0x475480
mov word [esp + 0x6a], cx
cmp si, cx
jae 0x4754a0
add eax, 4
jmp 0x475448
cmp word [esp + 0x48], 0x5e
jne 0x475542
mov dword [esp], 0
mov ecx, dword [esp + 0x28]
movzx eax, bp
mov edx, dword [esp + 0x18]
call fcn.004739d0
mov eax, dword [esp + 0x50]
cmp dword [esp + 0x70], eax
je 0x474923
mov edi, dword [esp + 0x4c]
mov dword [esp + 0x14], 0
test edi, edi
jne 0x473c5c
mov eax, dword [esp + 0x40]
mov edi, dword [esp + 0x1c]
xor esi, esi
mov word [eax], si
lea ebx, [eax + 2]
test edi, edi
je 0x47551f
mov eax, dword [edi]
test eax, eax
je 0x47551f
mov ecx, dword [esp + 0x30]
mov edx, ebx
sub edx, eax
add ecx, ecx
cmp ecx, edx
je 0x47551f
mov dword [esp + 4], edx
mov dword [esp], eax
call sub.msvcrt.dll_realloc
test eax, eax
je 0x47551f
mov dword [edi], eax
add word [esp + 0x3c], 1
mov dword [esp + 0x14], 0
mov dword [esp + 0x40], ebx
mov dword [esp + 0x1c], 0
jmp 0x473c5c
mov eax, dword [esp + 0x14]
cmp ebx, eax
jne 0x475552
cmp word [esp + 0x48], 0x5e
jne 0x4754ac
mov ecx, dword [esp + 0x4c]
test ecx, ecx
jne 0x47558a
mov ecx, dword [esp + 0x40]
mov edx, dword [esp + 0x54]
mov word [ecx], bp
lea eax, [ecx + 2]
test edx, edx
je 0x475f67
mov esi, dword [esp + 0x1c]
mov ecx, dword [esp + 0x30]
mov dword [esp + 0x40], eax
mov edx, dword [esi]
add ecx, ecx
add edx, ecx
cmp eax, edx
je 0x4763de
sub edi, 1
je 0x4754c3
mov edx, dword [esp + 0x28]
mov eax, dword [esp + 0x18]
call fcn.00473930
mov ebp, eax
cmp ax, 0xffff
jne 0x47542b
jmp 0x4754c3
mov eax, dword [esp + 0x34]
mov esi, dword [esp + 0x14]
mov dword [esp], ebx
mov dword [esp + 8], eax
test esi, esi
lea eax, [esp + 0x7c]
mov dword [esp + 4], eax
je 0x475931
call sub.msvcrt.dll_wcstol
cmp dword [esp + 0x7c], ebx
je 0x474923
test byte [esp + 0x24], 0x80
jne 0x4748b6
test byte [esp + 0x24], 4
je 0x4762d0
mov ecx, dword [esp + 0x48]
test ecx, ecx
jne 0x4762b5
mov ecx, dword [esp + 0x38]
mov edx, dword [ecx]
add ecx, 4
mov dword [esp + 0x38], ecx
mov dword [edx], eax
jmp 0x474bf1
mov ecx, dword [esp + 0x34]
mov edx, 0xa
test ecx, ecx
cmovne edx, ecx
mov dword [esp + 0x34], edx
cmp bp, 0xffff
je 0x476778
test al, al
je 0x476778
mov eax, dword [esp + 0x24]
mov edi, dword [esp + 0x14]
shr eax, 8
xor eax, 1
mov dword [esp + 0x4c], eax
jmp 0x4756be
mov dword [esp + 4], 4
mov dword [esp], ebx
call sub.msvcrt.dll_iswctype
test eax, eax
je 0x47567f
mov ecx, dword [esp + 0x34]
lea eax, [ebx - 0x2f]
cmp eax, ecx
jle 0x4756dc
cmp dword [esp + 0x34], 0xa
jne 0x4756ff
test byte [esp + 0x4c], 1
jne 0x4756ff
cmp word [esp + 0x22], bp
jne 0x4756ff
xor eax, eax
test esi, esi
mov edx, dword [esp + 0x28]
setg al
sub esi, eax
mov eax, dword [esp + 0x18]
call fcn.00473930
mov ebp, eax
cmp ax, 0xffff
je 0x475830
test esi, esi
je 0x475830
cmp dword [esp + 0x34], 0x10
movzx ebx, bp
jne 0x475660
mov dword [esp + 4], pe_nt_image_headers32
mov dword [esp], ebx
call sub.msvcrt.dll_iswctype
test eax, eax
je 0x4756ff
cmp word [esp + 0x22], bp
je 0x475694
mov ecx, dword [esp + 0x78]
mov eax, edi
lea edx, [esp + 0x74]
call fcn.00473830
mov word [eax + edi*2], bp
add edi, 1
mov dword [esp + 0x78], eax
jmp 0x475694
mov dword [esp + 0x14], edi
mov eax, dword [esp + 0x14]
test eax, eax
jne 0x474cd4
test byte [esp + 0x24], 0x20
je 0x475728
mov dword [esp], ebx
call sub.msvcrt.dll_towlower
cmp ax, 0x28
je 0x475aae
xor eax, eax
mov ecx, dword [esp + 0x28]
mov edx, dword [esp + 0x18]
mov dword [esp], eax
mov eax, ebx
call fcn.004739d0
jmp 0x474923
mov eax, dword [esp + 0x48]
test eax, eax
jne 0x475f9c
mov eax, dword [esp + 0x38]
mov ecx, dword [eax]
add eax, 4
mov dword [esp + 0x38], eax
mov dword [esp + 0x44], ecx
mov eax, dword [esp + 0x44]
test eax, eax
jne 0x474727
jmp 0x474923
mov eax, dword [esp + 0x48]
test eax, eax
jne 0x47600b
mov eax, dword [esp + 0x38]
mov ecx, dword [eax]
add eax, 4
mov dword [esp + 0x38], eax
mov dword [esp + 0x44], ecx
mov eax, dword [esp + 0x44]
test eax, eax
jne 0x474569
jmp 0x474923
mov edx, dword [esp + 0x48]
mov ecx, dword [esp + 0x2c]
sub edx, 1
lea eax, [ecx + edx*4]
cmove eax, ecx
mov eax, dword [eax]
mov dword [esp + 0x1c], eax
jmp 0x474211
mov edx, dword [esp + 0x48]
mov ecx, dword [esp + 0x2c]
sub edx, 1
lea eax, [ecx + edx*4]
cmove eax, ecx
mov eax, dword [eax]
mov dword [esp + 0x40], eax
jmp 0x47490b
mov esi, dword [esp + 0x6c]
movzx ebx, word [esp + 0x3c]
test esi, esi
je 0x473c09
mov eax, esi
mov esi, dword [esi + 4]
mov dword [esp], eax
call fcn.00483050
test esi, esi
jne 0x4757f9
jmp 0x473c09
fstp st(0)
jmp 0x475819
fstp st(0)
jmp 0x475819
fstp st(0)
cmp edi, dword [esp + 0x7c]
jne 0x4748b6
jmp 0x474923
mov dword [esp + 0x14], edi
movzx ebx, ax
jmp 0x475703
mov ecx, dword [esp + 0x78]
lea eax, [esp + 0x74]
mov edx, eax
xor eax, eax
call fcn.00473830
mov edx, dword [esp + 0x28]
mov dword [esp + 0x78], eax
mov word [eax], bx
xor eax, eax
test esi, esi
setg al
sub esi, eax
mov eax, dword [esp + 0x18]
call fcn.00473930
mov dword [esp + 0x14], 1
mov ebp, eax
jmp 0x474c5f
mov edx, dword [esp + 0x48]
mov ecx, dword [esp + 0x2c]
sub edx, 1
lea eax, [ecx + edx*4]
cmove eax, ecx
mov ebx, dword [eax]
jmp 0x47495c
movzx eax, word [esp + 0x3c]
test ax, ax
je 0x473e7a
mov esi, dword [esp + 0x6c]
movzx ebx, ax
test esi, esi
je 0x473c09
mov eax, esi
mov esi, dword [esi + 4]
mov dword [esp], eax
call fcn.00483050
test esi, esi
jne 0x4758ae
jmp 0x473c09
mov edx, dword [esp + 0x48]
mov ecx, dword [esp + 0x2c]
sub edx, 1
lea eax, [ecx + edx*4]
cmove eax, ecx
mov eax, dword [eax]
mov dword [esp + 0x1c], eax
jmp 0x474374
call sub.msvcrt.dll__errno
mov esi, dword [esp + 0x6c]
movzx ebx, word [esp + 0x3c]
mov dword [eax], 0x2a
test esi, esi
je 0x473c09
mov eax, esi
mov esi, dword [esi + 4]
mov dword [esp], eax
call fcn.00483050
test esi, esi
jne 0x4758fc
jmp 0x473c09
mov ecx, dword [esp + 0x28]
mov edx, dword [esp + 0x18]
mov eax, ebx
mov dword [esp + 0x44], edi
mov dword [esp], 1
call fcn.004739d0
jmp 0x4747e9
call sub.msvcrt.dll_wcstoul
cmp ebx, dword [esp + 0x7c]
je 0x474923
test byte [esp + 0x24], 0x80
jne 0x4748b6
test byte [esp + 0x24], 4
je 0x47633e
mov edi, dword [esp + 0x48]
test edi, edi
jne 0x4762b5
mov ecx, dword [esp + 0x38]
mov edx, dword [ecx]
lea edi, [ecx + 4]
mov dword [esp + 0x38], edi
mov dword [edx], eax
jmp 0x474bf1
call fcn.00477160
mov esi, edx
cmp ebx, dword [esp + 0x7c]
je 0x474923
test byte [esp + 0x24], 0x80
jne 0x473c5c
mov edx, dword [esp + 0x48]
test edx, edx
jne 0x476236
mov ecx, dword [esp + 0x38]
mov edx, dword [ecx]
add ecx, 4
mov dword [esp + 0x38], ecx
jmp 0x474d99
call fcn.00476b70
test esi, esi
jne 0x475813
mov ecx, dword [esp + 0x7c]
cmp edi, ecx
je 0x47491d
fld st(0)
mov ebx, dword [esp + 0x48]
cmp word [esp + 0x58], 0x2d
fchs
fcmovne st(0), st(1)
fstp st(1)
test ebx, ebx
jne 0x4764e2
mov esi, dword [esp + 0x38]
mov edx, dword [esi]
lea eax, [esi + 4]
mov dword [esp + 0x38], eax
fstp dword [edx]
jmp 0x474be9
mov dword [esp + 4], eax
mov dword [esp], edi
call fcn.00476cc0
test esi, esi
jne 0x475817
mov ecx, dword [esp + 0x7c]
cmp edi, ecx
je 0x474921
cmp word [esp + 0x58], 0x2d
jne 0x475a21
fchs
mov eax, dword [esp + 0x48]
test eax, eax
jne 0x4762f7
mov esi, dword [esp + 0x38]
mov edx, dword [esi]
lea eax, [esi + 4]
fstp xword [edx]
mov dword [esp + 0x38], eax
jmp 0x474be9
mov ebx, dword [esp + 0x14]
lea eax, [esp + 0x74]
mov edx, eax
mov eax, ebx
call fcn.00473830
mov edx, 0x30
mov word [eax + ebx*2], dx
mov edx, dword [esp + 0x28]
mov dword [esp + 0x78], eax
mov eax, dword [esp + 0x18]
call fcn.00473930
mov ebp, eax
movzx eax, ax
mov dword [esp], eax
call sub.msvcrt.dll_towlower
cmp ax, 0x78
je 0x476282
mov eax, dword [esp + 0x34]
test eax, eax
jne 0x475a93
mov dword [esp + 0x34], 8
test esi, esi
je 0x474ccd
cmp bp, 0xffff
je 0x474ccd
mov dword [esp + 0x14], edi
jmp 0x475644
mov ebp, 0x6e
mov esi, 0x4cc182
jmp 0x475ac6
movzx ebp, word [esi + 2]
add esi, 2
test bp, bp
je 0x475af7
mov edx, dword [esp + 0x28]
mov eax, dword [esp + 0x18]
call fcn.00473930
mov ebx, eax
cmp eax, 0xffff
je 0x475728
movzx edi, ax
mov dword [esp], edi
call sub.msvcrt.dll_towlower
cmp bp, ax
je 0x475aba
mov ebx, edi
jmp 0x475728
lea eax, [esp + 0x74]
mov ecx, dword [esp + 0x78]
mov ebp, ebx
mov edi, 2
mov dword [esp + 0x4c], eax
mov edx, eax
xor eax, eax
call fcn.00473830
mov dword [esp + 0x14], 1
mov esi, eax
mov eax, 0x30
mov word [esi], ax
jmp 0x474d14
mov ecx, dword [esp + 0x24]
and ecx, 4
mov dword [esp + 0x14], ecx
je 0x475f70
mov esi, dword [esp + 0x48]
test esi, esi
jne 0x476428
mov ecx, dword [esp + 0x38]
lea edi, [ecx + 4]
mov edx, dword [ecx]
mov dword [esp + 0x38], edi
mov dword [edx], eax
mov dword [esp + 0x14], 0
jmp 0x473c5c
lea eax, [esp + 0x70]
mov dword [esp + 0x54], ecx
mov dword [esp + 0x28], eax
mov edx, eax
mov eax, dword [esp + 0x18]
call fcn.00473930
mov ecx, dword [esp + 0x54]
cmp ax, 0xffff
mov ebp, eax
je 0x476645
mov eax, dword [esp + 0x24]
movzx edi, word [esp + 0x48]
mov dword [esp + 0x58], esi
mov esi, ecx
mov dword [esp + 0x88], 0
mov dword [esp + 0x8c], 0
and eax, 0x600
mov dword [esp + 0x54], eax
mov eax, dword [esp + 0x7c]
mov dword [esp + 0x48], eax
cmp eax, esi
jb 0x475be0
jmp 0x475d23
cmp dx, bp
je 0x475c40
add eax, 2
cmp eax, esi
jae 0x475d27
movzx edx, word [eax]
cmp dx, 0x2d
jne 0x475bd0
movzx ebx, word [eax + 2]
test bx, bx
je 0x475bd0
lea ecx, [eax + 2]
cmp esi, ecx
je 0x475bd0
mov ecx, dword [esp + 0x48]
cmp eax, ecx
je 0x475bd0
movzx ecx, word [eax - 2]
cmp bx, cx
jb 0x475bd0
add ecx, 1
cmp cx, bp
je 0x475c2d
cmp bx, cx
jae 0x475c25
jmp 0x475c2d
cmp cx, bp
je 0x475c2d
add ecx, 1
cmp bx, cx
jae 0x475c20
mov word [esp + 0x6a], cx
cmp bx, cx
jae 0x475c40
add eax, 4
jmp 0x475bd8
cmp di, 0x5e
jne 0x475d27
mov dword [esp], 0
mov ecx, dword [esp + 0x28]
movzx eax, bp
mov edx, dword [esp + 0x18]
call fcn.004739d0
mov eax, dword [esp + 0x50]
cmp dword [esp + 0x70], eax
je 0x474923
mov eax, dword [esp + 0x4c]
test eax, eax
jne 0x473c5c
lea eax, [esp + 0x88]
lea ebx, [esp + 0x83]
mov dword [esp + 4], 0
mov dword [esp + 8], eax
mov dword [esp], ebx
call fcn.00482a40
mov esi, eax
test eax, eax
je 0x475cd0
test dword [esp + 0x24], 0x600
jne 0x4767b0
mov eax, dword [esp + 0x44]
lea edi, [eax + esi]
mov eax, dword [esp + 0x44]
mov dword [esp + 8], esi
mov dword [esp + 4], ebx
mov dword [esp], eax
call sub.msvcrt.dll_memcpy
mov dword [esp + 0x44], edi
mov eax, dword [esp + 0x44]
mov edi, dword [esp + 0x1c]
mov byte [eax], 0
lea ebx, [eax + 1]
test edi, edi
je 0x475d04
mov eax, dword [edi]
test eax, eax
je 0x475d04
mov edx, ebx
sub edx, eax
cmp dword [esp + 0x30], edx
je 0x475d04
mov dword [esp + 4], edx
mov dword [esp], eax
call sub.msvcrt.dll_realloc
test eax, eax
je 0x475d04
mov dword [edi], eax
add word [esp + 0x3c], 1
mov dword [esp + 0x14], 0
mov dword [esp + 0x44], ebx
mov dword [esp + 0x1c], 0
jmp 0x473c5c
mov eax, dword [esp + 0x48]
cmp eax, esi
jne 0x475d35
cmp di, 0x5e
jne 0x475c4a
mov ebx, dword [esp + 0x4c]
movzx eax, bp
mov dword [esp + 0x48], eax
test ebx, ebx
je 0x475da0
xor ebx, ebx
lea eax, [esp + 0x88]
mov dword [esp], ebx
mov dword [esp + 8], eax
mov eax, dword [esp + 0x48]
mov dword [esp + 4], eax
call fcn.00482a40
cmp eax, 0xffffffff
je 0x476805
add dword [esp + 0x44], eax
sub dword [esp + 0x58], 1
je 0x475c61
mov edx, dword [esp + 0x28]
mov eax, dword [esp + 0x18]
call fcn.00473930
mov ebp, eax
cmp ax, 0xffff
jne 0x475bb8
jmp 0x475c61
mov ecx, dword [esp + 0x54]
mov ebx, dword [esp + 0x44]
test ecx, ecx
je 0x475d46
call fcn.004827b0
mov ecx, dword [esp + 0x1c]
mov edx, dword [ecx]
mov ecx, dword [esp + 0x44]
add eax, ecx
mov ecx, dword [esp + 0x30]
add ecx, edx
cmp eax, ecx
jb 0x475d46
mov ecx, dword [esp + 0x30]
mov ebx, dword [esp + 0x44]
mov dword [esp + 0x30], esi
add ecx, ecx
sub ebx, edx
mov esi, ecx
mov eax, dword [esp + 0x1c]
mov dword [esp + 4], esi
mov eax, dword [eax]
mov dword [esp], eax
call sub.msvcrt.dll_realloc
mov edx, eax
test eax, eax
je 0x4766b0
mov eax, dword [esp + 0x1c]
mov ecx, esi
add ebx, edx
mov esi, dword [esp + 0x30]
mov dword [esp + 0x44], ebx
mov dword [eax], edx
movzx eax, bp
mov dword [esp + 0x30], ecx
mov dword [esp + 0x48], eax
jmp 0x475d46
mov eax, dword [esp + 0x48]
test eax, eax
jne 0x4763c2
mov eax, dword [esp + 0x38]
mov ecx, dword [eax]
add eax, 4
mov dword [esp + 0x38], eax
mov dword [esp + 0x40], ecx
mov eax, dword [esp + 0x40]
test eax, eax
jne 0x474ead
jmp 0x474923
mov ebp, dword [esp + 0x48]
test ebp, ebp
jne 0x4764a7
mov eax, dword [esp + 0x38]
mov edi, dword [eax]
add eax, 4
mov dword [esp + 0x38], eax
mov dword [esp + 0x44], edi
mov edi, dword [esp + 0x44]
test edi, edi
jne 0x474ead
jmp 0x474923
lea eax, [esp + 0x74]
mov ecx, dword [esp + 0x78]
mov ebx, 1
mov dword [esp + 0x4c], eax
mov edx, eax
xor eax, eax
call fcn.00473830
mov word [eax], bp
mov ebp, eax
mov dword [esp + 0x78], eax
jmp 0x475f0c
mov edx, dword [esp + 0x28]
mov eax, dword [esp + 0x18]
call fcn.00473930
mov word [esp + 0x50], ax
mov edi, eax
cmp ax, 0xffff
je 0x475f10
movzx eax, ax
mov dword [esp], eax
call sub.msvcrt.dll_towlower
cmp ax, word [ebx + ebx + 0x4cc194]
jne 0x475f10
xor eax, eax
test esi, esi
mov edx, dword [esp + 0x4c]
mov ecx, ebp
setg al
sub esi, eax
mov eax, ebx
call fcn.00473830
mov ebp, eax
mov dword [esp + 0x78], eax
lea eax, [ebx + 1]
cmp word [eax + eax + 0x4cc194], 0
lea edx, [eax + eax]
mov word [ebp + edx - 2], di
je 0x476441
mov ebx, eax
test esi, esi
jne 0x475ea5
mov esi, dword [esp + 0x6c]
movzx ebx, word [esp + 0x3c]
mov dword [esp + 0x14], ebp
test esi, esi
je 0x475f32
mov eax, esi
mov esi, dword [esi + 4]
mov dword [esp], eax
call fcn.00483050
test esi, esi
jne 0x475f21
mov edx, dword [esp + 0x1c]
mov dword [esp + 0x6c], 0
test edx, edx
je 0x475f56
mov edi, dword [esp + 0x1c]
mov eax, dword [edi]
mov dword [esp], eax
call fcn.00483050
mov dword [edi], 0
mov eax, dword [esp + 0x14]
mov dword [esp], eax
call fcn.00483050
jmp 0x473c39
mov dword [esp + 0x40], eax
jmp 0x47558a
test byte [esp + 0x24], 2
je 0x47615e
mov ebx, dword [esp + 0x48]
test ebx, ebx
jne 0x4769a4
mov ecx, dword [esp + 0x38]
lea edi, [ecx + 4]
mov edx, dword [ecx]
mov dword [esp + 0x38], edi
mov word [edx], ax
jmp 0x473c5c
mov edx, dword [esp + 0x48]
mov ecx, dword [esp + 0x2c]
sub edx, 1
lea eax, [ecx + edx*4]
cmove eax, ecx
mov eax, dword [eax]
mov dword [esp + 0x44], eax
jmp 0x475765
mov edx, dword [esp + 0x48]
mov ecx, dword [esp + 0x2c]
sub edx, 1
lea eax, [ecx + edx*4]
cmove eax, ecx
mov eax, dword [eax]
mov dword [esp + 0x1c], eax
jmp 0x4744f9
movzx ecx, word [esp + 0x3c]
mov eax, 0xffffffff
test cx, cx
je 0x474928
movzx eax, cx
jmp 0x474928
mov edx, dword [esp + 0x48]
mov ecx, dword [esp + 0x2c]
sub edx, 1
lea eax, [ecx + edx*4]
cmove eax, ecx
mov eax, dword [eax]
mov dword [esp + 0x1c], eax
jmp 0x4746b7
mov edx, dword [esp + 0x48]
mov ecx, dword [esp + 0x2c]
sub edx, 1
lea eax, [ecx + edx*4]
cmove eax, ecx
mov eax, dword [eax]
mov dword [esp + 0x44], eax
jmp 0x47579d
lea edx, [esp + 0x78]
movzx eax, word [esp + 0x3c]
xor ecx, ecx
mov dword [esp], edx
lea edx, [esp + 0x6c]
call fcn.004738a0
mov ebx, eax
jmp 0x473c39
movzx eax, word [esp + 0x3c]
test ax, ax
je 0x473e7a
mov esi, dword [esp + 0x6c]
movzx ebx, ax
test esi, esi
je 0x473c09
mov eax, esi
mov esi, dword [esi + 4]
mov dword [esp], eax
call fcn.00483050
test esi, esi
jne 0x476062
jmp 0x473c09
lea eax, [esp + 0x74]
mov ecx, dword [esp + 0x78]
mov ebx, 1
mov dword [esp + 0x4c], eax
mov edx, eax
xor eax, eax
call fcn.00473830
mov word [eax], bp
mov ebp, eax
mov dword [esp + 0x78], eax
jmp 0x4760ff
mov edx, dword [esp + 0x28]
mov eax, dword [esp + 0x18]
call fcn.00473930
mov word [esp + 0x14], ax
mov edi, eax
cmp ax, 0xffff
je 0x476103
movzx eax, ax
mov dword [esp], eax
call sub.msvcrt.dll_towlower
cmp ax, word [ebx + ebx + 0x4cc18c]
jne 0x476103
xor eax, eax
test esi, esi
mov edx, dword [esp + 0x4c]
mov ecx, ebp
setg al
sub esi, eax
mov eax, ebx
add ebx, 1
call fcn.00473830
cmp word [ebx + ebx + 0x4cc18c], 0
mov dword [esp + 0x78], eax
mov ebp, eax
mov word [eax + ebx*2 - 2], di
je 0x47637f
test esi, esi
jne 0x47609d
mov esi, dword [esp + 0x6c]
movzx ebx, word [esp + 0x3c]
mov ecx, ebp
mov edi, ebp
test esi, esi
je 0x476127
mov eax, esi
mov esi, dword [esi + 4]
mov dword [esp], eax
call fcn.00483050
test esi, esi
jne 0x476114
mov ecx, edi
mov esi, dword [esp + 0x1c]
mov dword [esp + 0x6c], 0
test esi, esi
je 0x476151
mov edi, dword [esp + 0x1c]
mov dword [esp + 0x10], ecx
mov eax, dword [edi]
mov dword [esp], eax
call fcn.00483050
xor ecx, ecx
mov dword [edi], ecx
mov ecx, dword [esp + 0x10]
mov dword [esp], ecx
call fcn.00483050
jmp 0x473c39
mov ecx, dword [esp + 0x24]
and ecx, 1
mov dword [esp + 0x14], ecx
je 0x4764c3
cmp dword [esp + 0x48], 0
jne 0x47662c
mov ecx, dword [esp + 0x38]
lea edi, [ecx + 4]
mov edx, dword [ecx]
mov dword [esp + 0x38], edi
xor ecx, ecx
mov byte [edx], al
mov dword [esp + 0x14], ecx
jmp 0x473c5c
lea eax, [esp + 0x74]
mov ecx, dword [esp + 0x78]
mov edx, eax
mov dword [esp + 0x4c], eax
xor eax, eax
call fcn.00473830
mov edx, dword [esp + 0x28]
mov ecx, eax
mov dword [esp + 0x78], eax
mov eax, 0x30
mov word [ecx], ax
mov eax, dword [esp + 0x18]
mov dword [esp + 0x50], ecx
call fcn.00473930
test esi, esi
mov ecx, dword [esp + 0x50]
mov edi, eax
mov ebp, eax
jle 0x4761e9
movzx eax, ax
sub esi, 1
mov ebx, 1
mov dword [esp + 0x54], eax
je 0x474ac3
movzx eax, di
mov dword [esp + 0x14], ecx
mov dword [esp], eax
call sub.msvcrt.dll_towlower
mov ecx, dword [esp + 0x14]
cmp ax, 0x78
je 0x47665e
movzx eax, bp
mov word [esp + 0x14], 0x65
mov ebx, 1
mov dword [esp + 0x54], eax
jmp 0x474ac3
mov ecx, dword [esp + 0x48]
mov edi, dword [esp + 0x2c]
sub ecx, 1
lea edx, [edi + ecx*4]
cmove edx, edi
mov edx, dword [edx]
jmp 0x47522d
mov edi, dword [esp + 0x2c]
mov ecx, dword [esp + 0x48]
mov edx, edi
sub ecx, 1
je 0x476248
lea edx, [edi + ecx*4]
mov edx, dword [edx]
jmp 0x474d99
movzx eax, word [esp + 0x3c]
test ax, ax
je 0x473e7a
mov esi, dword [esp + 0x6c]
movzx ebx, ax
test esi, esi
je 0x473c09
mov eax, esi
mov esi, dword [esi + 4]
mov dword [esp], eax
call fcn.00483050
test esi, esi
jne 0x47626c
jmp 0x473c09
test dword [esp + 0x34], 0xffffffef
jne 0x475a93
xor eax, eax
test esi, esi
mov edx, dword [esp + 0x28]
setg al
sub esi, eax
mov eax, dword [esp + 0x18]
call fcn.00473930
mov dword [esp + 0x34], 0x10
mov ebp, eax
jmp 0x475a93
mov edi, dword [esp + 0x2c]
mov ecx, dword [esp + 0x48]
mov edx, edi
sub ecx, 1
je 0x4762c7
lea edx, [edi + ecx*4]
mov edx, dword [edx]
mov dword [edx], eax
jmp 0x474bf1
test byte [esp + 0x24], 2
je 0x476314
cmp dword [esp + 0x48], 0
jne 0x476797
mov edi, dword [esp + 0x38]
mov edx, dword [edi]
add edi, 4
mov dword [esp + 0x38], edi
mov word [edx], ax
jmp 0x474bf1
mov esi, dword [esp + 0x2c]
mov edx, dword [esp + 0x48]
mov eax, esi
sub edx, 1
je 0x476309
lea eax, [esi + edx*4]
mov edx, dword [eax]
mov eax, dword [esp + 0x38]
jmp 0x475a36
test byte [esp + 0x24], 1
je 0x476558
cmp dword [esp + 0x48], 0
jne 0x476529
mov ecx, dword [esp + 0x38]
mov edx, dword [ecx]
add ecx, 4
mov dword [esp + 0x38], ecx
mov byte [edx], al
jmp 0x474bf1
test byte [esp + 0x24], 2
je 0x4764ff
cmp dword [esp + 0x48], 0
jne 0x476797
mov edi, dword [esp + 0x38]
lea ecx, [edi + 4]
mov edx, dword [edi]
mov dword [esp + 0x38], ecx
jmp 0x4762ef
mov edx, dword [esp + 0x48]
mov ecx, dword [esp + 0x2c]
sub edx, 1
lea eax, [ecx + edx*4]
cmove eax, ecx
mov eax, dword [eax]
mov dword [esp + 0x1c], eax
jmp 0x474e3d
movzx ebp, word [esp + 0x14]
jmp 0x474b66
mov esi, dword [esp + 0x2c]
mov edx, dword [esp + 0x48]
mov eax, esi
sub edx, 1
je 0x47639b
lea eax, [esi + edx*4]
mov edx, dword [eax]
mov eax, dword [esp + 0x38]
jmp 0x474be3
mov edx, dword [esp + 0x48]
mov edi, dword [esp + 0x2c]
sub edx, 1
lea eax, [edi + edx*4]
cmove eax, edi
mov eax, dword [eax]
mov dword [esp + 0x1c], eax
jmp 0x47535e
mov edx, dword [esp + 0x48]
mov ecx, dword [esp + 0x2c]
sub edx, 1
lea eax, [ecx + edx*4]
cmove eax, ecx
mov eax, dword [eax]
mov dword [esp + 0x40], eax
jmp 0x475e38
mov dword [esp + 0x14], ebx
mov esi, ebp
mov ebx, ecx
mov ebp, edi
mov edi, ecx
lea eax, [ebx + ebx]
mov dword [esp + 4], eax
mov eax, dword [esp + 0x1c]
mov eax, dword [eax]
mov dword [esp], eax
call sub.msvcrt.dll_realloc
test eax, eax
je 0x476848
mov ecx, edi
mov edi, ebp
mov ebp, esi
mov esi, dword [esp + 0x1c]
mov edx, ebx
mov ebx, dword [esp + 0x14]
mov dword [esi], eax
add eax, ecx
mov dword [esp + 0x40], eax
mov dword [esp + 0x30], edx
jmp 0x47558a
mov edi, dword [esp + 0x2c]
mov ecx, dword [esp + 0x48]
mov edx, edi
sub ecx, 1
je 0x47643a
lea edx, [edi + ecx*4]
mov edx, dword [edx]
jmp 0x475b54
mov dword [esp + 0x14], ebp
movzx ebp, word [esp + 0x50]
mov dword [esp + 0x54], ebx
mov ebx, eax
mov dword [esp + 0x5c], edx
test esi, esi
je 0x474b66
mov edx, dword [esp + 0x28]
mov eax, dword [esp + 0x18]
call fcn.00473930
mov dword [esp + 0x50], eax
mov ebp, eax
cmp ax, 0xffff
je 0x474b66
movzx edi, ax
mov dword [esp], edi
call sub.msvcrt.dll_towlower
cmp ax, 0x69
je 0x4768f9
xor eax, eax
mov ecx, dword [esp + 0x28]
mov edx, dword [esp + 0x18]
mov dword [esp], eax
mov eax, edi
call fcn.004739d0
jmp 0x474b66
mov edx, dword [esp + 0x48]
mov ecx, dword [esp + 0x2c]
sub edx, 1
lea eax, [ecx + edx*4]
cmove eax, ecx
mov eax, dword [eax]
mov dword [esp + 0x44], eax
jmp 0x475e6d
cmp dword [esp + 0x48], 0
jne 0x476611
mov ecx, dword [esp + 0x38]
mov edx, dword [ecx]
lea edi, [ecx + 4]
mov dword [esp + 0x38], edi
mov dword [edx], eax
jmp 0x473c5c
mov esi, dword [esp + 0x2c]
mov edx, dword [esp + 0x48]
mov eax, esi
sub edx, 1
je 0x4764f4
lea eax, [esi + edx*4]
mov edx, dword [eax]
mov eax, dword [esp + 0x38]
jmp 0x4759ec
test byte [esp + 0x24], 1
je 0x4765cc
cmp dword [esp + 0x48], 0
jne 0x4765a2
mov ecx, dword [esp + 0x38]
mov edx, dword [ecx]
lea edi, [ecx + 4]
mov dword [esp + 0x38], edi
mov byte [edx], al
jmp 0x474bf1
mov ebx, dword [esp + 0x2c]
mov edx, dword [esp + 0x48]
xor ecx, ecx
jmp 0x47653a
mov ecx, 1
sub edx, 1
jne 0x476535
test cl, cl
je 0x47654f
mov ecx, dword [esp + 0x2c]
mov edi, dword [esp + 0x48]
lea ebx, [ecx + edi*4 - 4]
mov edx, dword [ebx]
mov byte [edx], al
jmp 0x474bf1
cmp dword [esp + 0x48], 0
jne 0x476573
mov edi, dword [esp + 0x38]
mov edx, dword [edi]
lea ecx, [edi + 4]
mov dword [esp + 0x38], ecx
mov dword [edx], eax
jmp 0x474bf1
mov ebx, dword [esp + 0x2c]
mov edx, dword [esp + 0x48]
xor ecx, ecx
jmp 0x476584
mov ecx, 1
sub edx, 1
jne 0x47657f
test cl, cl
je 0x476599
mov ecx, dword [esp + 0x2c]
mov edi, dword [esp + 0x48]
lea ebx, [ecx + edi*4 - 4]
mov edx, dword [ebx]
mov dword [edx], eax
jmp 0x474bf1
mov ebx, dword [esp + 0x2c]
mov edx, dword [esp + 0x48]
xor ecx, ecx
jmp 0x4765b3
mov ecx, 1
sub edx, 1
jne 0x4765ae
test cl, cl
je 0x47654f
mov edi, dword [esp + 0x2c]
mov ecx, dword [esp + 0x48]
lea ebx, [edi + ecx*4 - 4]
mov edx, dword [ebx]
jmp 0x476551
cmp dword [esp + 0x48], 0
jne 0x4765e7
mov edi, dword [esp + 0x38]
mov edx, dword [edi]
add edi, 4
mov dword [esp + 0x38], edi
mov dword [edx], eax
jmp 0x474bf1
mov ebx, dword [esp + 0x2c]
mov edx, dword [esp + 0x48]
xor ecx, ecx
jmp 0x4765f8
mov ecx, 1
sub edx, 1
jne 0x4765f3
test cl, cl
je 0x476599
mov edi, dword [esp + 0x2c]
mov ecx, dword [esp + 0x48]
lea ebx, [edi + ecx*4 - 4]
mov edx, dword [ebx]
jmp 0x47659b
mov edi, dword [esp + 0x2c]
mov ecx, dword [esp + 0x48]
mov edx, edi
sub ecx, 1
je 0x476623
lea edx, [edi + ecx*4]
mov edx, dword [edx]
mov dword [edx], eax
jmp 0x473c5c
mov edi, dword [esp + 0x2c]
mov ecx, dword [esp + 0x48]
mov edx, edi
sub ecx, 1
je 0x47663e
lea edx, [edi + ecx*4]
mov edx, dword [edx]
jmp 0x476187
movzx edi, word [esp + 0x3c]
or eax, 0xffffffff
test di, di
je 0x474928
movzx eax, di
jmp 0x474928
mov edx, dword [esp + 0x4c]
mov eax, 1
call fcn.00473830
mov edx, dword [esp + 0x28]
mov dword [esp + 0x78], eax
mov word [eax + 2], di
mov eax, dword [esp + 0x24]
and ah, 0xfe
or eax, 0x40
mov dword [esp + 0x24], eax
mov eax, dword [esp + 0x18]
call fcn.00473930
mov ebp, eax
test esi, esi
jle 0x4766c8
movzx eax, ax
mov word [esp + 0x14], 0x70
sub esi, 1
mov ebx, 2
mov dword [esp + 0x54], eax
jmp 0x474ac3
call fcn.004827b0
add eax, ebx
cmp eax, esi
jae 0x4766e0
call fcn.004827b0
lea esi, [eax + ebx]
jmp 0x475ddd
movzx eax, ax
mov word [esp + 0x14], 0x70
mov ebx, 2
mov dword [esp + 0x54], eax
jmp 0x474ac3
or eax, 0xffffffff
test dword [esp + 0x24], 0x400
jne 0x474928
mov eax, dword [esp + 0x1c]
xor edx, edx
mov dword [esp + 0x1c], edx
mov eax, dword [eax]
mov byte [eax + ebx], 0
movzx eax, word [esp + 0x3c]
add eax, 1
movzx eax, ax
jmp 0x474928
mov eax, dword [esp + 0x30]
add eax, 1
cmp eax, ebx
jae 0x476730
mov edi, dword [esp + 0x1c]
mov ebx, eax
mov edx, dword [edi]
jmp 0x4750ff
test dword [esp + 0x24], 0x400
jne 0x473e7a
mov eax, dword [esp + 0x1c]
movzx ebx, word [esp + 0x3c]
mov eax, dword [eax]
add ebx, 1
movzx ebx, bx
mov word [eax + esi - 2], 0
mov esi, dword [esp + 0x6c]
test esi, esi
je 0x473c2d
mov eax, esi
mov esi, dword [esi + 4]
mov dword [esp], eax
call fcn.00483050
test esi, esi
jne 0x476762
jmp 0x473c2d
movzx ebx, bp
jmp 0x475703
movzx eax, word [esp + 0x28]
lea ecx, [eax - 0x69]
cmp cx, 0xf
jbe 0x473f8e
jmp case.0x4741ce.1
mov edi, dword [esp + 0x2c]
mov ecx, dword [esp + 0x48]
mov edx, edi
sub ecx, 1
je 0x4767a9
lea edx, [edi + ecx*4]
mov edx, dword [edx]
jmp 0x4762ef
mov eax, dword [esp + 0x1c]
mov edx, dword [eax]
mov eax, dword [esp + 0x44]
lea edi, [eax + esi]
mov eax, dword [esp + 0x30]
add eax, edx
cmp edi, eax
jb 0x475cb8
mov ecx, dword [esp + 0x44]
mov dword [esp], edx
sub ecx, edx
lea edi, [esi + ecx + 1]
mov dword [esp + 0x14], ecx
mov dword [esp + 4], edi
call sub.msvcrt.dll_realloc
mov ecx, dword [esp + 0x14]
test eax, eax
je 0x476815
mov edx, dword [esp + 0x1c]
mov dword [esp + 0x30], edi
mov dword [edx], eax
add eax, ecx
mov dword [esp + 0x44], eax
lea edi, [eax + esi]
jmp 0x475cb8
call sub.msvcrt.dll__errno
mov dword [eax], 0x2a
jmp 0x474923
mov edx, ecx
or eax, 0xffffffff
test dword [esp + 0x24], 0x400
jne 0x474928
mov eax, dword [esp + 0x1c]
xor edi, edi
mov eax, dword [eax]
mov byte [eax + edx], 0
movzx eax, word [esp + 0x3c]
mov dword [esp + 0x1c], edi
add eax, 1
movzx eax, ax
jmp 0x474928
mov eax, dword [esp + 0x30]
add eax, 1
cmp eax, ebx
jae 0x476878
mov ebx, eax
jmp 0x4763ea
call fcn.004827b0
add eax, edi
cmp eax, ebx
jae 0x4768ac
call fcn.004827b0
lea ebx, [eax + edi]
mov eax, dword [esp + 0x1c]
mov edx, dword [eax]
jmp 0x474999
or eax, 0xffffffff
test dword [esp + 0x24], 0x400
jne 0x474928
mov eax, dword [esp + 0x1c]
xor ebp, ebp
mov dword [esp + 0x1c], ebp
mov eax, dword [eax]
mov word [eax + edi - 2], 0
movzx eax, word [esp + 0x3c]
add eax, 1
movzx eax, ax
jmp 0x474928
or eax, 0xffffffff
test dword [esp + 0x24], 0x400
jne 0x474928
mov eax, dword [esp + 0x1c]
xor ecx, ecx
mov dword [esp + 0x1c], ecx
mov eax, dword [eax]
mov byte [eax + edi], 0
movzx eax, word [esp + 0x3c]
add eax, 1
movzx eax, ax
jmp 0x474928
mov eax, dword [esp + 0x30]
lea ebx, [eax + 1]
cmp ebx, edi
jae 0x473e7a
mov eax, dword [esp + 0x1c]
mov edi, ebx
mov eax, dword [eax]
jmp 0x47446f
test esi, esi
jle 0x476900
sub esi, 1
mov ecx, dword [esp + 0x14]
mov edx, dword [esp + 0x4c]
mov eax, ebx
call fcn.00473830
mov ebx, dword [esp + 0x54]
mov ecx, dword [esp + 0x5c]
mov dword [esp + 0x14], 0x4cc19c
movzx edi, word [esp + 0x50]
mov dword [esp + 0x78], eax
add ebx, 2
mov word [eax + ecx], di
jmp 0x47699b
mov edx, dword [esp + 0x28]
mov eax, dword [esp + 0x18]
call fcn.00473930
mov edi, eax
mov ebp, eax
cmp ax, 0xffff
je 0x474923
movzx eax, ax
mov dword [esp], eax
call sub.msvcrt.dll_towlower
mov ecx, dword [esp + 0x14]
cmp ax, word [ecx + 2]
jne 0x474923
test esi, esi
jle 0x47696c
sub esi, 1
mov ecx, dword [esp + 0x78]
mov edx, dword [esp + 0x4c]
mov eax, ebx
add ebx, 1
call fcn.00473830
add dword [esp + 0x14], 2
mov dword [esp + 0x78], eax
mov word [eax + ebx*2 - 2], di
mov eax, dword [esp + 0x14]
cmp word [eax + 2], 0
je 0x474b66
test esi, esi
jne 0x476931
jmp 0x474923
mov edi, dword [esp + 0x2c]
mov ecx, dword [esp + 0x48]
mov edx, edi
sub ecx, 1
je 0x4769b6
lea edx, [edi + ecx*4]
mov edx, dword [edx]
jmp 0x475f94
mov edx, dword [esp + 0x44]
mov dword [esp], eax
sub edx, eax
lea edi, [esi + edx + 1]
mov dword [esp + 0x28], edx
mov dword [esp + 4], edi
call sub.msvcrt.dll_realloc
mov edx, dword [esp + 0x28]
test eax, eax
je 0x476817
mov ecx, dword [esp + 0x1c]
mov dword [esp + 0x30], edi
mov dword [ecx], eax
add eax, edx
mov dword [esp + 0x44], eax
lea edi, [eax + esi]
jmp 0x474843
call fcn.004827b0
add eax, ebx
cmp eax, esi
jae 0x473e7a
call fcn.004827b0
lea esi, [eax + ebx]
mov eax, dword [esp + 0x1c]
mov edx, dword [eax]
jmp 0x47463b
or eax, 0xffffffff
test dword [esp + 0x24], 0x400
jne 0x474928
jmp 0x474923