Function at 0x40f090
Capabilities:
Parse credit card information

Disassembly:
push ebp
push edi
push esi
push ebx
sub esp, 0xbc
mov dword [esp + 0x28], eax
mov dword [esp + 0x1c], edx
mov dword [esp + 0x3c], ecx
mov dword [esp + 0x84], 0
mov dword [esp + 0x88], 0
mov dword [esp + 0x8c], 0
mov dword [esp + 0x90], 0
test eax, eax
je 0x410c80
mov ebp, dword [eax]
test ebp, ebp
sete al
test edx, edx
sete dl
or al, dl
jne 0x410c80
mov dword [esp + 0xa0], 0
mov dword [esp + 0xa4], 0
call sym._localeconv
mov eax, dword [eax]
mov dword [esp + 0x60], eax
call sym._localeconv
mov edi, dword [eax + 4]
mov dword [esp + 0x38], edi
test edi, edi
je 0x40f12b
xor eax, eax
cmp byte [edi], 0
cmovne eax, edi
mov dword [esp + 0x38], eax
mov eax, dword [esp + 0x1c]
movzx eax, byte [eax]
test al, al
je 0x41091e
mov esi, dword [esp + 0x3c]
mov dword [esp + 0x44], 0
xor ebp, ebp
mov dword [esp + 0x20], 0
mov dword [esp + 0x4c], esi
mov dword [esp + 0x2c], 0
mov dword [esp + 0x50], 0
mov dword [esp + 0x30], 0
mov dword [esp + 0x5c], 0
mov dword [esp + 0x54], 0
test al, al
js 0x40f380
mov eax, dword [esp + 0x1c]
lea ebx, [eax + 1]
movzx eax, byte [eax]
cmp al, 0x25
je 0x40f408
movzx esi, al
mov dword [esp], esi
call sym._isspace
test eax, eax
jne 0x40f290
mov eax, dword [esp + 0x28]
lea edx, [esp + 0x88]
call sym._in_ch
mov ebp, eax
cmp eax, 0xffffffff
je 0x4108e3
mov edi, dword [esp + 0x20]
test edi, edi
je 0x40f1dc
mov dword [esp], eax
call sym._isspace
test eax, eax
jne 0x40f5d0
cmp esi, ebp
je 0x40f3f0
mov eax, dword [esp + 0x88]
lea ebx, [eax - 1]
mov eax, dword [esp + 0x28]
test byte [eax + 0x1004], 1
je 0x40fec0
mov esi, dword [esp + 0x28]
mov dword [esp + 0x88], ebx
mov eax, dword [esi + 0x1008]
mov dword [esi + eax*4 + 4], ebp
add eax, 1
mov dword [esi + 0x1008], eax
cmp dword [esp + 0x2c], 0xffffffff
je 0x40f618
mov ebx, dword [esp + 0x84]
test ebx, ebx
je 0x40f249
lea esi, cs:[esi]
mov eax, ebx
mov ebx, dword [ebx + 4]
mov dword [esp], eax
call sym._free
test ebx, ebx
jne 0x40f238
mov dword [esp + 0x84], 0
mov edi, dword [esp + 0x30]
test edi, edi
je 0x40f270
mov esi, dword [esp + 0x30]
mov eax, dword [esi]
mov dword [esp], eax
call sym._free
mov dword [esi], 0
mov eax, dword [esp + 0x90]
mov dword [esp], eax
call sym._free
mov eax, dword [esp + 0x2c]
add esp, 0xbc
pop ebx
pop esi
pop edi
pop ebp
ret
mov dword [esp + 0x1c], ebx
mov dword [esp + 0x20], 1
mov eax, dword [esp + 0x1c]
movzx eax, byte [eax]
test al, al
jne 0x40f17c
mov esi, dword [esp + 0x20]
test esi, esi
je 0x40f315
lea eax, [esp + 0x88]
mov esi, dword [esp + 0x28]
mov edi, eax
mov edx, edi
mov eax, esi
call sym._in_ch
mov dword [esp], eax
mov ebx, eax
call sym._isspace
test eax, eax
jne 0x40f2c0
cmp ebx, 0xffffffff
je 0x40f315
mov eax, dword [esp + 0x88]
lea esi, [eax - 1]
mov eax, dword [esp + 0x28]
test byte [eax + 0x1004], 1
je 0x411d9d
mov ecx, dword [esp + 0x28]
mov dword [esp + 0x88], esi
mov eax, dword [ecx + 0x1008]
mov dword [ecx + eax*4 + 4], ebx
add eax, 1
mov dword [ecx + 0x1008], eax
cmp dword [esp + 0x2c], 0xffffffff
je 0x40f618
mov ebx, dword [esp + 0x84]
mov esi, dword [esp + 0x90]
test ebx, ebx
je 0x40f349
lea esi, [esi]
mov eax, ebx
mov ebx, dword [ebx + 4]
mov dword [esp], eax
call sym._free
test ebx, ebx
jne 0x40f338
mov dword [esp + 0x84], 0
mov edi, dword [esp + 0x30]
test edi, edi
je 0x40f36c
mov eax, dword [edi]
mov dword [esp], eax
call sym._free
mov dword [edi], 0
mov dword [esp], esi
call sym._free
jmp 0x40f27f
mov esi, dword [esp + 0x1c]
mov dword [esp], esi
call sym._strlen
lea edx, [esp + 0xa0]
mov dword [esp], esi
mov dword [esp + 8], edx
mov dword [esp + 4], eax
call dbg.mbrlen
test eax, eax
jle 0x40f184
mov edi, dword [esp + 0x1c]
lea esi, [esp + 0x88]
lea ebx, [edi + eax]
mov eax, dword [esp + 0x28]
mov edx, esi
call sym._in_ch
mov ebp, eax
cmp eax, 0xffffffff
je 0x41077b
movzx eax, byte [edi]
add edi, 1
cmp ebp, eax
jne 0x41077b
cmp edi, ebx
jne 0x40f3b9
mov dword [esp + 0x1c], edi
jmp 0x40f29c
mov dword [esp + 0x20], 0
mov dword [esp + 0x1c], ebx
jmp 0x40f29c
mov eax, dword [esp + 0x1c]
mov dword [esp + 0x58], 0
movzx edx, byte [eax + 1]
mov eax, edx
sub edx, 0x30
cmp edx, 9
jbe 0x40f6f8
mov esi, dword [esp + 0x38]
xor edx, edx
jmp 0x40f453
cmp al, 0x27
je 0x40f460
cmp al, 0x49
jne 0x40fa30
movzx eax, byte [ebx + 1]
cmp al, 0x36
je 0x40f470
cmp al, 0x33
je 0x40f4d8
or edx, 4
nop
add ebx, 1
cmp al, 0x2a
jne 0x40f430
movzx eax, byte [ebx + 1]
or dl, 0x80
jmp 0x40f450
mov ecx, edx
movzx eax, byte [ebx + 1]
or ch, 1
test esi, esi
cmovne edx, ecx
jmp 0x40f450
cmp byte [ebx + 2], 0x34
je 0x40f4f0
or edx, 4
add ebx, 1
mov dword [esp + 0x34], edx
movzx edx, al
mov dword [esp + 0x40], 0
xor ecx, ecx
sub edx, 0x30
cmp edx, 9
ja 0x40f500
lea esi, [esi]
sub eax, 0x30
lea edx, [ecx + ecx*4]
add ebx, 1
movsx eax, al
lea ecx, [eax + edx*2]
movzx edx, byte [ebx]
mov eax, edx
sub edx, 0x30
cmp edx, 9
jbe 0x40f498
mov dword [esp + 0x40], ecx
test ecx, ecx
je 0x40f500
test al, al
je 0x4107ee
sub eax, 0x4c
cmp al, 0x2e
ja case.0x40f4ce.1
movzx eax, al
jmp dword [eax*4 + 0x425684]
cmp byte [ebx + 2], 0x32
jne 0x40f476
movzx eax, byte [ebx + 3]
or edx, 4
add ebx, 2
jmp 0x40f450
movzx eax, byte [ebx + 3]
or edx, 0xc
add ebx, 2
jmp 0x40f450
mov dword [esp + 0x40], 0xffffffff
jmp 0x40f4bc
movzx edx, byte [ebx]
mov edi, ebx
lea esi, [esi]
test dl, dl
je 0x4114f4
mov esi, dword [esp + 0x20]
lea eax, [edi + 1]
mov dword [esp + 0x1c], eax
test esi, esi
jne 0x40fa40
mov eax, edx
and eax, 0xffffffdf
cmp al, 0x43
je 0x40f6b8
cmp dl, 0x5b
je 0x40f6b8
mov ecx, 5
cmp dl, 0x6e
jne 0x40fa40
mov eax, 1
shl eax, cl
test eax, 0x90c1
jne case.0x40f6ea.51
cmp cl, 0xa
je 0x40f763
cmp cl, 5
jne case.0x40f6ea.1
mov ecx, dword [esp + 0x34]
mov eax, ecx
and eax, 0x80
mov dword [esp + 0x20], eax
jne 0x4104b7
and ecx, 8
mov eax, dword [esp + 0x88]
je 0x4118a9
mov ebx, dword [esp + 0x58]
test ebx, ebx
jne 0x412254
mov ecx, dword [esp + 0x4c]
lea edi, [ecx + 4]
mov edx, dword [ecx]
mov dword [esp + 0x4c], edi
mov dword [edx], eax
mov dword [edx + 4], 0
jmp 0x40f29c
mov edi, dword [esp + 0x28]
jmp 0x40f5f0
mov dword [esp], eax
call sym._isspace
test eax, eax
je 0x40f1dc
lea edx, [esp + 0x88]
mov eax, edi
call sym._in_ch
mov ebp, eax
cmp eax, 0xffffffff
jne 0x40f5e0
mov eax, dword [esp + 0x2c]
add eax, 1
cmp eax, 1
ja 0x40f638
lea esi, [esi]
lea edx, [esp + 0x90]
lea eax, [esp + 0x84]
call dbg.release_ptrs
mov dword [esp + 0x2c], 0xffffffff
jmp 0x40f27f
mov ebx, dword [esp + 0x84]
test ebx, ebx
je 0x40f659
lea esi, cs:[esi]
mov eax, ebx
mov ebx, dword [ebx + 4]
mov dword [esp], eax
call sym._free
test ebx, ebx
jne 0x40f648
mov dword [esp + 0x84], 0
mov eax, dword [esp + 0x30]
test eax, eax
je 0x40f270
mov edi, dword [esp + 0x30]
mov eax, dword [edi]
mov dword [esp], eax
call sym._free
mov dword [edi], 0
jmp 0x40f270
or dword [esp + 0x34], 4
movzx edx, byte [ebx + 1]
lea edi, [ebx + 1]
jmp 0x40f518
mov edx, esi
mov ebp, 0xffffffff
mov byte [esp + 0x20], dl
call sym.__errno
movzx edx, byte [esp + 0x20]
mov dword [eax], ebx
lea esi, [esi]
cmp dl, 0x63
je 0x40f8b4
cmp dl, 0x73
je 0x40f758
cmp dl, 0x67
jg 0x40ff61
cmp dl, 0x24
jle case.0x40f6ea.1
lea eax, [edx - 0x25]
cmp al, 0x42
ja case.0x40f6ea.1
movzx eax, al
jmp dword [eax*4 + 0x425740]
mov esi, dword [esp + 0x1c]
movsx edx, al
lea edi, [edx - 0x30]
lea ecx, [esi + 2]
movzx esi, byte [esi + 2]
mov dword [esp + 0x58], edi
mov edx, esi
movzx edx, dl
sub edx, 0x30
cmp edx, 9
ja 0x40f740
mov esi, eax
lea esi, [esi]
lea eax, [edi + edi*4]
add ecx, 1
lea edi, [edx + eax*2]
movzx edx, byte [ecx]
mov eax, edx
sub edx, 0x30
cmp edx, 9
jbe 0x40f720
mov dword [esp + 0x58], edi
mov edx, esi
mov esi, eax
mov eax, edx
mov edx, esi
cmp dl, 0x24
je 0x410843
mov dword [esp + 0x58], 0
jmp 0x40f426
test byte [esp + 0x34], 4
jne case.0x40f6ea.46
mov eax, dword [esp + 0x34]
mov ecx, eax
and ecx, 0x80
mov dword [esp + 0x20], ecx
jne 0x40f815
test ah, 6
je 0x4113da
mov eax, dword [esp + 0x58]
test eax, eax
jne 0x411e53
mov eax, dword [esp + 0x4c]
mov edi, dword [eax]
add eax, 4
mov dword [esp + 0x4c], eax
mov dword [esp + 0x30], edi
mov eax, dword [esp + 0x30]
test eax, eax
je 0x4122bd
mov dword [esp], 0x64
call sym._malloc
mov edi, dword [esp + 0x30]
mov dword [esp + 0x5c], eax
mov dword [edi], eax
test eax, eax
je 0x410dd5
mov ebx, dword [esp + 0x84]
test ebx, ebx
je 0x40f7e0
mov edx, dword [ebx]
mov eax, ebx
lea ecx, [edx + 1]
cmp edx, 0x1f
jbe 0x40f7fc
mov dword [esp], 0x88
call sym._malloc
mov ecx, 1
xor edx, edx
mov dword [eax], 0
mov dword [eax + 4], ebx
mov esi, dword [esp + 0x30]
mov dword [eax], ecx
mov dword [esp + 0x84], eax
mov dword [eax + edx*4 + 8], esi
mov dword [esp + 0x54], 0x64
lea eax, [esp + 0x88]
mov dword [esp + 0x48], eax
mov edx, eax
mov eax, dword [esp + 0x28]
call sym._in_ch
mov ebp, eax
cmp eax, 0xffffffff
je 0x412028
mov ebx, dword [esp + 0x34]
mov esi, dword [esp + 0x40]
mov edi, dword [esp + 0x5c]
mov ebp, dword [esp + 0x20]
and ebx, 0x600
mov dword [esp + 0x40], ebx
mov ebx, eax
jmp 0x40f88f
mov ecx, dword [esp + 0x30]
mov edi, eax
mov edx, dword [ecx]
mov ecx, dword [esp + 0x54]
add ecx, edx
cmp eax, ecx
je 0x411410
test esi, esi
jle 0x40f877
sub esi, 1
je 0x410ce6
mov edx, dword [esp + 0x48]
mov eax, dword [esp + 0x28]
call sym._in_ch
mov ebx, eax
cmp eax, 0xffffffff
je 0x410ce6
mov dword [esp], ebx
call sym._isspace
test eax, eax
jne 0x411620
test ebp, ebp
jne 0x40f86a
mov byte [edi], bl
lea eax, [edi + 1]
mov edi, dword [esp + 0x40]
test edi, edi
jne 0x40f854
mov edi, eax
jmp 0x40f86a
test byte [esp + 0x34], 4
jne case.0x40f6ea.30
mov ecx, dword [esp + 0x40]
mov eax, 1
cmp ecx, 0xffffffff
cmovne eax, ecx
mov dword [esp + 0x40], eax
mov eax, dword [esp + 0x34]
mov ecx, eax
and ecx, 0x80
mov dword [esp + 0x20], ecx
jne 0x410473
and eax, 0x600
mov dword [esp + 0x5c], eax
je 0x411524
mov ebp, dword [esp + 0x58]
test ebp, ebp
jne 0x411e8b
mov eax, dword [esp + 0x4c]
mov ecx, dword [eax]
add eax, 4
mov dword [esp + 0x4c], eax
mov dword [esp + 0x30], ecx
mov edi, dword [esp + 0x30]
test edi, edi
je 0x4122bd
mov edi, dword [esp + 0x40]
mov eax, 0x400
cmp edi, eax
cmovle eax, edi
mov dword [esp], eax
mov dword [esp + 0x54], eax
call sym._malloc
mov ebx, eax
mov eax, dword [esp + 0x30]
mov dword [eax], ebx
test ebx, ebx
je 0x410dd5
mov esi, dword [esp + 0x84]
test esi, esi
je 0x40f961
mov edx, dword [esi]
mov eax, esi
lea ecx, [edx + 1]
cmp edx, 0x1f
jbe 0x40f97d
mov dword [esp], 0x88
call sym._malloc
mov ecx, 1
xor edx, edx
mov dword [eax], 0
mov dword [eax + 4], esi
mov edi, dword [esp + 0x30]
mov dword [eax], ecx
mov dword [esp + 0x84], eax
mov dword [eax + edx*4 + 8], edi
lea eax, [esp + 0x88]
mov dword [esp + 0x48], eax
mov edx, eax
mov eax, dword [esp + 0x28]
call sym._in_ch
mov ebp, eax
cmp eax, 0xffffffff
je 0x412371
mov eax, ebx
mov edi, dword [esp + 0x5c]
mov ebx, ebp
mov ebp, dword [esp + 0x40]
jmp 0x40f9ea
sub ebp, 1
mov byte [eax], bl
lea esi, [eax + 1]
test ebp, ebp
jle 0x4112f8
mov edx, dword [esp + 0x48]
mov eax, dword [esp + 0x28]
call sym._in_ch
mov ebx, eax
cmp eax, 0xffffffff
je 0x4112f8
mov eax, esi
test edi, edi
je 0x40f9c0
mov ecx, dword [esp + 0x30]
mov edx, dword [ecx]
mov ecx, dword [esp + 0x54]
lea esi, [edx + ecx]
cmp eax, esi
jne 0x40f9c0
lea eax, [ebp - 1]
cmp ecx, ebp
cmovl eax, ecx
lea esi, [ecx + eax]
mov dword [esp + 4], esi
mov dword [esp], edx
call sym._realloc
test eax, eax
je 0x4126e0
mov ecx, dword [esp + 0x30]
mov dword [ecx], eax
mov ecx, dword [esp + 0x54]
mov dword [esp + 0x54], esi
add eax, ecx
jmp 0x40f9c0
mov dword [esp + 0x34], edx
jmp 0x40f480
mov byte [esp + 0x20], dl
call sym.__errno
mov ebx, dword [eax]
call sym.__errno
cmp ebp, 0xffffffff
movzx edx, byte [esp + 0x20]
mov dword [eax], 0
jne 0x41084f
mov esi, edx
jmp 0x40fa84
mov dword [esp], 0xffffffff
call sym._isspace
test eax, eax
je 0x40f69a
call sym.__errno
cmp dword [eax], 4
jne 0x40fa70
mov eax, dword [esp + 0x2c]
add eax, 1
cmp eax, 1
jbe 0x40f618
mov ebx, dword [esp + 0x84]
test ebx, ebx
je 0x40f659
lea esi, [esi]
mov eax, ebx
mov ebx, dword [ebx + 4]
mov dword [esp], eax
call sym._free
test ebx, ebx
jne 0x40fab0
jmp 0x40f659
mov eax, dword [esp + 0x34]
mov ecx, eax
and ecx, 0x80
mov dword [esp + 0x20], ecx
jne 0x40fb78
test ah, 6
je 0x40ff36
mov eax, dword [esp + 0x58]
test eax, eax
jne 0x4114bc
mov eax, dword [esp + 0x4c]
mov ecx, dword [eax]
add eax, 4
mov dword [esp + 0x4c], eax
mov dword [esp + 0x30], ecx
mov eax, dword [esp + 0x30]
test eax, eax
je 0x4122bd
mov dword [esp], 0xc8
call sym._malloc
mov ecx, dword [esp + 0x30]
mov dword [esp + 0x50], eax
mov dword [ecx], eax
test eax, eax
je 0x410dd5
mov ebx, dword [esp + 0x84]
test ebx, ebx
je 0x40fb43
mov edx, dword [ebx]
mov eax, ebx
lea ecx, [edx + 1]
cmp edx, 0x1f
jbe 0x40fb5f
mov dword [esp], 0x88
call sym._malloc
mov ecx, 1
xor edx, edx
mov dword [eax], 0
mov dword [eax + 4], ebx
mov dword [eax], ecx
mov ecx, dword [esp + 0x30]
mov dword [esp + 0x84], eax
mov dword [eax + edx*4 + 8], ecx
mov dword [esp + 0x54], 0x64
lea eax, [esp + 0x88]
mov dword [esp + 0x48], eax
mov edx, eax
mov eax, dword [esp + 0x28]
call sym._in_ch
mov ebp, eax
cmp eax, 0xffffffff
je 0x41226e
mov eax, dword [esp + 0x20]
lea edi, [esp + 0xa8]
mov dword [esp + 0xa8], 0
mov dword [esp + 0xac], 0
shr eax, 7
mov esi, eax
xor esi, 1
mov eax, esi
mov esi, dword [esp + 0x48]
mov byte [esp + 0x58], al
mov dword [esp], ebp
call sym._isspace
test eax, eax
jne 0x411fda
cmp byte [esp + 0x58], 0
cmovne eax, dword [esp + 0x50]
mov ecx, ebp
mov ebx, eax
mov eax, esi
mov esi, ebp
mov ebp, eax
lea eax, [esp + 0x9b]
mov dword [esp + 0xc], edi
mov dword [esp + 8], 1
mov dword [esp + 4], eax
mov dword [esp], ebx
mov byte [esp + 0x9b], cl
call dbg.mbrtowc
cmp eax, 0xfffffffe
jne 0x41092d
mov eax, dword [esp + 0x28]
mov edx, ebp
call sym._in_ch
mov esi, eax
cmp eax, 0xffffffff
je 0x40fe7e
mov ecx, eax
jmp 0x40fbf0
mov ecx, dword [esp + 0x40]
mov eax, 1
cmp ecx, 0xffffffff
cmovne eax, ecx
mov dword [esp + 0x40], eax
mov eax, dword [esp + 0x34]
mov ecx, eax
and ecx, 0x80
mov dword [esp + 0x20], ecx
jne 0x40fd06
test ah, 6
je 0x40feda
mov ebx, dword [esp + 0x58]
test ebx, ebx
jne 0x411456
mov eax, dword [esp + 0x4c]
mov ecx, dword [eax]
add eax, 4
mov dword [esp + 0x4c], eax
mov dword [esp + 0x30], ecx
mov ecx, dword [esp + 0x30]
test ecx, ecx
je 0x4122bd
mov ecx, dword [esp + 0x40]
mov eax, 0x400
cmp ecx, eax
cmovle eax, ecx
mov dword [esp + 0x54], eax
add eax, eax
mov dword [esp], eax
call sym._malloc
mov ecx, dword [esp + 0x30]
mov dword [esp + 0x50], eax
mov dword [ecx], eax
test eax, eax
je 0x410dd5
mov ebx, dword [esp + 0x84]
test ebx, ebx
je 0x40fcd9
mov edx, dword [ebx]
mov eax, ebx
lea ecx, [edx + 1]
cmp edx, 0x1f
jbe 0x40fcf5
mov dword [esp], 0x88
call sym._malloc
mov ecx, 1
xor edx, edx
mov dword [eax], 0
mov dword [eax + 4], ebx
mov dword [eax], ecx
mov ecx, dword [esp + 0x30]
mov dword [esp + 0x84], eax
mov dword [eax + edx*4 + 8], ecx
lea eax, [esp + 0x88]
mov dword [esp + 0x48], eax
mov edx, eax
mov eax, dword [esp + 0x28]
call sym._in_ch
mov ebp, eax
cmp eax, 0xffffffff
je 0x411ea7
mov eax, dword [esp + 0x20]
mov esi, ebp
lea edi, [esp + 0xa8]
mov dword [esp + 0xa8], 0
mov dword [esp + 0xac], 0
mov ebp, edi
mov edi, dword [esp + 0x48]
shr eax, 7
xor eax, 1
mov byte [esp + 0x58], al
mov eax, esi
mov byte [esp + 0x9b], al
mov eax, dword [esp + 0x20]
test eax, eax
jne 0x40fde8
test byte [esp + 0x35], 6
je 0x40fde8
mov eax, dword [esp + 0x30]
mov ecx, dword [esp + 0x54]
mov eax, dword [eax]
lea ebx, [ecx + ecx]
lea ecx, [eax + ebx]
cmp dword [esp + 0x50], ecx
jne 0x40fde8
mov ecx, dword [esp + 0x40]
lea edx, [ecx - 1]
mov dword [esp + 0x48], edx
mov edx, dword [esp + 0x54]
cmp edx, ecx
mov ecx, dword [esp + 0x48]
mov dword [esp + 0x48], ebp
mov ebp, edi
mov edi, esi
mov esi, ebx
cmovle ecx, edx
add edx, ecx
mov ebx, edx
lea ecx, [ebx + ebx]
mov dword [esp], eax
mov dword [esp + 4], ecx
call sym._realloc
test eax, eax
je 0x4126c4
mov ecx, dword [esp + 0x30]
mov edx, ebx
mov ebx, esi
mov esi, edi
mov dword [esp + 0x54], edx
mov edi, ebp
mov ebp, dword [esp + 0x48]
mov dword [ecx], eax
add eax, ebx
mov dword [esp + 0x50], eax
lea esi, [esi]
xor ebx, ebx
mov eax, edi
cmp byte [esp + 0x58], 0
cmovne ebx, dword [esp + 0x50]
mov edi, esi
mov esi, eax
lea eax, [esp + 0x9b]
mov dword [esp + 0xc], ebp
mov dword [esp + 8], 1
mov dword [esp + 4], eax
mov dword [esp], ebx
call dbg.mbrtowc
cmp eax, 0xfffffffe
jne 0x4109d0
mov eax, dword [esp + 0x28]
mov edx, esi
call sym._in_ch
mov edi, eax
cmp eax, 0xffffffff
je 0x40fe3d
mov byte [esp + 0x9b], al
jmp 0x40fdfa
call sym.__errno
cmp dword [esp + 0x2c], 0xffffffff
mov dword [eax], 0x2a
je 0x40f618
mov ebx, dword [esp + 0x84]
test ebx, ebx
je 0x40f659
lea esi, [esi]
mov eax, ebx
mov ebx, dword [ebx + 4]
mov dword [esp], eax
call sym._free
test ebx, ebx
jne 0x40fe68
jmp 0x40f659
call sym.__errno
cmp dword [esp + 0x2c], 0xffffffff
mov dword [eax], 0x2a
je 0x40f618
mov ebx, dword [esp + 0x84]
test ebx, ebx
je 0x40f659
lea esi, cs:[esi]
mov eax, ebx
mov ebx, dword [ebx + 4]
mov dword [esp], eax
call sym._free
test ebx, ebx
jne 0x40fea8
jmp 0x40f659
mov eax, dword [eax]
mov dword [esp], ebp
mov dword [esp + 4], eax
call sym._ungetc
mov dword [esp + 0x88], ebx
jmp 0x40f21d
mov edx, dword [esp + 0x58]
test edx, edx
jne 0x4114d8
mov eax, dword [esp + 0x4c]
mov ecx, dword [eax]
add eax, 4
mov dword [esp + 0x4c], eax
mov dword [esp + 0x50], ecx
mov eax, dword [esp + 0x50]
test eax, eax
jne 0x40fd06
jmp 0x40ff0f
fstp st(0)
jmp 0x40ff0f
fstp st(0)
jmp 0x40ff0f
fstp st(0)
lea eax, [esp + 0x90]
mov ecx, dword [esp + 0x30]
lea edx, [esp + 0x84]
mov dword [esp], eax
mov eax, dword [esp + 0x2c]
call sym._cleanup_return
mov dword [esp + 0x2c], eax
jmp 0x40f27f
mov eax, dword [esp + 0x58]
test eax, eax
jne 0x411472
mov eax, dword [esp + 0x4c]
mov ecx, dword [eax]
add eax, 4
mov dword [esp + 0x4c], eax
mov dword [esp + 0x50], ecx
mov eax, dword [esp + 0x50]
test eax, eax
jne 0x40fb78
jmp 0x40ff0f
lea ecx, [edx - 0x69]
cmp cl, 0xf
jbe 0x40f557
cmp dword [esp + 0x2c], 0xffffffff
je 0x40f618
mov ebx, dword [esp + 0x84]
test ebx, ebx
je 0x40f249
lea esi, cs:[esi]
nop
mov eax, ebx
mov ebx, dword [ebx + 4]
mov dword [esp], eax
call sym._free
test ebx, ebx
jne 0x40ff90
jmp 0x40f249
or dword [esp + 0x34], 0xc
movzx edx, byte [ebx + 1]
lea edi, [ebx + 1]
jmp 0x40f518
movzx edx, byte [ebx + 1]
mov eax, edx
and eax, 0xfffffff7
cmp al, 0x53
je 0x40ffcd
cmp dl, 0x73
jne case.0x40f4ce.1
or dword [esp + 0x34], 0x200
lea edi, [ebx + 1]
jmp 0x40f520
movzx edx, byte [ebx + 1]
cmp dl, 0x6c
je 0x410cb0
or dword [esp + 0x34], 4
lea edi, [ebx + 1]
jmp 0x40f518
movzx edx, byte [ebx + 1]
cmp dl, 0x6c
je 0x410cc1
or dword [esp + 0x34], 0x400
lea edi, [ebx + 1]
jmp 0x40f518
movzx edx, byte [ebx + 1]
cmp dl, 0x68
je 0x410cd5
or dword [esp + 0x34], 2
lea edi, [ebx + 1]
jmp 0x40f518
or dword [esp + 0x34], 8
movzx edx, byte [ebx + 1]
lea edi, [ebx + 1]
jmp 0x40f518
sub edx, 0x58
cmp dl, 0x20
ja case.0x41004a.1
movzx edx, dl
jmp dword [edx*4 + 0x42584c]
or dword [esp + 0x34], 0x10
mov dword [esp + 0x44], 0xa
lea eax, [esp + 0x88]
mov dword [esp + 0x48], eax
mov edx, eax
mov eax, dword [esp + 0x28]
call sym._in_ch
mov ebp, eax
cmp eax, 0xffffffff
je 0x412028
lea eax, [eax - 0x2b]
mov dword [esp + 0x20], 0
mov ebx, 1
and eax, 0xfffffffd
je 0x411664
cmp ebp, 0x30
jne 0x41102f
test bl, bl
je 0x41102f
mov edi, dword [esp + 0x20]
mov ecx, dword [esp + 0x40]
mov esi, dword [esp + 0x90]
mov eax, dword [esp + 0x8c]
lea ebx, [edi + 1]
test ecx, ecx
jle 0x411847
sub ecx, 1
mov dword [esp + 0x40], ecx
cmp edi, eax
jne 0x410102
test esi, esi
je 0x411edc
mov dword [esp + 4], 0x100
mov dword [esp], esi
call sym._realloc
test eax, eax
je 0x412960
mov dword [esp + 0x8c], 0x100
mov esi, eax
mov eax, dword [esp + 0x20]
mov edx, dword [esp + 0x48]
mov dword [esp + 0x90], esi
mov byte [esi + eax], 0x30
mov eax, dword [esp + 0x28]
call sym._in_ch
mov ebp, eax
mov eax, dword [esp + 0x40]
test eax, eax
jne 0x411868
mov ecx, dword [esp + 0x44]
mov eax, 8
mov dword [esp + 0x20], ebx
test ecx, ecx
cmovne eax, ecx
mov dword [esp + 0x44], eax
cmp dword [esp + 0x20], 1
jne 0x410166
mov eax, dword [esp + 0x90]
movzx eax, byte [eax]
sub eax, 0x2b
test al, 0xfd
je 0x411155
mov dword [esp + 0x20], 1
cmp ebp, 0xffffffff
je 0x4101a4
mov eax, dword [esp + 0x88]
lea ebx, [eax - 1]
mov eax, dword [esp + 0x28]
test byte [eax + 0x1004], 1
je 0x41223a
mov ecx, dword [esp + 0x28]
mov dword [esp + 0x88], ebx
mov eax, dword [ecx + 0x1008]
mov dword [ecx + eax*4 + 4], ebp
add eax, 1
mov dword [ecx + 0x1008], eax
mov ebx, dword [esp + 0x90]
mov eax, dword [esp + 0x20]
cmp eax, dword [esp + 0x8c]
jne 0x4101ea
lea edx, [eax + eax]
mov eax, 0x100
cmp edx, eax
cmovb edx, eax
test ebx, ebx
jne 0x411e4c
mov dword [esp], edx
mov dword [esp + 0x40], edx
call sym._malloc
mov edx, dword [esp + 0x40]
test eax, eax
mov ebx, eax
je 0x4101ea
mov dword [esp + 0x8c], edx
mov eax, dword [esp + 0x20]
mov edi, dword [esp + 0x34]
mov dword [esp + 0x90], ebx
mov byte [ebx + eax], 0
mov eax, edi
and eax, 0x10
test edi, 8
je 0x411343
test eax, eax
mov eax, dword [esp + 0x44]
mov dword [esp], ebx
mov dword [esp + 8], eax
lea eax, [esp + 0x94]
mov dword [esp + 4], eax
je 0x411960
call dbg.strtoimax
cmp dword [esp + 0x94], ebx
je 0x40ff0f
and edi, 0x80
jne 0x4104b7
mov ebx, dword [esp + 0x58]
test ebx, ebx
jne 0x41240f
mov esi, dword [esp + 0x4c]
lea edi, [esi + 4]
mov ecx, dword [esi]
mov dword [esp + 0x4c], edi
mov dword [ecx], eax
mov dword [ecx + 4], edx
add dword [esp + 0x2c], 1
mov dword [esp + 0x20], 0
jmp 0x40f29c
mov ecx, dword [esp + 0x40]
xor eax, eax
test ecx, ecx
setg al
sub ecx, eax
lea eax, [esp + 0x88]
mov dword [esp + 0x48], eax
mov edx, eax
mov eax, dword [esp + 0x28]
mov dword [esp + 0x40], ecx
call sym._in_ch
mov dword [esp + 0x74], eax
cmp eax, 0xffffffff
je 0x412445
mov eax, dword [esp + 0x74]
sub eax, 0x2b
and eax, 0xfffffffd
jne 0x411026
mov ecx, dword [esp + 0x40]
test ecx, ecx
je 0x40ff0f
mov edx, dword [esp + 0x48]
mov eax, dword [esp + 0x28]
call sym._in_ch
mov ebp, eax
cmp eax, 0xffffffff
je 0x40ff0f
mov edx, dword [esp + 0x40]
test edx, edx
jle 0x411550
sub dword [esp + 0x40], 1
mov dword [esp], ebp
call sym._tolower
cmp eax, 0x6e
je 0x41206e
cmp eax, 0x69
je 0x411b20
mov eax, dword [esp + 0x40]
mov byte [esp + 0x64], 0x65
mov dword [esp + 0x20], 0
test eax, eax
jne 0x41156a
mov eax, dword [esp + 0x34]
mov byte [esp + 0x68], 0
mov byte [esp + 0x6c], 0
mov ecx, eax
and eax, 0x40
and ecx, 0x100
mov dword [esp + 0x78], eax
mov dword [esp + 0x7c], ecx
lea esi, cs:[esi]
nop
lea eax, [ebp - 0x30]
cmp eax, 9
jbe 0x410411
cmp byte [esp + 0x68], 0
jne 0x410750
mov esi, dword [esp + 0x78]
test esi, esi
je 0x41037f
mov dword [esp], ebp
call sym._isxdigit
test eax, eax
jne 0x410411
mov ebx, dword [esp + 0x20]
test ebx, ebx
je 0x410399
mov dword [esp], ebp
call sym._tolower
cmp byte [esp + 0x64], al
je 0x410e49
mov eax, dword [esp + 0x60]
mov ecx, dword [esp + 0x40]
movzx eax, byte [eax]
test ecx, ecx
jle 0x410826
cmp byte [esp + 0x6c], 0
je 0x410a3a
test al, al
je 0x410d42
mov eax, dword [esp + 0x38]
test eax, eax
je 0x410b41
cmp byte [eax], 0
jne 0x410b41
mov esi, dword [esp + 0x40]
test esi, esi
je 0x410b7f
mov edx, dword [esp + 0x48]
mov eax, dword [esp + 0x28]
call sym._in_ch
mov ebp, eax
cmp eax, 0xffffffff
je 0x410b7f
test esi, esi
jle 0x410350
lea eax, [ebp - 0x30]
sub dword [esp + 0x40], 1
cmp eax, 9
ja 0x41035c
mov ebx, dword [esp + 0x90]
mov eax, dword [esp + 0x20]
cmp eax, dword [esp + 0x8c]
jne 0x410457
lea esi, [eax + eax]
mov eax, 0x100
cmp esi, eax
cmovb esi, eax
test ebx, ebx
je 0x410c90
mov dword [esp + 4], esi
mov dword [esp], ebx
call sym._realloc
test eax, eax
je 0x412812
mov dword [esp + 0x8c], esi
mov ebx, eax
mov ecx, dword [esp + 0x20]
mov eax, ebp
mov dword [esp + 0x90], ebx
mov byte [ebx + ecx], al
lea eax, [ecx + 1]
mov dword [esp + 0x20], eax
jmp 0x4103d4
lea eax, [esp + 0x88]
mov dword [esp + 0x48], eax
mov edx, eax
mov eax, dword [esp + 0x28]
call sym._in_ch
cmp eax, 0xffffffff
je 0x412371
mov edi, dword [esp + 0x40]
mov ebx, dword [esp + 0x28]
mov esi, dword [esp + 0x48]
jmp 0x4104ae
mov edx, esi
mov eax, ebx
call sym._in_ch
cmp eax, 0xffffffff
je 0x4104b5
sub edi, 1
test edi, edi
jg 0x4104a0
mov ebp, eax
mov dword [esp + 0x20], 0
jmp 0x40f29c
mov dword [esp + 0x44], 0x10
jmp case.0x41004a.1
mov eax, dword [esp + 0x34]
mov ecx, eax
mov esi, eax
and ecx, 0x80
and esi, 4
mov dword [esp + 0x64], ecx
mov dword [esp + 0x20], esi
je 0x410d77
test ecx, ecx
jne 0x410594
test ah, 6
je 0x411c70
mov edx, dword [esp + 0x58]
test edx, edx
jne 0x412493
mov eax, dword [esp + 0x4c]
mov esi, dword [eax]
add eax, 4
mov dword [esp + 0x4c], eax
mov dword [esp + 0x30], esi
mov eax, dword [esp + 0x30]
test eax, eax
je 0x4122bd
mov dword [esp], 0xc8
call sym._malloc
mov ecx, dword [esp + 0x30]
mov dword [esp + 0x50], eax
mov dword [ecx], eax
test eax, eax
je 0x410dd5
mov ebx, dword [esp + 0x84]
test ebx, ebx
je 0x41055f
mov edx, dword [ebx]
mov eax, ebx
lea ecx, [edx + 1]
cmp edx, 0x1f
jbe 0x41057b
mov dword [esp], 0x88
call sym._malloc
mov ecx, 1
xor edx, edx
mov dword [eax], 0
mov dword [eax + 4], ebx
mov esi, dword [esp + 0x30]
mov dword [esp + 0x84], eax
mov dword [eax], ecx
mov dword [eax + edx*4 + 8], esi
mov dword [esp + 0x54], 0x64
movzx esi, byte [edi + 1]
lea eax, [edi + 2]
mov ebx, dword [esp + 0x90]
mov ecx, esi
cmp cl, 0x5e
mov ecx, dword [esp + 0x40]
cmovne eax, dword [esp + 0x1c]
test ecx, ecx
mov dword [esp + 0x1c], eax
mov eax, 0x7fffffff
cmovns eax, ecx
cmp dword [esp + 0x8c], 0xff
mov dword [esp + 0x40], eax
ja 0x4105fb
mov dword [esp + 0x8c], 0x100
test ebx, ebx
je 0x4105e6
mov dword [esp], ebx
call sym._free
mov dword [esp], 0x100
call sym._malloc
mov dword [esp + 0x90], eax
mov ebx, eax
lea edi, [ebx + 4]
mov ecx, ebx
xor eax, eax
mov dword [ebx], 0
mov dword [ebx + 0xfc], 0
and edi, 0xfffffffc
sub ecx, edi
add ecx, 0x100
shr ecx, 2
rep stosd dword es:[edi], eax
mov eax, dword [esp + 0x1c]
movsx edx, byte [eax]
movzx eax, dl
cmp dl, 0x5d
je 0x410d60
cmp dl, 0x2d
je 0x410d60
add dword [esp + 0x1c], 1
test al, al
je 0x410df0
mov edx, dword [esp + 0x1c]
jmp 0x41066d
mov byte [ebp + eax], 1
movzx eax, byte [edx]
mov ebx, ebp
add edx, 1
test al, al
je 0x410df0
cmp al, 0x5d
je 0x410ec2
mov ebp, ebx
cmp al, 0x2d
jne 0x410658
movzx ecx, byte [edx]
test cl, cl
je 0x410658
cmp cl, 0x5d
je 0x410658
movzx edi, byte [edx - 2]
mov ebx, edi
cmp cl, bl
jb 0x410658
mov eax, edi
cmp bl, cl
jae 0x412404
movzx ecx, al
mov ebx, ebp
add ecx, ebp
mov ebp, edx
sub eax, ecx
mov edi, eax
mov byte [ecx], 1
add ecx, 1
movzx eax, byte [ebp]
lea edx, [edi + ecx]
cmp dl, al
jb 0x4106a8
mov edx, ebp
jmp 0x410662
lea eax, [esp + 0x88]
mov dword [esp + 0x48], eax
mov edx, eax
mov eax, dword [esp + 0x28]
call sym._in_ch
mov ebp, eax
cmp eax, 0xffffffff
je 0x412028
cmp eax, 0x25
je 0x4104b7
mov ecx, dword [esp + 0x48]
mov edx, dword [esp + 0x28]
mov dword [esp], 1
call sym._back_ch
jmp 0x40ff0f
mov dword [esp + 0x44], 0xa
jmp case.0x41004a.1
mov eax, dword [esp + 0x34]
mov dword [esp + 0x44], 0x10
and eax, 0xfffffff1
or eax, 0x24
mov dword [esp + 0x34], eax
jmp case.0x41004a.1
or dword [esp + 0x34], 0x10
mov dword [esp + 0x44], 0
jmp case.0x41004a.1
mov dword [esp + 0x44], 8
jmp case.0x41004a.1
mov ebx, dword [esp + 0x90]
mov ecx, dword [esp + 0x20]
movzx eax, byte [esp + 0x64]
cmp byte [ebx + ecx - 1], al
jne 0x410399
lea eax, [ebp - 0x2b]
and eax, 0xfffffffd
jne 0x410399
jmp 0x410418
mov eax, dword [esp + 0x88]
lea ebx, [eax - 1]
mov eax, dword [esp + 0x28]
test byte [eax + 0x1004], 1
je 0x4113c0
mov ecx, dword [esp + 0x28]
mov dword [esp + 0x88], ebx
mov eax, dword [ecx + 0x1008]
mov dword [ecx + eax*4 + 4], ebp
add eax, 1
mov dword [ecx + 0x1008], eax
mov eax, dword [esp + 0x2c]
add eax, 1
cmp eax, 1
jbe 0x40f618
mov ebx, dword [esp + 0x84]
test ebx, ebx
je 0x40f249
lea esi, cs:[esi]
mov eax, ebx
mov ebx, dword [ebx + 4]
mov dword [esp], eax
call sym._free
test ebx, ebx
jne 0x4107d8
jmp 0x40f249
cmp dword [esp + 0x2c], 0xffffffff
je 0x40f618
mov ebx, dword [esp + 0x84]
test ebx, ebx
je 0x40f659
lea esi, cs:[esi]
mov eax, ebx
mov ebx, dword [ebx + 4]
mov dword [esp], eax
call sym._free
test ebx, ebx
jne 0x410810
jmp 0x40f659
cmp byte [esp + 0x6c], 0
je 0x410eb8
test al, al
jne 0x4103bf
mov byte [esp + 0x6c], 1
jmp 0x4103d4
movzx eax, byte [ecx + 1]
lea ebx, [ecx + 1]
jmp 0x40f426
mov dword [esp + 0x20], ebx
lea esi, [esp + 0x88]
mov ebp, edx
lea esi, [esi]
mov eax, dword [esp + 0x28]
mov edx, esi
call sym._in_ch
mov ebx, eax
cmp eax, 0xffffffff
je 0x4108d8
mov dword [esp], eax
call sym._isspace
test eax, eax
jne 0x410860
mov edx, ebp
mov ebp, ebx
mov ebx, dword [esp + 0x20]
mov byte [esp + 0x20], dl
call sym.__errno
movzx edx, byte [esp + 0x20]
mov dword [eax], ebx
mov eax, dword [esp + 0x88]
lea ebx, [eax - 1]
mov eax, dword [esp + 0x28]
test byte [eax + 0x1004], 1
je 0x411495
mov ecx, dword [esp + 0x28]
mov dword [esp + 0x88], ebx
mov eax, dword [ecx + 0x1008]
mov dword [ecx + eax*4 + 4], ebp
add eax, 1
mov dword [ecx + 0x1008], eax
jmp 0x40f6b8
mov ebx, dword [esp + 0x20]
mov esi, ebp
jmp 0x40fa84
mov eax, dword [esp + 0x2c]
add eax, 1
cmp eax, 1
jbe 0x40f618
mov ebx, dword [esp + 0x84]
test ebx, ebx
je 0x40f249
lea esi, [esi]
mov eax, ebx
mov ebx, dword [ebx + 4]
mov dword [esp], eax
call sym._free
test ebx, ebx
jne 0x410908
jmp 0x40f249
mov dword [esp + 0x2c], 0
xor esi, esi
jmp 0x40f36c
mov ecx, ebp
mov ebp, esi
mov esi, ecx
cmp eax, 1
jne 0x41231d
mov eax, dword [esp + 0x20]
add dword [esp + 0x50], 2
mov ebx, dword [esp + 0x50]
test eax, eax
jne 0x41096b
test byte [esp + 0x35], 6
je 0x41096b
mov eax, dword [esp + 0x54]
mov edx, dword [esp + 0x30]
lea ecx, [eax + eax]
mov eax, dword [edx]
add eax, ecx
cmp ebx, eax
je 0x41232d
mov eax, dword [esp + 0x40]
test eax, eax
jle 0x41097c
sub eax, 1
mov dword [esp + 0x40], eax
je 0x410992
mov eax, dword [esp + 0x28]
mov edx, esi
call sym._in_ch
mov ebp, eax
cmp eax, 0xffffffff
jne 0x40fbcc
mov ecx, dword [esp + 0x20]
test ecx, ecx
jne 0x4104b7
mov eax, dword [esp + 0x50]
lea ebx, [eax + 2]
mov word [eax], 0
mov eax, dword [esp + 0x54]
mov edx, ebx
lea ecx, [eax + eax]
mov eax, dword [esp + 0x30]
call sym._optimize_alloc
xor edx, edx
add dword [esp + 0x2c], 1
mov dword [esp + 0x50], ebx
mov dword [esp + 0x30], edx
jmp 0x40f29c
mov ecx, esi
mov esi, edi
mov edi, ecx
cmp eax, 1
jne 0x41231d
sub dword [esp + 0x40], 1
mov eax, dword [esp + 0x40]
add dword [esp + 0x50], 2
test eax, eax
jle 0x410a07
mov eax, dword [esp + 0x28]
mov edx, ecx
call sym._in_ch
mov esi, eax
cmp eax, 0xffffffff
jne 0x40fd5a
cmp dword [esp + 0x20], 0
mov ebp, esi
jne 0x4104b7
mov eax, dword [esp + 0x54]
mov edx, dword [esp + 0x50]
lea ecx, [eax + eax]
mov eax, dword [esp + 0x30]
call sym._optimize_alloc
add dword [esp + 0x2c], 1
mov dword [esp + 0x30], 0
jmp 0x40f29c
mov esi, dword [esp + 0x40]
movzx edx, al
cmp edx, ebp
jne 0x41256e
mov edx, ebp
mov edi, dword [esp + 0x60]
mov ebp, dword [esp + 0x48]
jmp 0x410a86
test esi, esi
je 0x4117b0
mov eax, dword [esp + 0x28]
mov edx, ebp
call sym._in_ch
mov edx, eax
cmp eax, 0xffffffff
je 0x4116e1
movzx ebx, byte [edi]
sub esi, 1
mov eax, ebx
cmp edx, ebx
jne 0x4117b7
mov ebx, edi
add edi, 1
cmp byte [edi], 0
jne 0x410a58
mov ebp, edx
mov eax, dword [esp + 0x60]
cmp byte [eax], 0
je 0x412821
mov ebx, dword [esp + 0x20]
mov edi, dword [esp + 0x90]
mov dword [esp + 0x6c], esi
mov dword [esp + 0x20], ebp
sub eax, ebx
mov esi, eax
jmp 0x410af0
mov dword [esp + 4], ebp
mov dword [esp], edi
call sym._realloc
test eax, eax
je 0x412a95
mov dword [esp + 0x8c], ebp
mov edi, eax
lea eax, [ebx + 1]
mov dword [esp + 0x90], edi
movzx ecx, byte [esi + eax - 1]
mov byte [edi + ebx], cl
cmp byte [esi + ebx + 1], 0
je 0x410b20
mov ebx, eax
cmp ebx, dword [esp + 0x8c]
jne 0x410ad5
lea ebp, [ebx + ebx]
mov eax, 0x100
cmp ebp, eax
cmovb ebp, eax
test edi, edi
jne 0x410ab8
mov dword [esp], ebp
call sym._malloc
test eax, eax
jne 0x410acc
xor edi, edi
jmp 0x410ad5
mov ebp, dword [esp + 0x20]
mov esi, dword [esp + 0x6c]
mov edx, dword [esp + 0x40]
mov dword [esp + 0x20], eax
test edx, edx
jle 0x410839
mov dword [esp + 0x40], esi
jmp 0x410839
cmp ebp, 0xffffffff
je 0x410b7f
mov eax, dword [esp + 0x88]
lea ebx, [eax - 1]
mov eax, dword [esp + 0x28]
test byte [eax + 0x1004], 1
je 0x412518
mov ecx, dword [esp + 0x28]
mov dword [esp + 0x88], ebx
mov eax, dword [ecx + 0x1008]
mov dword [ecx + eax*4 + 4], ebp
add eax, 1
mov dword [ecx + 0x1008], eax
mov eax, dword [esp + 0x20]
test eax, eax
je 0x40ff0f
test byte [esp + 0x34], 0x40
je 0x410b9b
cmp eax, 2
je 0x40ff0f
mov edx, dword [esp + 0x90]
mov eax, dword [esp + 0x20]
cmp eax, dword [esp + 0x8c]
jne 0x410be9
lea ebx, [eax + eax]
mov eax, 0x100
cmp ebx, eax
cmovb ebx, eax
test edx, edx
je 0x411dd7
mov dword [esp], edx
mov dword [esp + 4], ebx
mov dword [esp + 0x40], edx
call sym._realloc
mov edx, dword [esp + 0x40]
test eax, eax
je 0x4129fe
mov dword [esp + 0x8c], ebx
mov edx, eax
mov eax, dword [esp + 0x20]
mov dword [esp + 0x90], edx
mov byte [edx + eax], 0
mov eax, dword [esp + 0x34]
mov ebx, eax
and ebx, 0x80
test al, 8
lea eax, [esp + 0x94]
jne 0x411a8e
test byte [esp + 0x34], 4
mov dword [esp + 4], eax
mov dword [esp], edx
mov dword [esp + 0x20], edx
je 0x411a41
call dbg.__strtold
test ebx, ebx
mov eax, dword [esp + 0x94]
mov edx, dword [esp + 0x20]
jne 0x411607
cmp edx, eax
je 0x40ff05
cmp dword [esp + 0x74], 0x2d
fstp qword [esp + 0x20]
fld qword [esp + 0x20]
jne 0x410c5a
fchs
mov ebx, dword [esp + 0x58]
test ebx, ebx
jne 0x4124cb
mov ecx, dword [esp + 0x4c]
mov eax, dword [ecx]
fstp qword [eax]
lea eax, [ecx + 4]
mov dword [esp + 0x4c], eax
jmp 0x410268
call sym.__errno
mov dword [eax], 0x16
jmp 0x40f62b
mov dword [esp], esi
call sym._malloc
test eax, eax
jne 0x41044e
xor ebx, ebx
jmp 0x410457
or dword [esp + 0x34], 0xc
movzx edx, byte [ebx + 2]
lea edi, [ebx + 2]
jmp 0x40f518
or dword [esp + 0x34], 0x404
movzx edx, byte [ebx + 2]
lea edi, [ebx + 2]
jmp 0x40f518
or dword [esp + 0x34], 1
movzx edx, byte [ebx + 2]
lea edi, [ebx + 2]
jmp 0x40f518
mov dword [esp + 0x5c], edi
mov ebp, ebx
mov edx, dword [esp + 0x20]
test edx, edx
jne 0x4104b7
mov eax, dword [esp + 0x5c]
mov edi, dword [esp + 0x30]
mov byte [eax], 0
lea ebx, [eax + 1]
test edi, edi
je 0x410d2c
mov eax, dword [edi]
test eax, eax
je 0x410d2c
mov edx, ebx
sub edx, eax
cmp dword [esp + 0x54], edx
je 0x410d2c
mov dword [esp + 4], edx
mov dword [esp], eax
call sym._realloc
test eax, eax
je 0x410d2c
mov dword [edi], eax
add dword [esp + 0x2c], 1
mov dword [esp + 0x5c], ebx
mov dword [esp + 0x30], 0
jmp 0x40f29c
mov edx, dword [esp + 0x48]
mov eax, dword [esp + 0x28]
call sym._in_ch
mov ebp, eax
cmp eax, 0xffffffff
jne 0x410400
jmp 0x410b7f
mov edi, dword [esp + 0x1c]
mov byte [ebx + edx], 1
add edi, 1
movzx eax, byte [edi]
mov dword [esp + 0x1c], edi
jmp 0x41063e
mov eax, dword [esp + 0x64]
test eax, eax
jne 0x410594
test byte [esp + 0x35], 6
je 0x411c40
mov eax, dword [esp + 0x58]
test eax, eax
jne 0x4122e2
mov eax, dword [esp + 0x4c]
mov esi, dword [eax]
add eax, 4
mov dword [esp + 0x4c], eax
mov dword [esp + 0x30], esi
mov ebp, dword [esp + 0x30]
test ebp, ebp
je 0x4122bd
mov dword [esp], 0x64
call sym._malloc
mov ecx, dword [esp + 0x30]
mov dword [esp + 0x5c], eax
mov dword [ecx], eax
test eax, eax
jne 0x410548
test byte [esp + 0x35], 4
je 0x40ff0f
mov dword [esp + 0x2c], 0xffffffff
jmp 0x40ff0f
cmp dword [esp + 0x2c], 0xffffffff
mov esi, ebx
je 0x40f618
mov ebx, dword [esp + 0x84]
test ebx, ebx
je 0x410e19
mov eax, ebx
mov ebx, dword [ebx + 4]
mov dword [esp], eax
call sym._free
test ebx, ebx
jne 0x410e08
mov dword [esp + 0x84], 0
mov ecx, dword [esp + 0x30]
test ecx, ecx
je 0x40f36c
mov edi, dword [esp + 0x30]
mov eax, dword [edi]
mov dword [esp], eax
call sym._free
mov dword [edi], 0
jmp 0x40f36c
mov ebx, dword [esp + 0x90]
mov eax, dword [esp + 0x20]
cmp eax, dword [esp + 0x8c]
jne 0x410e8f
lea esi, [eax + eax]
mov eax, 0x100
cmp esi, eax
cmovb esi, eax
test ebx, ebx
je 0x411f3b
mov dword [esp + 4], esi
mov dword [esp], ebx
call sym._realloc
test eax, eax
je 0x41296f
mov dword [esp + 0x8c], esi
mov ebx, eax
mov ecx, dword [esp + 0x20]
movzx eax, byte [esp + 0x64]
mov byte [esp + 0x68], 1
mov dword [esp + 0x90], ebx
mov byte [ebx + ecx], al
lea eax, [ecx + 1]
mov dword [esp + 0x20], eax
mov byte [esp + 0x6c], 1
jmp 0x4103d4
mov esi, 0x7fffffff
jmp 0x410a3e
mov eax, esi
mov dword [esp + 0x1c], edx
mov edx, dword [esp + 0x20]
cmp al, 0x5e
mov eax, dword [esp + 0x88]
sete byte [esp + 0x58]
test edx, edx
mov dword [esp + 0x68], eax
lea eax, [esp + 0x88]
mov dword [esp + 0x48], eax
mov edx, eax
mov eax, dword [esp + 0x28]
je 0x4117be
call sym._in_ch
mov ebp, eax
cmp eax, 0xffffffff
je 0x412028
mov eax, dword [esp + 0x34]
xor esi, esi
lea edi, [esp + 0xa8]
mov dword [esp + 0xa8], 0
mov dword [esp + 0x20], edi
mov edi, esi
mov esi, ebx
mov ebx, dword [esp + 0x40]
mov dword [esp + 0xac], 0
and eax, 0x600
mov dword [esp + 0x6c], eax
jmp 0x410f6b
sub ebx, 1
test ebx, ebx
jle 0x411ca0
mov edx, dword [esp + 0x48]
mov eax, dword [esp + 0x28]
call sym._in_ch
mov ebp, eax
cmp eax, 0xffffffff
je 0x411ca0
movzx eax, byte [esp + 0x58]
cmp byte [esi + ebp], al
je 0x411f9a
mov eax, dword [esp + 0x64]
test eax, eax
jne 0x410f48
mov eax, ebp
mov dword [esp + 8], 1
add edi, 1
mov byte [esp + 0x9b], al
mov eax, dword [esp + 0x20]
mov dword [esp + 0xc], eax
lea eax, [esp + 0x9b]
mov dword [esp + 4], eax
mov eax, dword [esp + 0x50]
mov dword [esp], eax
call dbg.mbrtowc
cmp eax, 0xfffffffe
je 0x410f53
mov edi, dword [esp + 0x6c]
add dword [esp + 0x50], 2
test edi, edi
je 0x41148e
mov edi, dword [esp + 0x30]
mov edx, dword [edi]
mov edi, dword [esp + 0x54]
lea ecx, [edi + edi]
xor edi, edi
lea eax, [edx + ecx]
cmp dword [esp + 0x50], eax
jne 0x410f48
mov dword [esp + 0x40], esi
mov edi, ecx
mov esi, ebx
mov ebx, ecx
lea eax, [edi + edi]
mov dword [esp], edx
mov dword [esp + 4], eax
call sym._realloc
test eax, eax
je 0x412a41
mov edx, dword [esp + 0x30]
mov ecx, ebx
mov dword [esp + 0x54], edi
mov ebx, esi
xor edi, edi
mov esi, dword [esp + 0x40]
mov dword [edx], eax
add eax, ecx
mov dword [esp + 0x50], eax
jmp 0x410f48
mov ebp, dword [esp + 0x74]
jmp 0x4102f3
mov ecx, dword [esp + 0x44]
mov eax, 0xa
test ecx, ecx
cmovne eax, ecx
mov dword [esp + 0x44], eax
cmp ebp, 0xffffffff
je 0x412772
test bl, bl
je 0x412772
mov eax, dword [esp + 0x34]
mov esi, dword [esp + 0x40]
mov edx, ebp
and eax, 0x100
mov dword [esp + 0x64], eax
jmp 0x41110d
lea eax, [edx - 0x30]
cmp eax, 9
ja 0x411170
mov ecx, dword [esp + 0x44]
lea eax, [edx - 0x2f]
cmp eax, ecx
jg 0x411220
mov eax, dword [esp + 0x20]
mov edi, eax
add eax, 1
mov dword [esp + 0x20], eax
mov ebx, dword [esp + 0x90]
cmp edi, dword [esp + 0x8c]
jne 0x4110e2
lea ebp, [edi + edi]
mov eax, 0x100
mov dword [esp + 0x40], edx
cmp ebp, eax
cmovb ebp, eax
test ebx, ebx
je 0x4111fd
mov dword [esp + 4], ebp
mov dword [esp], ebx
call sym._realloc
mov edx, dword [esp + 0x40]
test eax, eax
je 0x412996
mov dword [esp + 0x8c], ebp
mov ebx, eax
xor eax, eax
test esi, esi
mov byte [ebx + edi], dl
mov edx, dword [esp + 0x48]
setg al
mov dword [esp + 0x90], ebx
sub esi, eax
mov eax, dword [esp + 0x28]
call sym._in_ch
mov edx, eax
cmp eax, 0xffffffff
je 0x411130
test esi, esi
je 0x411130
cmp dword [esp + 0x44], 0x10
jne 0x411070
mov dword [esp], edx
mov dword [esp + 0x40], edx
call sym._isxdigit
mov edx, dword [esp + 0x40]
test eax, eax
jne 0x41108b
mov ebp, edx
mov eax, dword [esp + 0x20]
test eax, eax
jne 0x410142
test byte [esp + 0x34], 0x20
je 0x411155
mov dword [esp], ebp
call sym._tolower
cmp al, 0x28
je 0x4119a8
xor edi, edi
mov ecx, dword [esp + 0x48]
mov edx, dword [esp + 0x28]
mov eax, ebp
mov dword [esp], edi
call sym._back_ch
jmp 0x40ff0f
cmp dword [esp + 0x44], 0xa
jne 0x411220
mov eax, dword [esp + 0x64]
test eax, eax
je 0x411130
mov eax, dword [esp + 0x38]
movzx ebx, byte [eax]
test esi, esi
jle 0x41122f
mov edi, esi
cmp edx, ebx
jne 0x412018
mov dword [esp + 0x40], esi
mov ebx, dword [esp + 0x38]
mov eax, edx
mov esi, dword [esp + 0x48]
jmp 0x4111d2
test edi, edi
je 0x411260
mov eax, dword [esp + 0x28]
mov edx, esi
call sym._in_ch
cmp eax, 0xffffffff
je 0x4111dc
movzx edx, byte [ebx]
sub edi, 1
cmp eax, edx
jne 0x4111dc
mov ebp, ebx
add ebx, 1
cmp byte [ebx], 0
jne 0x4111b0
cmp byte [ebx], 0
mov esi, dword [esp + 0x40]
mov edx, eax
jne 0x41274f
test esi, esi
jle 0x4111f1
mov esi, edi
mov eax, dword [esp + 0x20]
lea edi, [eax - 1]
jmp 0x411098
mov dword [esp], ebp
call sym._malloc
mov edx, dword [esp + 0x40]
test eax, eax
jne 0x4110d9
xor ebx, ebx
jmp 0x4110e2
mov dword [esp + 0x44], 8
mov ebp, edx
jmp 0x411132
mov edi, 0x7fffffff
cmp edx, ebx
je 0x41119c
test bl, bl
je 0x4111f1
cmp dword [esp + 0x20], 0
mov ebp, edx
je 0x41113e
cmp dword [esp + 0x20], 1
je 0x410149
jmp 0x41016b
mov esi, ebp
mov ebp, eax
cmp dword [esp + 0x38], ebx
jae 0x411132
xor eax, eax
mov edi, dword [esp + 0x28]
mov ecx, dword [esp + 0x48]
mov dword [esp], eax
mov eax, ebp
mov edx, edi
call sym._back_ch
cmp dword [esp + 0x38], esi
jae 0x4127b2
mov ebp, esi
jmp 0x4112bb
mov eax, dword [edi + 0x1008]
mov dword [esp + 0x88], edx
mov dword [edi + eax*4 + 4], ecx
add eax, 1
mov dword [edi + 0x1008], eax
mov eax, dword [esp + 0x38]
sub ebp, 1
cmp ebp, eax
je 0x4127aa
mov eax, dword [esp + 0x88]
movzx ecx, byte [ebp]
lea edx, [eax - 1]
test byte [edi + 0x1004], 1
jne 0x411292
mov eax, dword [edi]
mov dword [esp], ecx
mov dword [esp + 0x40], edx
mov dword [esp + 4], eax
call sym._ungetc
mov edx, dword [esp + 0x40]
mov dword [esp + 0x88], edx
jmp 0x4112ac
mov eax, dword [esp + 0x30]
mov dword [esp + 0x5c], esi
mov ebp, ebx
test eax, eax
je 0x410a28
mov edi, dword [esp + 0x30]
mov eax, dword [edi]
test eax, eax
je 0x410a28
mov edx, dword [esp + 0x5c]
sub edx, eax
cmp dword [esp + 0x54], edx
je 0x410a28
mov dword [esp + 4], edx
mov dword [esp], eax
call sym._realloc
test eax, eax
je 0x410a28
mov dword [edi], eax
jmp 0x410a28
test eax, eax
mov eax, dword [esp + 0x44]
mov dword [esp], ebx
mov dword [esp + 8], eax
lea eax, [esp + 0x94]
mov dword [esp + 4], eax
je 0x4118e2
call sym._strtol
cmp ebx, dword [esp + 0x94]
je 0x40ff0f
test byte [esp + 0x34], 0x80
jne 0x4104b7
test byte [esp + 0x34], 4
jne 0x411db7
test byte [esp + 0x34], 2
jne 0x412381
test byte [esp + 0x34], 1
je 0x4128c8
cmp dword [esp + 0x58], 0
jne 0x4128ad
mov edi, dword [esp + 0x4c]
mov edx, dword [edi]
lea esi, [edi + 4]
mov dword [esp + 0x4c], esi
mov byte [edx], al
jmp 0x410268
mov eax, dword [eax]
mov dword [esp], ebp
mov dword [esp + 4], eax
call sym._ungetc
mov dword [esp + 0x88], ebx
jmp 0x4107b4
mov eax, dword [esp + 0x58]
test eax, eax
jne 0x411e6f
mov eax, dword [esp + 0x4c]
mov edi, dword [eax]
add eax, 4
mov dword [esp + 0x4c], eax
mov dword [esp + 0x5c], edi
mov ebp, dword [esp + 0x5c]
test ebp, ebp
jne 0x40f815
jmp 0x40ff0f
mov eax, dword [esp + 0x54]
mov dword [esp + 0x58], ebp
mov ebp, esi
mov esi, ebx
lea ecx, [eax + eax]
mov ebx, ecx
mov dword [esp + 4], ebx
mov dword [esp], edx
call sym._realloc
mov edi, eax
test eax, eax
je 0x41297e
mov eax, dword [esp + 0x30]
mov ecx, ebx
mov ebx, esi
mov esi, ebp
mov ebp, dword [esp + 0x58]
mov dword [eax], edi
mov eax, dword [esp + 0x54]
mov dword [esp + 0x54], ecx
add edi, eax
jmp 0x40f86a
mov ecx, dword [esp + 0x58]
mov eax, dword [esp + 0x3c]
cmp ecx, 1
je 0x411467
lea eax, [eax + ecx*4 - 4]
mov eax, dword [eax]
mov dword [esp + 0x30], eax
jmp 0x40fc88
mov ecx, dword [esp + 0x58]
mov eax, dword [esp + 0x3c]
cmp ecx, 1
je 0x411483
lea eax, [eax + ecx*4 - 4]
mov eax, dword [eax]
mov dword [esp + 0x50], eax
jmp 0x40ff53
xor edi, edi
jmp 0x410f48
mov eax, dword [esp + 0x28]
mov byte [esp + 0x20], dl
mov eax, dword [eax]
mov dword [esp], ebp
mov dword [esp + 4], eax
call sym._ungetc
mov dword [esp + 0x88], ebx
movzx edx, byte [esp + 0x20]
jmp 0x40f6b8
mov ecx, dword [esp + 0x58]
mov eax, dword [esp + 0x3c]
cmp ecx, 1
je 0x4114cd
lea eax, [eax + ecx*4 - 4]
mov eax, dword [eax]
mov dword [esp + 0x30], eax
jmp 0x40fb02
mov ecx, dword [esp + 0x58]
mov eax, dword [esp + 0x3c]
cmp ecx, 1
je 0x4114e9
lea eax, [eax + ecx*4 - 4]
mov eax, dword [eax]
mov dword [esp + 0x50], eax
jmp 0x40fef7
cmp dword [esp + 0x2c], 0xffffffff
je 0x40f618
mov ebx, dword [esp + 0x84]
test ebx, ebx
je 0x40f249
mov eax, ebx
mov ebx, dword [ebx + 4]
mov dword [esp], eax
call sym._free
test ebx, ebx
jne 0x41150e
jmp 0x40f249
mov esi, dword [esp + 0x58]
test esi, esi
jne 0x412056
mov eax, dword [esp + 0x4c]
mov ebx, dword [eax]
add eax, 4
mov dword [esp + 0x4c], eax
test ebx, ebx
jne 0x40f98e
jmp 0x40ff0f
mov dword [esp], eax
call sym._tolower
cmp eax, 0x6e
je 0x41206e
cmp eax, 0x69
je 0x411b20
mov byte [esp + 0x64], 0x65
mov dword [esp + 0x20], 0
cmp ebp, 0x30
jne 0x410326
mov ebp, dword [esp + 0x8c]
mov ebx, dword [esp + 0x90]
test ebp, ebp
jne 0x4115bf
test ebx, ebx
je 0x412791
mov dword [esp + 4], 0x100
mov dword [esp], ebx
call sym._realloc
test eax, eax
je 0x41d524
mov dword [esp + 0x8c], 0x100
mov ebx, eax
mov edx, dword [esp + 0x48]
mov eax, dword [esp + 0x28]
mov byte [ebx], 0x30
mov dword [esp + 0x90], ebx
call sym._in_ch
mov ebp, eax
mov eax, dword [esp + 0x40]
test eax, eax
jle 0x412532
sub eax, 1
mov esi, eax
jne 0x4126a1
xor edi, edi
mov byte [esp + 0x64], 0x65
mov dword [esp + 0x40], edi
mov dword [esp + 0x20], 1
jmp 0x410326
fstp st(0)
jmp 0x411611
fstp st(0)
jmp 0x411611
fstp st(0)
cmp edx, eax
jne 0x4104b7
jmp 0x40ff0f
mov eax, dword [esp + 0x88]
mov ebp, ebx
mov dword [esp + 0x5c], edi
lea ebx, [eax - 1]
mov eax, dword [esp + 0x28]
test byte [eax + 0x1004], 1
je 0x4122a3
mov ecx, dword [esp + 0x28]
mov dword [esp + 0x88], ebx
mov eax, dword [ecx + 0x1008]
mov dword [ecx + eax*4 + 4], ebp
add eax, 1
mov dword [ecx + 0x1008], eax
jmp 0x410cec
mov eax, dword [esp + 0x8c]
mov ebx, dword [esp + 0x90]
test eax, eax
jne 0x4116a3
test ebx, ebx
je 0x4124f0
mov dword [esp + 4], 0x100
mov dword [esp], ebx
call sym._realloc
test eax, eax
je sym.___mingw_sformat.cold
mov dword [esp + 0x8c], 0x100
mov ebx, eax
mov eax, ebp
mov dword [esp + 0x90], ebx
mov byte [ebx], al
mov eax, dword [esp + 0x40]
mov ebx, 1
test eax, eax
jle 0x4116c5
sub eax, 1
mov dword [esp + 0x40], eax
setne bl
mov edx, dword [esp + 0x48]
mov eax, dword [esp + 0x28]
call sym._in_ch
mov dword [esp + 0x20], 1
mov ebp, eax
jmp 0x410098
mov ebp, eax
movzx eax, byte [ebx + 1]
test al, al
je 0x410a92
mov eax, dword [esp + 0x7c]
test eax, eax
jne 0x411728
mov eax, dword [esp + 0x38]
test eax, eax
je 0x410b41
mov ebx, eax
cmp byte [ebx], 0
jne 0x410b41
mov edi, dword [esp + 0x40]
test edi, edi
jle 0x4103d4
mov byte [esp + 0x6c], 0
mov dword [esp + 0x40], esi
jmp 0x4103d4
mov eax, dword [esp + 0x60]
mov ebx, dword [esp + 0x38]
sub edi, eax
xor eax, eax
test edi, edi
jle 0x412509
mov ecx, dword [esp + 0x38]
mov edx, dword [esp + 0x60]
mov dword [esp + 0x70], ecx
jmp 0x411759
mov ecx, dword [esp + 0x70]
add ebx, 1
mov eax, ebx
sub eax, ecx
cmp eax, edi
jge 0x411761
movzx ecx, byte [edx + eax]
cmp byte [ebx], cl
je 0x41174a
cmp edi, eax
jne 0x411705
movzx eax, byte [ebx]
cmp eax, ebp
je 0x41179a
jmp 0x411705
test esi, esi
je 0x411705
mov edx, dword [esp + 0x48]
mov eax, dword [esp + 0x28]
call sym._in_ch
mov ebp, eax
cmp eax, 0xffffffff
je 0x411705
movzx eax, byte [ebx]
sub esi, 1
cmp ebp, eax
jne 0x411705
add ebx, 1
cmp byte [ebx], 0
jne 0x411770
jmp 0x411705
mov ebp, edx
jmp 0x4116ef
mov ebp, edx
jmp 0x4116e7
call sym._in_ch
mov ebp, eax
cmp eax, 0xffffffff
je 0x412028
mov edi, dword [esp + 0x34]
mov esi, dword [esp + 0x40]
and edi, 0x600
mov dword [esp + 0x40], edi
mov edi, dword [esp + 0x5c]
jmp 0x41181e
mov ecx, dword [esp + 0x30]
mov edi, dword [esp + 0x54]
mov edx, dword [ecx]
lea ecx, [edx + edi]
mov edi, eax
cmp eax, ecx
je 0x4121d0
sub esi, 1
je 0x411d28
mov edx, dword [esp + 0x48]
mov eax, dword [esp + 0x28]
call sym._in_ch
mov ebp, eax
cmp eax, 0xffffffff
je 0x411d28
movzx eax, byte [esp + 0x58]
cmp byte [ebx + ebp], al
je 0x411f58
mov eax, dword [esp + 0x64]
test eax, eax
jne 0x4117fd
mov ecx, ebp
lea eax, [edi + 1]
mov byte [edi], cl
mov ecx, dword [esp + 0x40]
test ecx, ecx
jne 0x4117e6
mov edi, eax
jmp 0x4117fd
cmp dword [esp + 0x20], eax
je 0x4100d5
mov eax, dword [esp + 0x20]
mov edx, dword [esp + 0x48]
mov byte [esi + eax], 0x30
mov eax, dword [esp + 0x28]
call sym._in_ch
mov ebp, eax
mov dword [esp], ebp
call sym._tolower
cmp eax, 0x78
je 0x411f00
mov esi, dword [esp + 0x44]
mov eax, 8
test esi, esi
cmovne eax, esi
mov dword [esp + 0x44], eax
cmp ebp, 0xffffffff
je 0x412843
mov edx, dword [esp + 0x40]
test edx, edx
je 0x412843
mov dword [esp + 0x20], ebx
jmp 0x411052
mov ecx, dword [esp + 0x34]
and ecx, 4
mov dword [esp + 0x20], ecx
je 0x411df0
mov ecx, dword [esp + 0x58]
test ecx, ecx
jne 0x41242b
mov ecx, dword [esp + 0x4c]
lea edi, [ecx + 4]
mov edx, dword [ecx]
mov dword [esp + 0x4c], edi
mov dword [edx], eax
mov dword [esp + 0x20], 0
jmp 0x40f29c
call sym._strtoul
cmp dword [esp + 0x94], ebx
je 0x40ff0f
test byte [esp + 0x34], 0x80
jne 0x4104b7
test byte [esp + 0x34], 4
jne 0x411db7
test byte [esp + 0x34], 2
jne 0x412381
test byte [esp + 0x34], 1
je 0x4129a9
cmp dword [esp + 0x58], 0
je 0x4113aa
mov ebx, dword [esp + 0x3c]
mov edx, dword [esp + 0x58]
xor ecx, ecx
jmp 0x41193c
mov ecx, 1
sub edx, 1
jne 0x411937
test cl, cl
je 0x411951
mov ecx, dword [esp + 0x3c]
mov edi, dword [esp + 0x58]
lea ebx, [ecx + edi*4 - 4]
mov edx, dword [ebx]
mov byte [edx], al
jmp 0x410268
call dbg.strtoumax
cmp dword [esp + 0x94], ebx
je 0x40ff0f
test byte [esp + 0x34], 0x80
jne 0x4104b7
mov ecx, dword [esp + 0x58]
test ecx, ecx
je 0x410256
mov edi, dword [esp + 0x58]
mov ecx, dword [esp + 0x3c]
cmp edi, 1
je 0x41199a
lea ecx, [ecx + edi*4 - 4]
mov ecx, dword [ecx]
jmp 0x410263
mov ebp, dword [esp + 0x48]
mov ebx, 0x6e
mov esi, 0x425671
jmp 0x4119cf
mov dword [esp], eax
call sym._tolower
cmp bl, al
jne 0x4119e1
movzx ebx, byte [esi + 1]
add esi, 1
test bl, bl
je 0x4119e8
mov eax, dword [esp + 0x28]
mov edx, ebp
call sym._in_ch
mov edi, eax
cmp eax, 0xffffffff
jne 0x4119b8
mov ebp, edi
jmp 0x411155
mov eax, dword [esp + 0x8c]
mov esi, dword [esp + 0x90]
mov ebp, edi
mov dword [esp + 0x20], eax
test eax, eax
jne 0x411ae2
test esi, esi
je 0x4121b0
mov dword [esp + 4], 0x100
mov dword [esp], esi
call sym._realloc
mov ebx, eax
test eax, eax
je 0x41d502
mov dword [esp + 0x8c], 0x100
mov byte [ebx], 0x30
mov dword [esp + 0x20], 1
jmp 0x4101ea
call dbg.__strtof
test ebx, ebx
mov eax, dword [esp + 0x94]
mov edx, dword [esp + 0x20]
jne 0x41160b
cmp edx, eax
je 0x40ff09
fld st(0)
mov ecx, dword [esp + 0x58]
cmp dword [esp + 0x74], 0x2d
fchs
fcmovne st(0), st(1)
fstp st(1)
test ecx, ecx
jne 0x4123e0
mov ecx, dword [esp + 0x4c]
mov eax, dword [ecx]
fstp dword [eax]
lea eax, [ecx + 4]
mov dword [esp + 0x4c], eax
jmp 0x410268
mov dword [esp + 4], eax
mov dword [esp], edx
mov dword [esp + 0x20], edx
call dbg.__strtold
test ebx, ebx
mov eax, dword [esp + 0x94]
mov edx, dword [esp + 0x20]
jne 0x41160f
cmp edx, eax
je 0x40ff0d
cmp dword [esp + 0x74], 0x2d
jne 0x411ac2
fchs
mov esi, dword [esp + 0x58]
test esi, esi
jne 0x4123be
mov ecx, dword [esp + 0x4c]
mov eax, dword [ecx]
fstp xword [eax]
lea eax, [ecx + 4]
mov dword [esp + 0x4c], eax
jmp 0x410268
cmp dword [esp + 0x20], 1
mov byte [esi], 0x30
jne 0x412a59
mov edx, 0x100
mov dword [esp + 4], edx
mov dword [esp], esi
mov dword [esp + 0x40], edx
call sym._realloc
mov edx, dword [esp + 0x40]
test eax, eax
mov ebx, eax
jne 0x4101e3
mov dword [esp], esi
call sym._free
jmp 0x4101ea
mov eax, dword [esp + 0x8c]
mov ebx, dword [esp + 0x90]
test eax, eax
jne 0x411b5f
test ebx, ebx
je 0x412555
mov dword [esp + 4], 0x100
mov dword [esp], ebx
call sym._realloc
test eax, eax
je 0x41d4f1
mov dword [esp + 0x8c], 0x100
mov ebx, eax
mov eax, ebp
mov dword [esp + 0x90], ebx
mov esi, dword [esp + 0x40]
mov byte [ebx], al
mov ebx, 1
jmp 0x411bb8
mov dword [esp], ecx
mov dword [esp + 4], edi
mov dword [esp + 0x20], ecx
call sym._realloc
mov ecx, dword [esp + 0x20]
test eax, eax
je 0x4125d9
mov dword [esp + 0x8c], edi
mov ecx, eax
mov edx, ebp
cmp byte [ebx + 0x42567b], 0
mov dword [esp + 0x90], ecx
lea eax, [ebx + 1]
mov byte [ecx + ebx], dl
je 0x412583
mov ebx, eax
test esi, esi
je 0x411e1c
mov edx, dword [esp + 0x48]
mov eax, dword [esp + 0x28]
call sym._in_ch
mov ebp, eax
cmp eax, 0xffffffff
je 0x411e1c
mov dword [esp], eax
call sym._tolower
mov edx, eax
movsx eax, byte [ebx + 0x42567a]
cmp edx, eax
jne 0x411e1c
xor eax, eax
test esi, esi
mov ecx, dword [esp + 0x90]
setg al
sub esi, eax
cmp ebx, dword [esp + 0x8c]
jne 0x411b9a
lea edi, [ebx + ebx]
mov eax, 0x100
cmp edi, eax
cmovb edi, eax
test ecx, ecx
jne 0x411b75
mov dword [esp], edi
call sym._malloc
test eax, eax
jne 0x411b91
xor ecx, ecx
jmp 0x411b9a
mov esi, dword [esp + 0x58]
test esi, esi
jne 0x4124af
mov eax, dword [esp + 0x4c]
mov ecx, dword [eax]
add eax, 4
mov dword [esp + 0x4c], eax
mov dword [esp + 0x5c], ecx
mov ebx, dword [esp + 0x5c]
test ebx, ebx
jne 0x410594
jmp 0x40ff0f
mov eax, dword [esp + 0x58]
test eax, eax
jne 0x412477
mov eax, dword [esp + 0x4c]
mov ecx, dword [eax]
add eax, 4
mov dword [esp + 0x4c], eax
mov dword [esp + 0x50], ecx
mov eax, dword [esp + 0x50]
test eax, eax
jne 0x410594
jmp 0x40ff0f
mov esi, edi
test esi, esi
jne 0x41231d
mov eax, dword [esp + 0x68]
cmp dword [esp + 0x88], eax
je 0x40ff0f
mov ecx, dword [esp + 0x64]
mov dword [esp + 0x20], 0
test ecx, ecx
jne 0x40f29c
mov eax, dword [esp + 0x50]
mov esi, dword [esp + 0x30]
xor edx, edx
mov word [eax], dx
lea ebx, [eax + 2]
test esi, esi
je 0x411d0a
mov eax, dword [esi]
test eax, eax
je 0x411d0a
mov edi, dword [esp + 0x54]
mov edx, ebx
sub edx, eax
lea ecx, [edi + edi]
cmp ecx, edx
je 0x411d0a
mov dword [esp + 4], edx
mov dword [esp], eax
call sym._realloc
test eax, eax
je 0x411d0a
mov dword [esi], eax
add dword [esp + 0x2c], 1
mov dword [esp + 0x20], 0
mov dword [esp + 0x50], ebx
mov dword [esp + 0x30], 0
jmp 0x40f29c
mov dword [esp + 0x5c], edi
mov ebx, dword [esp + 0x88]
mov eax, dword [esp + 0x68]
cmp ebx, eax
je 0x40ff0f
mov eax, dword [esp + 0x64]
test eax, eax
jne 0x40f29c
mov eax, dword [esp + 0x5c]
mov edi, dword [esp + 0x30]
mov byte [eax], 0
lea ebx, [eax + 1]
test edi, edi
je 0x411d7f
mov eax, dword [edi]
test eax, eax
je 0x411d7f
mov edx, ebx
sub edx, eax
cmp dword [esp + 0x54], edx
je 0x411d7f
mov dword [esp + 4], edx
mov dword [esp], eax
call sym._realloc
test eax, eax
je 0x411d7f
mov dword [edi], eax
add dword [esp + 0x2c], 1
mov dword [esp + 0x20], 0
mov dword [esp + 0x5c], ebx
mov dword [esp + 0x30], 0
jmp 0x40f29c
mov eax, dword [eax]
mov dword [esp], ebx
mov dword [esp + 4], eax
call sym._ungetc
mov dword [esp + 0x88], esi
jmp 0x40f315
mov esi, dword [esp + 0x58]
test esi, esi
jne 0x4123a2
mov ecx, dword [esp + 0x4c]
mov edx, dword [ecx]
add ecx, 4
mov dword [esp + 0x4c], ecx
mov dword [edx], eax
jmp 0x410268
mov dword [esp], ebx
call sym._malloc
test eax, eax
jne 0x410be0
xor edx, edx
jmp 0x410be9
test byte [esp + 0x34], 2
je 0x412204
mov edx, dword [esp + 0x58]
test edx, edx
jne 0x412aa4
mov ecx, dword [esp + 0x4c]
lea edi, [ecx + 4]
mov edx, dword [ecx]
mov dword [esp + 0x4c], edi
mov word [edx], ax
jmp 0x40f29c
cmp dword [esp + 0x2c], 0xffffffff
je 0x40f618
mov ebx, dword [esp + 0x84]
test ebx, ebx
je 0x40f249
mov eax, ebx
mov ebx, dword [ebx + 4]
mov dword [esp], eax
call sym._free
test ebx, ebx
jne 0x411e36
jmp 0x40f249
mov esi, ebx
jmp 0x411af5
mov ecx, dword [esp + 0x58]
mov eax, dword [esp + 0x3c]
cmp ecx, 1
je 0x411e64
lea eax, [eax + ecx*4 - 4]
mov eax, dword [eax]
mov dword [esp + 0x30], eax
jmp 0x40f79f
mov ecx, dword [esp + 0x58]
mov eax, dword [esp + 0x3c]
cmp ecx, 1
je 0x411e80
lea eax, [eax + ecx*4 - 4]
mov eax, dword [eax]
mov dword [esp + 0x5c], eax
jmp 0x4113f7
mov ecx, dword [esp + 0x58]
mov eax, dword [esp + 0x3c]
cmp ecx, 1
je 0x411e9c
lea eax, [eax + ecx*4 - 4]
mov eax, dword [eax]
mov dword [esp + 0x30], eax
jmp 0x40f914
mov eax, dword [esp + 0x2c]
add eax, 1
cmp eax, 1
jbe 0x40f618
mov ebx, dword [esp + 0x84]
test ebx, ebx
je 0x40f249
mov eax, ebx
mov ebx, dword [ebx + 4]
mov dword [esp], eax
call sym._free
test ebx, ebx
jne 0x411ec6
jmp 0x40f249
mov dword [esp], 0x100
call sym._malloc
test eax, eax
jne 0x4100f5
xor esi, esi
jmp 0x410102
test dword [esp + 0x44], 0xffffffef
jne 0x41188b
mov ecx, dword [esp + 0x40]
xor eax, eax
mov edx, dword [esp + 0x48]
test ecx, ecx
setg al
sub ecx, eax
mov eax, dword [esp + 0x28]
mov dword [esp + 0x40], ecx
call sym._in_ch
mov dword [esp + 0x44], 0x10
mov ebp, eax
jmp 0x41188b
mov dword [esp], esi
call sym._malloc
test eax, eax
jne 0x410e86
xor ebx, ebx
jmp 0x410e8f
mov eax, dword [esp + 0x88]
mov dword [esp + 0x5c], edi
lea ebx, [eax - 1]
mov eax, dword [esp + 0x28]
test byte [eax + 0x1004], 1
je 0x412ad6
mov ecx, dword [esp + 0x28]
mov dword [esp + 0x88], ebx
mov eax, dword [ecx + 0x1008]
mov dword [ecx + eax*4 + 4], ebp
add eax, 1
mov dword [ecx + 0x1008], eax
jmp 0x411d33
mov eax, dword [esp + 0x88]
mov esi, edi
lea ebx, [eax - 1]
mov eax, dword [esp + 0x28]
test byte [eax + 0x1004], 1
je 0x412a27
mov ecx, dword [esp + 0x28]
mov dword [esp + 0x88], ebx
mov eax, dword [ecx + 0x1008]
mov dword [ecx + eax*4 + 4], ebp
add eax, 1
mov dword [ecx + 0x1008], eax
jmp 0x411ca2
mov eax, dword [esp + 0x88]
lea ebx, [eax - 1]
mov eax, dword [esp + 0x28]
test byte [eax + 0x1004], 1
je 0x412758
mov ecx, dword [esp + 0x28]
mov dword [esp + 0x88], ebx
mov eax, dword [ecx + 0x1008]
mov dword [ecx + eax*4 + 4], ebp
add eax, 1
mov dword [ecx + 0x1008], eax
jmp 0x410992
test bl, bl
je 0x4111ef
jmp 0x411240
mov eax, dword [esp + 0x2c]
mov ecx, dword [esp + 0x30]
lea edx, [esp + 0x84]
test eax, eax
cmovne ebp, eax
lea eax, [esp + 0x90]
mov dword [esp], eax
mov eax, ebp
call sym._cleanup_return
mov dword [esp + 0x2c], eax
jmp 0x40f27f
mov esi, dword [esp + 0x58]
mov eax, dword [esp + 0x3c]
cmp esi, 1
je 0x412067
lea eax, [eax + esi*4 - 4]
mov ebx, dword [eax]
jmp 0x41153d
mov eax, dword [esp + 0x8c]
mov ebx, dword [esp + 0x90]
test eax, eax
jne 0x4120ad
test ebx, ebx
je 0x41282a
mov dword [esp + 4], 0x100
mov dword [esp], ebx
call sym._realloc
test eax, eax
je 0x41d513
mov dword [esp + 0x8c], 0x100
mov ebx, eax
mov eax, ebp
mov dword [esp + 0x90], ebx
mov esi, dword [esp + 0x40]
mov byte [ebx], al
mov ebx, 1
jmp 0x41210c
mov dword [esp], edx
mov dword [esp + 4], edi
mov dword [esp + 0x20], edx
call sym._realloc
mov edx, dword [esp + 0x20]
test eax, eax
je 0x412782
mov dword [esp + 0x8c], edi
mov edx, eax
lea eax, [ebx + 1]
cmp byte [ebx + 0x425677], 0
mov dword [esp + 0x90], edx
mov dword [esp + 0x20], eax
mov eax, ebp
mov byte [edx + ebx], al
je 0x410b9b
mov ebx, dword [esp + 0x20]
test esi, esi
je 0x412180
mov edx, dword [esp + 0x48]
mov eax, dword [esp + 0x28]
call sym._in_ch
mov ebp, eax
cmp eax, 0xffffffff
je 0x412180
mov dword [esp], eax
call sym._tolower
mov edx, eax
movsx eax, byte [ebx + 0x425676]
cmp edx, eax
jne 0x412180
xor eax, eax
test esi, esi
mov edx, dword [esp + 0x90]
setg al
sub esi, eax
cmp ebx, dword [esp + 0x8c]
jne 0x4120e8
lea edi, [ebx + ebx]
mov eax, 0x100
cmp edi, eax
cmovb edi, eax
test edx, edx
jne 0x4120c3
mov dword [esp], edi
call sym._malloc
test eax, eax
jne 0x4120df
xor edx, edx
jmp 0x4120e8
cmp dword [esp + 0x2c], 0xffffffff
je 0x40f618
mov ebx, dword [esp + 0x84]
test ebx, ebx
je 0x40f659
mov eax, ebx
mov ebx, dword [ebx + 4]
mov dword [esp], eax
call sym._free
test ebx, ebx
jne 0x41219a
jmp 0x40f659
mov dword [esp], 0x100
call sym._malloc
mov ebx, eax
test eax, eax
jne 0x411a26
jmp 0x41d50a
mov eax, dword [esp + 0x54]
lea ecx, [eax + eax]
mov edi, ecx
mov dword [esp + 4], edi
mov dword [esp], edx
call sym._realloc
test eax, eax
je 0x412abe
mov ecx, edi
mov edi, dword [esp + 0x30]
mov dword [edi], eax
mov edi, dword [esp + 0x54]
mov dword [esp + 0x54], ecx
add edi, eax
jmp 0x4117fd
mov edi, dword [esp + 0x34]
and edi, 1
mov dword [esp + 0x20], edi
je 0x4122fe
cmp dword [esp + 0x58], 0
jne 0x41284c
mov edi, dword [esp + 0x4c]
lea ecx, [edi + 4]
mov edx, dword [edi]
mov dword [esp + 0x4c], ecx
mov byte [edx], al
xor eax, eax
mov dword [esp + 0x20], eax
jmp 0x40f29c
mov eax, dword [eax]
mov dword [esp], ebp
mov dword [esp + 4], eax
call sym._ungetc
mov dword [esp + 0x88], ebx
jmp 0x4101a4
mov esi, dword [esp + 0x3c]
mov ecx, dword [esp + 0x58]
mov edx, esi
cmp ecx, 1
je 0x412267
lea edx, [esi + ecx*4 - 4]
mov edx, dword [edx]
jmp 0x40f5b9
mov eax, dword [esp + 0x2c]
add eax, 1
cmp eax, 1
jbe 0x40f618
mov ebx, dword [esp + 0x84]
test ebx, ebx
je 0x40f659
mov eax, ebx
mov ebx, dword [ebx + 4]
mov dword [esp], eax
call sym._free
test ebx, ebx
jne 0x41228d
jmp 0x40f659
mov eax, dword [eax]
mov dword [esp], ebp
mov dword [esp + 4], eax
call sym._ungetc
mov dword [esp + 0x88], ebx
jmp 0x410cec
lea eax, [esp + 0x90]
lea edx, [esp + 0x84]
xor ecx, ecx
mov dword [esp], eax
mov eax, dword [esp + 0x2c]
call sym._cleanup_return
mov dword [esp + 0x2c], eax
jmp 0x40f27f
mov esi, dword [esp + 0x58]
mov eax, dword [esp + 0x3c]
cmp esi, 1
je 0x4122f3
lea eax, [eax + esi*4 - 4]
mov eax, dword [eax]
mov dword [esp + 0x30], eax
jmp 0x410dab
cmp dword [esp + 0x58], 0
jne 0x4127f6
mov edi, dword [esp + 0x4c]
mov edx, dword [edi]
lea esi, [edi + 4]
mov dword [esp + 0x4c], esi
mov dword [edx], eax
jmp 0x40f29c
call sym.__errno
mov dword [eax], 0x2a
jmp 0x40ff0f
mov dword [esp + 0x48], edi
mov ebx, ecx
mov edi, esi
mov esi, ecx
lea eax, [ebx + ebx]
mov dword [esp + 4], eax
mov eax, dword [esp + 0x30]
mov eax, dword [eax]
mov dword [esp], eax
call sym._realloc
test eax, eax
je 0x4127e4
mov edx, dword [esp + 0x30]
mov ecx, esi
mov dword [esp + 0x54], ebx
mov esi, edi
mov edi, dword [esp + 0x48]
mov dword [edx], eax
add eax, ecx
mov dword [esp + 0x50], eax
jmp 0x41096b
cmp dword [esp + 0x2c], 0
jne 0x40ff0f
jmp 0x410de0
mov ebx, dword [esp + 0x58]
test ebx, ebx
jne 0x412a0d
mov ecx, dword [esp + 0x4c]
mov edx, dword [ecx]
add ecx, 4
mov dword [esp + 0x4c], ecx
mov word [edx], ax
jmp 0x410268
mov edi, dword [esp + 0x3c]
mov ecx, dword [esp + 0x58]
mov edx, edi
cmp ecx, 1
je 0x4123b5
lea edx, [edi + ecx*4 - 4]
mov edx, dword [edx]
mov dword [edx], eax
jmp 0x410268
mov esi, dword [esp + 0x58]
mov ecx, dword [esp + 0x3c]
cmp esi, 1
je 0x4123cf
lea ecx, [ecx + esi*4 - 4]
mov ecx, dword [ecx]
fstp xword [ecx]
cmp edx, eax
jne 0x410268
jmp 0x40ff0f
mov edi, dword [esp + 0x3c]
mov esi, dword [esp + 0x58]
mov ecx, edi
cmp esi, 1
je 0x4123f3
lea ecx, [edi + esi*4 - 4]
mov ecx, dword [ecx]
fstp dword [ecx]
cmp edx, eax
jne 0x410268
jmp 0x40ff0f
add edx, 1
movzx eax, cl
jmp 0x410677
mov esi, dword [esp + 0x58]
mov ecx, dword [esp + 0x3c]
cmp esi, 1
je 0x41199a
lea ecx, [ecx + esi*4 - 4]
mov ecx, dword [ecx]
jmp 0x410263
mov edi, dword [esp + 0x3c]
mov ecx, dword [esp + 0x58]
mov edx, edi
cmp ecx, 1
je 0x41243e
lea edx, [edi + ecx*4 - 4]
mov edx, dword [edx]
jmp 0x4118d3
mov eax, dword [esp + 0x2c]
mov ecx, dword [esp + 0x30]
lea edx, [esp + 0x84]
test eax, eax
cmove eax, dword [esp + 0x74]
mov esi, eax
lea eax, [esp + 0x90]
mov dword [esp], eax
mov eax, esi
call sym._cleanup_return
mov dword [esp + 0x2c], eax
jmp 0x40f27f
mov ecx, dword [esp + 0x58]
mov eax, dword [esp + 0x3c]
cmp ecx, 1
je 0x412488
lea eax, [eax + ecx*4 - 4]
mov eax, dword [eax]
mov dword [esp + 0x50], eax
jmp 0x411c8d
mov esi, dword [esp + 0x58]
mov eax, dword [esp + 0x3c]
cmp esi, 1
je 0x4124a4
lea eax, [eax + esi*4 - 4]
mov eax, dword [eax]
mov dword [esp + 0x30], eax
jmp 0x41051e
mov ecx, dword [esp + 0x58]
mov eax, dword [esp + 0x3c]
cmp ecx, 1
je 0x4124c0
lea eax, [eax + ecx*4 - 4]
mov eax, dword [eax]
mov dword [esp + 0x5c], eax
jmp 0x411c5d
mov edi, dword [esp + 0x58]
mov ecx, dword [esp + 0x3c]
cmp edi, 1
je 0x4124dc
lea ecx, [ecx + edi*4 - 4]
mov ecx, dword [ecx]
fstp qword [ecx]
cmp edx, eax
jne 0x410268
jmp 0x40ff0f
mov dword [esp], 0x100
call sym._malloc
test eax, eax
jne 0x411696
jmp 0x41d4e8
jne 0x4116f7
mov ebx, dword [esp + 0x38]
jmp 0x411765
mov eax, dword [eax]
mov dword [esp], ebp
mov dword [esp + 4], eax
call sym._ungetc
mov dword [esp + 0x88], ebx
jmp 0x410b7f
mov dword [esp], ebp
call sym._tolower
cmp eax, 0x78
je 0x4128e3
mov byte [esp + 0x64], 0x65
mov dword [esp + 0x20], 1
jmp 0x410326
mov dword [esp], 0x100
call sym._malloc
test eax, eax
jne 0x411b52
jmp 0x41d4f9
test al, al
je 0x410a92
test byte [esp + 0x35], 1
je 0x4116f7
jmp 0x41250f
mov dword [esp + 0x20], eax
mov dword [esp + 0x40], esi
test esi, esi
je 0x410b9b
mov edx, dword [esp + 0x48]
mov eax, dword [esp + 0x28]
mov dword [esp + 0x64], ecx
call sym._in_ch
mov ebp, eax
cmp eax, 0xffffffff
je 0x410b9b
mov dword [esp], eax
call sym._tolower
mov ecx, dword [esp + 0x64]
cmp eax, 0x69
je 0x4125e8
xor eax, eax
mov ecx, dword [esp + 0x48]
mov edx, dword [esp + 0x28]
mov dword [esp], eax
mov eax, ebp
call sym._back_ch
jmp 0x410b9b
mov dword [esp], ecx
call sym._free
xor ecx, ecx
jmp 0x411b9a
mov eax, dword [esp + 0x40]
test eax, eax
jle 0x4125f7
sub eax, 1
mov dword [esp + 0x40], eax
mov edi, dword [esp + 0x20]
lea edx, [esp + 0x8c]
add ebx, 2
mov esi, 0x42567e
mov eax, edi
call sym._resize_wbuf
mov ecx, ebp
mov dword [esp + 0x90], eax
mov byte [eax + edi], cl
jmp 0x412695
mov edx, dword [esp + 0x48]
mov eax, dword [esp + 0x28]
call sym._in_ch
mov ebp, eax
cmp eax, 0xffffffff
je 0x40ff0f
mov dword [esp], eax
call sym._tolower
mov edx, eax
movsx eax, byte [esi + 1]
cmp edx, eax
jne 0x40ff0f
mov eax, dword [esp + 0x40]
test eax, eax
jle 0x41265c
sub eax, 1
mov dword [esp + 0x40], eax
mov ecx, dword [esp + 0x90]
lea edx, [esp + 0x8c]
mov eax, ebx
add esi, 1
call sym._resize_wbuf
lea ecx, [ebx + 1]
cmp byte [esi + 1], 0
mov dword [esp + 0x20], ecx
mov ecx, ebp
mov dword [esp + 0x90], eax
mov byte [eax + ebx], cl
je 0x410b9b
mov ebx, dword [esp + 0x20]
cmp dword [esp + 0x40], 0
jne 0x41261f
jmp 0x40ff0f
mov dword [esp], ebp
call sym._tolower
cmp eax, 0x78
je 0x4126fc
mov dword [esp + 0x40], esi
mov byte [esp + 0x64], 0x65
mov dword [esp + 0x20], 1
jmp 0x410326
mov eax, dword [esp + 0x54]
lea ecx, [eax + 1]
cmp ecx, ebx
jae 0x40f618
mov eax, dword [esp + 0x30]
mov ebx, ecx
mov eax, dword [eax]
jmp 0x40fdae
mov eax, dword [esp + 0x54]
add eax, 1
cmp eax, esi
jae 0x40f618
mov esi, dword [esp + 0x30]
mov edx, dword [esi]
mov esi, eax
jmp 0x40fa0a
lea edx, [esp + 0x8c]
mov ecx, ebx
mov eax, 1
call sym._resize_wbuf
mov ecx, ebp
mov edx, dword [esp + 0x48]
mov dword [esp + 0x90], eax
mov byte [eax + 1], cl
mov eax, dword [esp + 0x34]
and ah, 0xfe
or eax, 0x40
mov dword [esp + 0x34], eax
mov eax, dword [esp + 0x28]
call sym._in_ch
sub dword [esp + 0x40], 2
mov byte [esp + 0x64], 0x70
mov ebp, eax
mov dword [esp + 0x20], 2
jmp 0x410326
mov esi, ebp
mov ebp, eax
jmp 0x411264
mov eax, dword [eax]
mov dword [esp], ebp
mov dword [esp + 4], eax
call sym._ungetc
mov dword [esp + 0x88], ebx
jmp 0x410992
cmp dword [esp + 0x20], 0
je 0x41113e
jmp 0x410149
mov dword [esp], edx
call sym._free
xor edx, edx
jmp 0x4120e8
mov dword [esp], 0x100
call sym._malloc
test eax, eax
jne 0x4115b2
jmp 0x41d52c
lea eax, [esi + eax + 1]
sub eax, ebx
mov esi, eax
mov eax, dword [esp + 0x20]
movzx ebp, byte [esi]
test eax, eax
je 0x41113e
sub eax, 1
jne 0x41016b
mov eax, dword [esp + 0x90]
movzx eax, byte [eax]
sub eax, 0x2b
test al, 0xfd
jne 0x41016b
jmp 0x411155
mov eax, dword [esp + 0x54]
add eax, 1
cmp eax, ebx
jae 0x412866
mov ebx, eax
jmp 0x412337
mov ecx, dword [esp + 0x3c]
mov esi, dword [esp + 0x58]
mov edx, ecx
cmp esi, 1
je 0x412809
lea edx, [ecx + esi*4 - 4]
mov edx, dword [edx]
mov dword [edx], eax
jmp 0x40f29c
mov dword [esp], ebx
xor ebx, ebx
call sym._free
jmp 0x410457
mov eax, dword [esp + 0x20]
jmp 0x410b28
mov dword [esp], 0x100
call sym._malloc
test eax, eax
jne 0x4120a0
jmp 0x41d51b
mov dword [esp + 0x20], ebx
jmp 0x410142
mov esi, dword [esp + 0x3c]
mov ecx, dword [esp + 0x58]
mov edx, esi
cmp ecx, 1
je 0x41285f
lea edx, [esi + ecx*4 - 4]
mov edx, dword [edx]
jmp 0x41222d
or eax, 0xffffffff
test byte [esp + 0x35], 4
jne 0x41288a
mov eax, dword [esp + 0x30]
xor ebx, ebx
mov dword [esp + 0x30], ebx
mov eax, dword [eax]
mov word [eax + esi - 2], 0
mov eax, dword [esp + 0x2c]
add eax, 1
lea ecx, [esp + 0x90]
lea edx, [esp + 0x84]
mov dword [esp], ecx
mov ecx, dword [esp + 0x30]
call sym._cleanup_return
mov dword [esp + 0x2c], eax
jmp 0x40f27f
mov ebx, dword [esp + 0x3c]
mov edx, dword [esp + 0x58]
xor ecx, ecx
jmp 0x4128be
mov ecx, 1
sub edx, 1
jne 0x4128b9
jmp 0x411941
cmp dword [esp + 0x58], 0
jne 0x412931
mov esi, dword [esp + 0x4c]
mov edx, dword [esi]
lea ecx, [esi + 4]
mov dword [esp + 0x4c], ecx
mov dword [edx], eax
jmp 0x410268
lea edx, [esp + 0x8c]
mov ecx, ebx
mov eax, 1
call sym._resize_wbuf
mov ecx, ebp
mov edx, dword [esp + 0x48]
mov dword [esp + 0x90], eax
mov byte [eax + 1], cl
mov eax, dword [esp + 0x34]
and ah, 0xfe
or eax, 0x40
mov dword [esp + 0x34], eax
mov eax, dword [esp + 0x28]
call sym._in_ch
mov byte [esp + 0x64], 0x70
mov dword [esp + 0x20], 2
mov ebp, eax
jmp 0x410326
mov ebx, dword [esp + 0x3c]
mov edx, dword [esp + 0x58]
xor ecx, ecx
jmp 0x412942
mov ecx, 1
sub edx, 1
jne 0x41293d
test cl, cl
je 0x412957
mov edi, dword [esp + 0x3c]
mov esi, dword [esp + 0x58]
lea ebx, [edi + esi*4 - 4]
mov edx, dword [ebx]
mov dword [edx], eax
jmp 0x410268
mov dword [esp], esi
xor esi, esi
call sym._free
jmp 0x410102
mov dword [esp], ebx
xor ebx, ebx
call sym._free
jmp 0x410e8f
mov eax, dword [esp + 0x54]
add eax, 1
cmp eax, ebx
jae 0x4129cf
mov ecx, dword [esp + 0x30]
mov ebx, eax
mov edx, dword [ecx]
jmp 0x411421
mov dword [esp], ebx
xor ebx, ebx
call sym._free
mov edx, dword [esp + 0x40]
jmp 0x4110e2
cmp dword [esp + 0x58], 0
je 0x4128cf
mov ebx, dword [esp + 0x3c]
mov edx, dword [esp + 0x58]
xor ecx, ecx
jmp 0x4129c5
mov ecx, 1
sub edx, 1
jne 0x4129c0
jmp 0x412947
or eax, 0xffffffff
test byte [esp + 0x35], 4
jne 0x41288a
mov eax, dword [esp + 0x30]
mov edi, dword [esp + 0x54]
xor ecx, ecx
mov dword [esp + 0x30], ecx
mov eax, dword [eax]
mov byte [eax + edi - 1], 0
mov eax, dword [esp + 0x2c]
add eax, 1
jmp 0x41288a
mov dword [esp], edx
call sym._free
xor edx, edx
jmp 0x410be9
mov edi, dword [esp + 0x3c]
mov esi, dword [esp + 0x58]
mov edx, edi
cmp esi, 1
je 0x412a20
lea edx, [edi + esi*4 - 4]
mov edx, dword [edx]
jmp 0x41239a
mov eax, dword [eax]
mov dword [esp], ebp
mov dword [esp + 4], eax
call sym._ungetc
mov dword [esp + 0x88], ebx
jmp 0x411ca2
mov eax, dword [esp + 0x54]
add eax, 1
cmp eax, edi
jae 0x412a68
mov ecx, dword [esp + 0x30]
mov edi, eax
mov edx, dword [ecx]
jmp 0x410ff0
mov dword [esp + 0x20], 1
mov ebx, esi
jmp 0x4101ea
or eax, 0xffffffff
test byte [esp + 0x35], 4
jne 0x41288a
mov eax, dword [esp + 0x30]
mov eax, dword [eax]
mov word [eax + ebx - 2], 0
mov eax, dword [esp + 0x2c]
xor ebx, ebx
mov dword [esp + 0x30], ebx
add eax, 1
jmp 0x41288a
mov dword [esp], edi
xor edi, edi
call sym._free
jmp 0x410ad5
mov esi, dword [esp + 0x3c]
mov ecx, dword [esp + 0x58]
mov edx, esi
cmp ecx, 1
je 0x412ab7
lea edx, [esi + ecx*4 - 4]
mov edx, dword [edx]
jmp 0x411e14
mov eax, dword [esp + 0x54]
add eax, 1
cmp eax, edi
jae 0x412af0
mov ecx, dword [esp + 0x30]
mov edi, eax
mov edx, dword [ecx]
jmp 0x4121d9
mov eax, dword [eax]
mov dword [esp], ebp
mov dword [esp + 4], eax
call sym._ungetc
mov dword [esp + 0x88], ebx
jmp 0x411d33
or eax, 0xffffffff
test byte [esp + 0x35], 4
jne 0x41288a
mov eax, dword [esp + 0x30]
mov esi, dword [esp + 0x54]
xor edx, edx
mov dword [esp + 0x30], edx
mov eax, dword [eax]
mov byte [eax + esi - 1], 0
mov eax, dword [esp + 0x2c]
add eax, 1
jmp 0x41288a
mov byte [0], 0
ud2
mov dword [esp], ebx
call sym._free
mov byte [0], 0
ud2
mov dword [esp], esi
call sym._free
mov byte [0], 0
ud2
mov dword [esp], ebx
call sym._free
mov byte [0], 0
ud2
mov dword [esp], ebx
call sym._free
mov byte [0], 0
ud2