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

Disassembly:
push ebp
push edi
push esi
push ebx
mov ebx, edx
sub esp, 0xac
mov dword [esp + 0x20], eax
mov eax, dword [eax]
mov dword [esp + 0x14], edx
test eax, eax
mov dword [esp + 0x38], ecx
sete dl
test ebx, ebx
mov dword [esp + 0x74], 0
sete al
mov dword [esp + 0x78], 0
or dl, al
mov dword [esp + 0x7c], 0
mov dword [esp + 0x80], 0
jne 0x403ff0
mov dword [esp + 0x90], 0
mov dword [esp + 0x94], 0
call sym._localeconv
mov eax, dword [eax]
mov dword [esp + 0x50], eax
call sym._localeconv
mov ecx, dword [eax + 4]
mov dword [esp + 0x34], ecx
test ecx, ecx
je 0x4028ff
cmp byte [ecx], 0
mov eax, 0
cmovne eax, ecx
mov dword [esp + 0x34], eax
mov eax, dword [esp + 0x14]
movzx eax, byte [eax]
test al, al
je 0x403ec1
mov ebx, dword [esp + 0x38]
mov dword [esp + 0x10], 0
xor edi, edi
mov dword [esp + 0x18], 0
mov dword [esp + 0x30], 0
mov dword [esp + 0x40], 0
mov dword [esp + 0x2c], 0
mov dword [esp + 0x4c], 0
mov dword [esp + 0x44], 0
mov dword [esp + 0x3c], ebx
mov ebx, edi
test al, al
js 0x402a78
mov eax, dword [esp + 0x14]
lea edi, [eax + 1]
movzx eax, byte [eax]
cmp al, 0x25
je 0x402af8
movzx esi, al
mov dword [esp], esi
call sym._isspace
test eax, eax
jne 0x402a08
lea eax, [esp + 0x78]
mov dword [esp + 0x24], eax
mov edx, eax
mov eax, dword [esp + 0x20]
call sym._in_ch
mov ebx, eax
cmp eax, 0xffffffff
je 0x403ca4
mov ebp, dword [esp + 0x18]
test ebp, ebp
je 0x4029b5
mov dword [esp], eax
call sym._isspace
test eax, eax
jne 0x402e20
cmp esi, ebx
je 0x402ae0
mov dword [esp], 0
mov ecx, dword [esp + 0x24]
mov eax, ebx
mov edx, dword [esp + 0x20]
call sym._back_ch
jmp case.0x40319e.1
fstp st(0)
jmp case.0x40319e.1
fstp st(0)
jmp case.0x40319e.1
fstp st(0)
lea eax, [esp + 0x80]
mov ecx, dword [esp + 0x2c]
lea edx, [esp + 0x74]
mov dword [esp], eax
mov eax, dword [esp + 0x30]
call sym._cleanup_return
add esp, 0xac
pop ebx
pop esi
pop edi
pop ebp
ret
mov dword [esp + 0x14], edi
mov dword [esp + 0x18], 1
mov eax, dword [esp + 0x14]
movzx eax, byte [eax]
test al, al
jne 0x402952
mov ecx, dword [esp + 0x18]
test ecx, ecx
je case.0x40319e.1
lea eax, [esp + 0x78]
mov esi, dword [esp + 0x20]
mov dword [esp + 0x24], eax
mov edi, eax
lea esi, [esi]
mov edx, edi
mov eax, esi
call sym._in_ch
mov dword [esp], eax
mov ebx, eax
call sym._isspace
test eax, eax
jne 0x402a40
mov dword [esp], 0
mov ecx, dword [esp + 0x24]
mov eax, ebx
mov edx, dword [esp + 0x20]
call sym._back_ch
jmp case.0x40319e.1
mov edi, dword [esp + 0x14]
mov dword [esp], edi
call sym._strlen
lea edx, [esp + 0x90]
mov dword [esp], edi
mov dword [esp + 8], edx
mov dword [esp + 4], eax
call dbg.mbrlen
test eax, eax
jle 0x40295a
lea ebp, [esp + 0x78]
mov edi, dword [esp + 0x14]
mov dword [esp + 0x24], ebp
lea esi, [edi + eax]
mov eax, dword [esp + 0x20]
mov edx, ebp
call sym._in_ch
mov ebx, eax
cmp eax, 0xffffffff
je 0x40385b
movzx eax, byte [edi]
add edi, 1
cmp ebx, eax
jne 0x40385b
cmp edi, esi
jne 0x402ab2
jmp 0x402ae8
mov dword [esp + 0x18], 0
mov dword [esp + 0x14], edi
jmp 0x402a14
mov eax, dword [esp + 0x14]
mov dword [esp + 0x48], 0
movzx edx, byte [eax + 1]
mov eax, edx
sub edx, 0x30
cmp edx, 9
jbe 0x403720
mov ecx, dword [esp + 0x34]
xor ebp, ebp
jmp 0x402b43
cmp al, 0x27
je 0x402b58
cmp al, 0x49
jne 0x402b90
movzx eax, byte [edi + 1]
cmp al, 0x36
je 0x402b70
or ebp, 4
cmp al, 0x33
je 0x402b80
lea esi, [esi]
nop
add edi, 1
cmp al, 0x2a
jne 0x402b20
movzx eax, byte [edi + 1]
or ebp, 0x80
jmp 0x402b40
mov edx, ebp
movzx eax, byte [edi + 1]
or dh, 1
test ecx, ecx
cmovne ebp, edx
jmp 0x402b40
cmp byte [edi + 2], 0x34
je 0x402bf8
or ebp, 4
jmp 0x402b40
cmp byte [edi + 2], 0x32
jne 0x402b40
movzx eax, byte [edi + 3]
add edi, 2
jmp 0x402b40
movzx edx, al
mov dword [esp + 0x28], 0
lea ecx, [edx - 0x30]
cmp ecx, 9
ja 0x403d3a
xor ecx, ecx
lea esi, [esi]
lea eax, [ecx + ecx*4]
add edi, 1
lea ecx, [edx + eax*2 - 0x30]
movzx edx, byte [edi]
lea esi, [edx - 0x30]
mov eax, edx
cmp esi, 9
jbe 0x402bb0
test ecx, ecx
mov edx, 0xffffffff
cmovne edx, ecx
mov dword [esp + 0x28], edx
test al, al
je case.0x40319e.1
sub eax, 0x4c
cmp al, 0x2e
ja case.0x402beb.1
movzx eax, al
jmp dword [eax*4 + 0x4102e8]
movzx eax, byte [edi + 3]
or ebp, 0xc
add edi, 2
jmp 0x402b40
lea eax, [edi + 1]
movzx esi, byte [edi + 1]
or ebp, 4
mov dword [esp + 0x54], eax
mov eax, esi
test al, al
je case.0x40319e.1
mov eax, dword [esp + 0x54]
mov ecx, dword [esp + 0x18]
add eax, 1
mov dword [esp + 0x14], eax
test ecx, ecx
jne 0x403790
mov eax, esi
cmp al, 0x5b
jne 0x402e80
mov esi, ebp
mov eax, ebp
and esi, 0x80
and eax, 4
mov dword [esp + 0x18], eax
jne 0x403be0
test esi, esi
jne 0x402cf8
test ebp, 0x600
je 0x404c88
mov eax, dword [esp + 0x48]
test eax, eax
jne 0x405131
mov eax, dword [esp + 0x3c]
mov ebx, dword [eax]
add eax, 4
mov dword [esp + 0x3c], eax
mov dword [esp + 0x2c], ebx
mov eax, dword [esp + 0x2c]
test eax, eax
je 0x404dfa
mov dword [esp], 0x64
call sym._malloc
mov ebx, dword [esp + 0x2c]
mov dword [esp + 0x4c], eax
mov dword [ebx], eax
test eax, eax
je 0x403c3b
mov ebx, dword [esp + 0x74]
test ebx, ebx
je 0x402cc6
mov edx, dword [ebx]
mov eax, ebx
lea ecx, [edx + 1]
cmp edx, 0x1f
jbe 0x402ce2
mov dword [esp], 0x88
call sym._malloc
mov ecx, 1
xor edx, edx
mov dword [eax], 0
mov dword [eax + 4], ebx
mov ebx, dword [esp + 0x2c]
mov dword [esp + 0x74], eax
mov dword [eax], ecx
mov dword [eax + edx*4 + 8], ebx
mov dword [esp + 0x44], 0x64
mov ebx, dword [esp + 0x54]
movzx eax, byte [ebx + 1]
lea edx, [ebx + 2]
mov ebx, dword [esp + 0x28]
cmp al, 0x5e
mov eax, 0x7fffffff
cmovne edx, dword [esp + 0x14]
sete byte [esp + 0x48]
test ebx, ebx
cmovns eax, ebx
cmp dword [esp + 0x7c], 0xff
mov dword [esp + 0x14], edx
mov dword [esp + 0x28], eax
mov eax, dword [esp + 0x80]
ja 0x402d62
mov dword [esp + 0x7c], 0x100
mov edx, 0x100
test eax, eax
je 0x402d53
mov dword [esp], eax
call sym._free
mov edx, dword [esp + 0x7c]
mov dword [esp], edx
call sym._malloc
mov dword [esp + 0x80], eax
lea edi, [eax + 4]
mov dword [eax], 0
mov dword [eax + 0xfc], 0
and edi, 0xfffffffc
sub eax, edi
lea ecx, [eax + 0x100]
xor eax, eax
shr ecx, 2
rep stosd dword es:[edi], eax
mov ebx, dword [esp + 0x14]
movzx eax, byte [ebx]
lea edx, [ebx + 1]
cmp al, 0x5d
je 0x4042f0
cmp al, 0x2d
je 0x4042f0
mov dword [esp + 0x14], edx
test al, al
je case.0x40319e.1
mov edx, dword [esp + 0x14]
jmp 0x402dcf
mov ecx, dword [esp + 0x80]
mov byte [ecx + eax], 1
movzx eax, byte [edx - 1]
test al, al
je case.0x40319e.1
cmp al, 0x5d
je 0x4043f4
add edx, 1
cmp al, 0x2d
jne 0x402db8
movzx ebx, byte [edx - 1]
cmp bl, 0x5d
je 0x402db8
test bl, bl
je 0x402db8
movzx ecx, byte [edx - 3]
cmp cl, bl
ja 0x402db8
jae 0x4051d5
mov ebx, dword [esp + 0x80]
movzx eax, cl
add ecx, 1
mov byte [ebx + eax], 1
movzx eax, byte [edx - 1]
cmp al, cl
ja 0x402df9
jmp 0x402dc7
mov dword [esp + 0x54], edi
movzx esi, byte [edi]
jmp 0x402c15
mov ebp, dword [esp + 0x20]
mov ebx, dword [esp + 0x24]
mov dword [esp + 0x14], esi
jmp 0x402e40
mov dword [esp], eax
call sym._isspace
test eax, eax
je 0x403850
mov edx, ebx
mov eax, ebp
call sym._in_ch
mov esi, eax
cmp eax, 0xffffffff
jne 0x402e30
mov edi, eax
mov eax, dword [esp + 0x30]
mov ecx, dword [esp + 0x2c]
lea edx, [esp + 0x74]
test eax, eax
cmovne edi, eax
lea eax, [esp + 0x80]
mov dword [esp], eax
mov eax, edi
call sym._cleanup_return
add esp, 0xac
pop ebx
pop esi
pop edi
pop ebp
ret
and eax, 0xffffffdf
cmp al, 0x43
je 0x402e91
mov eax, esi
cmp al, 0x6e
jne 0x403790
mov eax, esi
cmp al, 0x63
jne 0x403030
test ebp, 4
jne case.0x40319e.30
mov ebx, dword [esp + 0x28]
mov eax, 1
cmp ebx, 0xffffffff
cmovne eax, ebx
mov dword [esp + 0x28], eax
mov eax, ebp
and eax, 0x80
mov dword [esp + 0x18], eax
jne 0x403c50
mov eax, ebp
and eax, 0x600
mov dword [esp + 0x4c], eax
je 0x404790
mov esi, dword [esp + 0x48]
test esi, esi
jne 0x404ec4
mov eax, dword [esp + 0x3c]
mov ebx, dword [eax]
add eax, 4
mov dword [esp + 0x3c], eax
mov dword [esp + 0x2c], ebx
mov ebx, dword [esp + 0x2c]
test ebx, ebx
je 0x404dfa
mov ebx, dword [esp + 0x28]
mov eax, 0x400
cmp ebx, 0x400
cmovle eax, ebx
mov dword [esp], eax
mov dword [esp + 0x44], eax
call sym._malloc
mov edi, eax
mov eax, dword [esp + 0x2c]
mov dword [eax], edi
test edi, edi
je 0x403c3b
mov ebx, dword [esp + 0x74]
test ebx, ebx
je 0x402f47
mov edx, dword [ebx]
mov eax, ebx
lea ecx, [edx + 1]
cmp edx, 0x1f
jbe 0x402f63
mov dword [esp], 0x88
call sym._malloc
mov ecx, 1
xor edx, edx
mov dword [eax], 0
mov dword [eax + 4], ebx
mov ebx, dword [esp + 0x2c]
mov dword [esp + 0x74], eax
mov dword [eax], ecx
mov dword [eax + edx*4 + 8], ebx
lea eax, [esp + 0x78]
mov dword [esp + 0x24], eax
mov edx, eax
mov eax, dword [esp + 0x20]
call sym._in_ch
mov ebx, eax
cmp eax, 0xffffffff
je 0x40514d
mov eax, edi
mov ebp, dword [esp + 0x44]
mov edi, dword [esp + 0x28]
jmp 0x402fca
sub edi, 1
mov byte [eax], bl
lea esi, [eax + 1]
test edi, edi
jle 0x404649
mov edx, dword [esp + 0x24]
mov eax, dword [esp + 0x20]
call sym._in_ch
mov ebx, eax
cmp eax, 0xffffffff
je 0x404649
mov eax, esi
mov edx, dword [esp + 0x4c]
mov dword [esp + 0x28], ebp
test edx, edx
je 0x402fa0
mov ecx, dword [esp + 0x2c]
mov edx, dword [ecx]
lea esi, [edx + ebp]
cmp eax, esi
jne 0x402fa0
lea eax, [edi - 1]
cmp ebp, edi
lea ecx, [ebp + 1]
mov dword [esp + 0x28], edi
cmovl eax, ebp
mov edi, ebx
mov ebx, ecx
lea esi, [ebp + eax]
mov dword [esp + 4], esi
mov dword [esp], edx
call sym._realloc
test eax, eax
je 0x40542f
mov ecx, dword [esp + 0x2c]
mov ebx, edi
mov edi, dword [esp + 0x28]
mov dword [esp + 0x28], esi
mov dword [ecx], eax
add eax, ebp
mov ebp, esi
jmp 0x402fa0
cmp al, 0x73
jne 0x403190
mov eax, ebp
and eax, 4
mov dword [esp + 0x18], eax
jne case.0x40319e.46
mov esi, ebp
and esi, 0x80
jne 0x4030ee
test ebp, 0x600
je 0x4046bd
mov eax, dword [esp + 0x48]
test eax, eax
jne 0x404d6c
mov eax, dword [esp + 0x3c]
mov ebx, dword [eax]
add eax, 4
mov dword [esp + 0x3c], eax
mov dword [esp + 0x2c], ebx
mov eax, dword [esp + 0x2c]
test eax, eax
je 0x404dfa
mov dword [esp], 0x64
call sym._malloc
mov ebx, dword [esp + 0x2c]
mov dword [esp + 0x4c], eax
mov dword [ebx], eax
test eax, eax
je 0x403c3b
mov ebx, dword [esp + 0x74]
test ebx, ebx
je 0x4030bc
mov edx, dword [ebx]
mov eax, ebx
lea ecx, [edx + 1]
cmp edx, 0x1f
jbe 0x4030d8
mov dword [esp], 0x88
call sym._malloc
mov ecx, 1
xor edx, edx
mov dword [eax], 0
mov dword [eax + 4], ebx
mov ebx, dword [esp + 0x2c]
mov dword [esp + 0x74], eax
mov dword [esp + 0x44], 0x64
mov dword [eax], ecx
mov dword [eax + edx*4 + 8], ebx
lea eax, [esp + 0x78]
mov dword [esp + 0x24], eax
mov edx, eax
mov eax, dword [esp + 0x20]
call sym._in_ch
mov ebx, eax
cmp eax, 0xffffffff
je 0x403ca4
mov edi, ebp
mov dword [esp + 0x48], esi
mov esi, dword [esp + 0x28]
and edi, 0x600
mov dword [esp + 0x54], ebp
mov ebp, dword [esp + 0x24]
mov dword [esp + 0x28], edi
mov edi, dword [esp + 0x4c]
jmp 0x403167
mov ecx, dword [esp + 0x2c]
mov edi, eax
mov edx, dword [ecx]
mov ecx, dword [esp + 0x44]
add ecx, edx
cmp eax, ecx
je 0x404676
test esi, esi
jle 0x403151
sub esi, 1
je 0x404041
mov eax, dword [esp + 0x20]
mov edx, ebp
call sym._in_ch
mov ebx, eax
cmp eax, 0xffffffff
je 0x404041
mov dword [esp], ebx
call sym._isspace
test eax, eax
jne 0x4047c0
mov ecx, dword [esp + 0x48]
test ecx, ecx
jne 0x403144
mov edx, dword [esp + 0x28]
mov byte [edi], bl
lea eax, [edi + 1]
test edx, edx
jne 0x40312e
mov edi, eax
jmp 0x403144
lea eax, [esi - 0x25]
cmp al, 0x53
ja case.0x40319e.1
movzx eax, al
jmp dword [eax*4 + 0x4103a4]
lea eax, [esi - 0x58]
cmp al, 0x20
ja case.0x4031af.1
movzx esi, al
jmp dword [esi*4 + 0x4104f4]
mov dword [esp + 0x10], 8
lea eax, [esp + 0x78]
mov dword [esp + 0x24], eax
mov edx, eax
mov eax, dword [esp + 0x20]
call sym._in_ch
mov ebx, eax
cmp eax, 0xffffffff
je 0x403ca4
lea eax, [eax - 0x2b]
mov dword [esp + 0x54], 0
and eax, 0xfffffffd
je 0x4047e3
mov eax, dword [esp + 0x28]
test eax, eax
setne dl
cmp ebx, 0x30
jne 0x404088
test dl, dl
je 0x404088
mov ebx, dword [esp + 0x54]
mov ecx, dword [esp + 0x80]
lea esi, [ebx + 1]
test eax, eax
jle 0x40497f
sub eax, 1
lea edi, [esp + 0x7c]
mov dword [esp + 0x28], eax
mov edx, edi
mov eax, ebx
call dbg.resize_wbuf
mov edx, dword [esp + 0x24]
mov dword [esp + 0x80], eax
mov byte [eax + ebx], 0x30
mov eax, dword [esp + 0x20]
call sym._in_ch
mov ecx, dword [esp + 0x28]
mov ebx, eax
test ecx, ecx
jne 0x4049aa
mov ecx, dword [esp + 0x10]
mov dword [esp + 0x54], esi
test ecx, ecx
jne 0x40326e
mov dword [esp + 0x10], 8
cmp dword [esp + 0x54], 1
jne 0x40328a
mov eax, dword [esp + 0x80]
movzx eax, byte [eax]
sub eax, 0x2b
test al, 0xfd
je 0x4029bd
mov ecx, dword [esp + 0x24]
mov edx, dword [esp + 0x20]
mov eax, ebx
lea edi, [esp + 0x7c]
mov dword [esp], 0
call sym._back_ch
mov edx, edi
mov edi, dword [esp + 0x54]
mov ecx, dword [esp + 0x80]
mov esi, ebp
and esi, 0x10
mov eax, edi
call dbg.resize_wbuf
mov ecx, dword [esp + 0x10]
lea edx, [esp + 0x84]
mov dword [esp + 0x80], eax
mov byte [eax + edi], 0
mov eax, dword [esp + 0x80]
mov edi, ebp
mov dword [esp + 8], ecx
mov dword [esp + 4], edx
mov dword [esp], eax
and edi, 8
je 0x404637
test esi, esi
je 0x4048ba
call sym._strtoimax
mov dword [esp + 0x68], edx
mov ecx, dword [esp + 0x84]
cmp dword [esp + 0x80], ecx
je case.0x40319e.1
mov ecx, ebp
and ecx, 0x80
mov dword [esp + 0x18], ecx
jne 0x403b20
test esi, esi
je 0x4048eb
test edi, edi
jne 0x4048c4
test ebp, 4
jne 0x404d4c
test ebp, 2
jne 0x40519c
and ebp, 1
je 0x40545b
cmp dword [esp + 0x48], 0
jne 0x405444
mov ecx, dword [esp + 0x3c]
mov edx, dword [ecx]
add ecx, 4
mov dword [esp + 0x3c], ecx
mov byte [edx], al
add dword [esp + 0x30], 1
jmp 0x402a14
mov ebx, dword [esp + 0x28]
mov eax, 1
cmp ebx, 0xffffffff
cmovne eax, ebx
mov dword [esp + 0x28], eax
mov eax, ebp
and eax, 0x80
mov dword [esp + 0x18], eax
jne 0x403445
test ebp, 0x600
je 0x403bb0
mov esi, dword [esp + 0x48]
test esi, esi
jne 0x4046f0
mov eax, dword [esp + 0x3c]
mov ebx, dword [eax]
add eax, 4
mov dword [esp + 0x3c], eax
mov dword [esp + 0x2c], ebx
mov ebx, dword [esp + 0x2c]
test ebx, ebx
je 0x404dfa
mov ebx, dword [esp + 0x28]
mov eax, 0x400
cmp ebx, 0x400
cmovle eax, ebx
mov dword [esp + 0x44], eax
add eax, eax
mov dword [esp], eax
call sym._malloc
mov ebx, dword [esp + 0x2c]
mov dword [esp + 0x40], eax
mov dword [ebx], eax
test eax, eax
je 0x403c3b
mov ebx, dword [esp + 0x74]
test ebx, ebx
je 0x40341b
mov edx, dword [ebx]
mov eax, ebx
lea ecx, [edx + 1]
cmp edx, 0x1f
jbe 0x403437
mov dword [esp], 0x88
call sym._malloc
mov ecx, 1
xor edx, edx
mov dword [eax], 0
mov dword [eax + 4], ebx
mov ebx, dword [esp + 0x2c]
mov dword [esp + 0x74], eax
mov dword [eax], ecx
mov dword [eax + edx*4 + 8], ebx
lea eax, [esp + 0x78]
mov dword [esp + 0x24], eax
mov edx, eax
mov eax, dword [esp + 0x20]
call sym._in_ch
mov ebx, eax
cmp eax, 0xffffffff
je 0x403ca4
lea edi, [esp + 0x98]
and ebp, 0x600
mov esi, dword [esp + 0x20]
mov dword [esp + 0x98], 0
mov dword [esp + 0x9c], 0
mov dword [esp + 0x48], edi
mov edi, dword [esp + 0x24]
mov dword [esp + 0x54], ebp
xor ebp, ebp
mov eax, dword [esp + 0x18]
mov byte [esp + 0x8b], bl
test eax, eax
jne 0x403540
mov eax, dword [esp + 0x54]
test eax, eax
je 0x403540
mov eax, dword [esp + 0x2c]
mov ecx, dword [esp + 0x44]
mov eax, dword [eax]
lea edx, [ecx + ecx]
mov dword [esp + 0x58], eax
lea ecx, [eax + edx]
cmp dword [esp + 0x40], ecx
jne 0x403540
mov eax, dword [esp + 0x28]
mov ecx, eax
sub ecx, 1
cmp dword [esp + 0x44], eax
cmovle ecx, dword [esp + 0x44]
mov eax, ecx
mov ecx, dword [esp + 0x44]
mov dword [esp + 0x44], edi
mov edi, esi
mov esi, ebx
mov ebx, edx
add eax, ecx
mov dword [esp + 0x24], eax
lea eax, [ecx + 1]
mov dword [esp + 0x40], eax
mov eax, dword [esp + 0x58]
mov ecx, dword [esp + 0x24]
mov dword [esp], eax
add ecx, ecx
mov dword [esp + 4], ecx
call sym._realloc
test eax, eax
je 0x4051ed
mov ecx, dword [esp + 0x2c]
mov edx, ebx
mov ebx, esi
mov esi, edi
mov edi, dword [esp + 0x44]
mov dword [ecx], eax
add eax, edx
mov dword [esp + 0x40], eax
mov eax, dword [esp + 0x24]
mov dword [esp + 0x44], eax
lea esi, [esi]
mov eax, dword [esp + 0x18]
test eax, eax
mov eax, dword [esp + 0x40]
cmovne eax, ebp
mov dword [esp + 0x24], eax
mov eax, edi
mov edi, esi
mov esi, ebx
mov ebx, eax
mov eax, dword [esp + 0x48]
mov dword [esp + 8], 1
mov dword [esp + 0xc], eax
lea eax, [esp + 0x8b]
mov dword [esp + 4], eax
mov eax, dword [esp + 0x24]
mov dword [esp], eax
call dbg.mbrtowc
cmp eax, 0xfffffffe
jne 0x403f80
mov edx, ebx
mov eax, edi
call sym._in_ch
mov esi, eax
cmp eax, 0xffffffff
je 0x403840
mov byte [esp + 0x8b], al
jmp 0x403559
mov eax, ebp
and eax, 0x80
mov dword [esp + 0x18], eax
jne 0x403650
test ebp, 0x600
je 0x403b80
mov edi, dword [esp + 0x48]
test edi, edi
jne 0x404728
mov eax, dword [esp + 0x3c]
mov ebx, dword [eax]
add eax, 4
mov dword [esp + 0x3c], eax
mov dword [esp + 0x2c], ebx
mov esi, dword [esp + 0x2c]
test esi, esi
je 0x404dfa
mov dword [esp], 0xc8
call sym._malloc
mov ebx, dword [esp + 0x2c]
mov dword [esp + 0x40], eax
mov dword [ebx], eax
test eax, eax
je 0x403c3b
mov ebx, dword [esp + 0x74]
test ebx, ebx
je 0x40361e
mov edx, dword [ebx]
mov eax, ebx
lea ecx, [edx + 1]
cmp edx, 0x1f
jbe 0x40363a
mov dword [esp], 0x88
call sym._malloc
mov ecx, 1
xor edx, edx
mov dword [eax], 0
mov dword [eax + 4], ebx
mov ebx, dword [esp + 0x2c]
mov dword [esp + 0x74], eax
mov dword [esp + 0x44], 0x64
mov dword [eax], ecx
mov dword [eax + edx*4 + 8], ebx
lea eax, [esp + 0x78]
mov dword [esp + 0x24], eax
mov edx, eax
mov eax, dword [esp + 0x20]
call sym._in_ch
mov ebx, eax
cmp eax, 0xffffffff
je 0x403ca4
mov eax, ebp
mov dword [esp + 0x58], ebp
lea edi, [esp + 0x98]
mov ebp, dword [esp + 0x20]
and eax, 0x600
mov dword [esp + 0x48], edi
mov edi, dword [esp + 0x24]
mov dword [esp + 0x98], 0
mov dword [esp + 0x9c], 0
mov dword [esp + 0x54], eax
mov dword [esp], ebx
call sym._isspace
test eax, eax
jne 0x404ff2
mov edx, dword [esp + 0x18]
mov byte [esp + 0x8b], bl
test edx, edx
cmove eax, dword [esp + 0x40]
mov esi, eax
mov eax, edi
mov edi, ebx
mov ebx, eax
mov eax, dword [esp + 0x48]
mov dword [esp + 8], 1
mov dword [esp], esi
mov dword [esp + 0xc], eax
lea eax, [esp + 0x8b]
mov dword [esp + 4], eax
call dbg.mbrtowc
cmp eax, 0xfffffffe
jne 0x403ed6
mov edx, ebx
mov eax, ebp
call sym._in_ch
mov edi, eax
cmp eax, 0xffffffff
je 0x403840
mov byte [esp + 0x8b], al
jmp 0x4036d0
mov esi, dword [esp + 0x14]
mov dword [esp + 0x48], edx
lea ecx, [esi + 2]
movzx esi, byte [esi + 2]
mov edx, esi
movzx edx, dl
lea ebp, [edx - 0x30]
cmp ebp, 9
ja 0x403771
mov dword [esp + 0x14], edi
mov edi, dword [esp + 0x48]
mov ebp, eax
lea esi, [esi]
lea esi, [esi]
add ecx, 1
lea eax, [edi + edi*4]
lea edi, [edx + eax*2 - 0x30]
movzx edx, byte [ecx]
lea esi, [edx - 0x30]
cmp esi, 9
jbe 0x403750
mov dword [esp + 0x48], edi
mov edi, dword [esp + 0x14]
mov esi, edx
mov eax, ebp
mov edx, esi
cmp dl, 0x24
je 0x403d47
mov dword [esp + 0x48], 0
jmp 0x402b16
call sym.__errno
mov edi, dword [eax]
call sym.__errno
mov dword [esp + 0x18], ebp
mov ebp, dword [esp + 0x20]
mov dword [esp + 0x58], edi
mov edi, ebx
mov dword [eax], 0
jmp 0x4037c8
mov dword [esp], eax
call sym._isspace
test eax, eax
je 0x403d82
cmp edi, 0xffffffff
je 0x4037e1
lea ebx, [esp + 0x78]
mov eax, ebp
mov edx, ebx
call sym._in_ch
mov edi, eax
cmp eax, 0xffffffff
jne 0x4037b8
mov ebp, dword [esp + 0x18]
mov edi, dword [esp + 0x58]
jmp 0x403804
mov dword [esp], 0xffffffff
call sym._isspace
test eax, eax
je 0x403d53
call sym.__errno
cmp dword [eax], 4
jne 0x4037f0
mov ebx, dword [esp + 0x30]
mov eax, 0xffffffff
test ebx, ebx
cmovne eax, ebx
mov ebx, eax
lea eax, [esp + 0x80]
mov ecx, dword [esp + 0x2c]
mov dword [esp], eax
lea edx, [esp + 0x74]
mov eax, ebx
call sym._cleanup_return
jmp 0x4029fa
call sym.__errno
mov dword [eax], 0x2a
jmp case.0x40319e.1
mov ebx, esi
mov esi, dword [esp + 0x14]
jmp 0x4029b5
mov dword [esp], 1
mov ecx, dword [esp + 0x24]
mov eax, ebx
mov edx, dword [esp + 0x20]
call sym._back_ch
jmp 0x40380e
movzx esi, byte [edi + 1]
mov eax, esi
cmp al, 0x6c
je 0x404005
lea eax, [edi + 1]
or ebp, 4
mov dword [esp + 0x54], eax
jmp 0x402c15
movzx esi, byte [edi + 1]
mov eax, esi
and eax, 0xfffffff7
cmp al, 0x53
je 0x4038a7
mov eax, esi
cmp al, 0x73
jne case.0x402beb.1
lea eax, [edi + 1]
or ebp, 0x200
mov dword [esp + 0x54], eax
jmp 0x402c15
movzx esi, byte [edi + 1]
mov eax, esi
cmp al, 0x68
je 0x404018
lea eax, [edi + 1]
or ebp, 2
mov dword [esp + 0x54], eax
jmp 0x402c15
lea eax, [edi + 1]
movzx esi, byte [edi + 1]
or ebp, 0xc
mov dword [esp + 0x54], eax
jmp 0x402c15
movzx esi, byte [edi + 1]
mov eax, esi
cmp al, 0x6c
je 0x40402b
lea eax, [edi + 1]
or ebp, 0x400
mov dword [esp + 0x54], eax
jmp 0x402c15
lea eax, [edi + 1]
movzx esi, byte [edi + 1]
or ebp, 8
mov dword [esp + 0x54], eax
jmp 0x402c15
mov eax, ebp
and eax, 0x80
mov dword [esp + 0x18], eax
jne 0x403b20
mov eax, dword [esp + 0x78]
test ebp, 8
je 0x404948
mov edx, dword [esp + 0x48]
test edx, edx
jne 0x404e94
mov ecx, dword [esp + 0x3c]
mov edx, dword [ecx]
add ecx, 4
mov dword [esp + 0x3c], ecx
mov dword [edx], eax
mov dword [edx + 4], 0
jmp 0x402a14
mov ebx, dword [esp + 0x28]
xor eax, eax
test ebx, ebx
setg al
sub ebx, eax
lea eax, [esp + 0x78]
mov dword [esp + 0x24], eax
mov edx, eax
mov eax, dword [esp + 0x20]
mov dword [esp + 0x28], ebx
call sym._in_ch
mov dword [esp + 0x64], eax
cmp eax, 0xffffffff
je 0x4051dd
mov eax, dword [esp + 0x64]
sub eax, 0x2b
and eax, 0xfffffffd
jne 0x40462e
mov eax, dword [esp + 0x28]
test eax, eax
je case.0x40319e.1
mov edx, dword [esp + 0x24]
mov eax, dword [esp + 0x20]
call sym._in_ch
mov ebx, eax
cmp eax, 0xffffffff
je case.0x40319e.1
mov ecx, dword [esp + 0x28]
xor eax, eax
test ecx, ecx
setg al
sub ecx, eax
mov dword [esp + 0x28], ecx
mov dword [esp], ebx
call sym._tolower
cmp eax, 0x6e
je 0x404ee0
cmp eax, 0x69
je 0x404aca
mov edi, dword [esp + 0x28]
mov byte [esp + 0x54], 0x65
mov dword [esp + 0x18], 0
test edi, edi
je 0x403a12
cmp ebx, 0x30
je 0x404f85
mov byte [esp + 0x5c], 0
mov byte [esp + 0x60], 0
mov dword [esp + 0x58], ebp
mov ebp, dword [esp + 0x18]
lea esi, [esi]
lea eax, [ebx - 0x30]
cmp eax, 9
jbe 0x403aad
cmp byte [esp + 0x5c], 0
je 0x403cab
mov ecx, dword [esp + 0x80]
movzx eax, byte [esp + 0x54]
cmp byte [ecx + ebp - 1], al
je 0x403eb0
mov eax, dword [esp + 0x28]
mov edi, 0x7fffffff
test eax, eax
cmovg edi, eax
mov eax, dword [esp + 0x50]
cmp byte [esp + 0x60], 0
movzx eax, byte [eax]
je 0x403d92
test al, al
jne 0x403d0f
mov eax, dword [esp + 0x28]
test eax, eax
jle 0x403acc
mov edx, dword [esp + 0x24]
mov eax, dword [esp + 0x20]
call sym._in_ch
mov ebx, eax
cmp eax, 0xffffffff
je 0x40430f
mov dword [esp + 0x28], edi
lea esi, [esi]
lea eax, [ebx - 0x30]
sub dword [esp + 0x28], 1
cmp eax, 9
ja 0x403a30
mov ecx, dword [esp + 0x80]
mov eax, ebp
lea edx, [esp + 0x7c]
call dbg.resize_wbuf
mov dword [esp + 0x80], eax
mov byte [eax + ebp], bl
add ebp, 1
mov edi, dword [esp + 0x28]
test edi, edi
je 0x40430f
mov edx, dword [esp + 0x24]
mov eax, dword [esp + 0x20]
call sym._in_ch
mov ebx, eax
cmp eax, 0xffffffff
je 0x40430f
test edi, edi
jg 0x403aa0
jmp 0x403a28
lea eax, [esp + 0x78]
mov dword [esp + 0x24], eax
mov edx, eax
mov eax, dword [esp + 0x20]
call sym._in_ch
mov ebx, eax
cmp eax, 0xffffffff
je 0x403ca4
cmp eax, 0x25
jne 0x405416
mov dword [esp + 0x18], 0
jmp 0x402a14
mov dword [esp + 0x10], 0
or ebp, 0x10
jmp case.0x4031af.1
mov dword [esp + 0x10], 0xa
or ebp, 0x10
jmp case.0x4031af.1
mov dword [esp + 0x10], 0x10
jmp case.0x4031af.1
mov dword [esp + 0x10], 0xa
jmp case.0x4031af.1
mov eax, ebp
mov dword [esp + 0x10], 0x10
and eax, 0xfffffff1
or eax, 0x24
mov ebp, eax
jmp case.0x4031af.1
mov ebx, dword [esp + 0x48]
test ebx, ebx
jne 0x404744
mov eax, dword [esp + 0x3c]
mov ebx, dword [eax]
add eax, 4
mov dword [esp + 0x3c], eax
mov dword [esp + 0x40], ebx
mov ecx, dword [esp + 0x40]
test ecx, ecx
jne 0x403650
jmp case.0x40319e.1
mov ecx, dword [esp + 0x48]
test ecx, ecx
jne 0x40470c
mov eax, dword [esp + 0x3c]
mov ebx, dword [eax]
add eax, 4
mov dword [esp + 0x3c], eax
mov dword [esp + 0x40], ebx
mov edx, dword [esp + 0x40]
test edx, edx
jne 0x403445
jmp case.0x40319e.1
test esi, esi
jne 0x402cf8
test ebp, 0x600
je 0x404cc0
mov edi, dword [esp + 0x48]
test edi, edi
jne 0x405165
mov eax, dword [esp + 0x3c]
mov ebx, dword [eax]
add eax, 4
mov dword [esp + 0x3c], eax
mov dword [esp + 0x2c], ebx
mov ebx, dword [esp + 0x2c]
test ebx, ebx
je 0x404dfa
mov dword [esp], 0xc8
call sym._malloc
mov ebx, dword [esp + 0x2c]
mov dword [esp + 0x40], eax
mov dword [ebx], eax
test eax, eax
jne 0x402cb2
and ebp, 0x400
mov eax, 0xffffffff
cmove eax, dword [esp + 0x30]
jmp 0x40381c
lea eax, [esp + 0x78]
mov dword [esp + 0x24], eax
mov edx, eax
mov eax, dword [esp + 0x20]
call sym._in_ch
mov ebx, eax
cmp eax, 0xffffffff
je 0x40514d
mov eax, ebx
mov edi, dword [esp + 0x28]
mov ebx, dword [esp + 0x20]
mov esi, dword [esp + 0x24]
jmp 0x403c8e
mov edx, esi
mov eax, ebx
call sym._in_ch
cmp eax, 0xffffffff
je 0x403c95
sub edi, 1
test edi, edi
jg 0x403c80
mov dword [esp + 0x18], 0
mov ebx, eax
jmp 0x402a14
mov edi, ebx
jmp 0x402e52
test byte [esp + 0x58], 0x40
je 0x403cc2
mov dword [esp], ebx
call sym._isxdigit
test eax, eax
jne 0x403aad
test ebp, ebp
je 0x403a51
mov dword [esp], ebx
call sym._tolower
cmp byte [esp + 0x54], al
jne 0x403a51
mov ecx, dword [esp + 0x80]
mov eax, ebp
lea edx, [esp + 0x7c]
call dbg.resize_wbuf
movzx ecx, byte [esp + 0x54]
mov byte [esp + 0x5c], 1
mov dword [esp + 0x80], eax
mov byte [esp + 0x60], 1
mov byte [eax + ebp], cl
add ebp, 1
jmp 0x403acc
mov eax, dword [esp + 0x34]
test eax, eax
je 0x404c1e
mov esi, eax
movzx edx, byte [esi]
test dl, dl
jne 0x404c1e
mov eax, dword [esp + 0x28]
test eax, eax
cmovle edi, eax
mov dword [esp + 0x28], edi
jmp 0x403acc
mov dword [esp + 0x28], 0xffffffff
jmp 0x402bd5
movzx eax, byte [ecx + 1]
lea edi, [ecx + 1]
jmp 0x402b16
lea eax, [esp + 0x78]
mov ebx, 0xffffffff
mov dword [esp + 0x24], eax
call sym.__errno
mov ecx, dword [esp + 0x24]
mov edx, dword [esp + 0x20]
mov dword [eax], edi
mov eax, ebx
mov dword [esp], 0
call sym._back_ch
jmp 0x402e91
mov dword [esp + 0x24], ebx
mov ebp, dword [esp + 0x18]
mov ebx, edi
mov edi, dword [esp + 0x58]
jmp 0x403d60
movzx edx, al
mov esi, dword [esp + 0x50]
cmp edx, ebx
jne 0x403df0
mov dword [esp + 0x18], ebp
mov eax, ebx
mov ebx, edi
mov edi, dword [esp + 0x20]
lea esi, [esi]
mov ebp, esi
add esi, 1
cmp byte [esi], 0
je 0x403e4d
test ebx, ebx
je 0x404abd
mov edx, dword [esp + 0x24]
mov eax, edi
call sym._in_ch
cmp eax, 0xffffffff
je 0x404aaa
movzx ebp, byte [esi]
sub ebx, 1
mov edx, ebp
cmp eax, ebp
je 0x403db0
mov ebp, dword [esp + 0x18]
mov edi, ebx
mov ebx, eax
mov eax, edx
test al, al
je 0x403e55
test dword [esp + 0x58], 0x100
je 0x403d0f
mov eax, esi
sub eax, dword [esp + 0x50]
mov esi, dword [esp + 0x34]
xor ecx, ecx
test eax, eax
jle 0x4050d7
mov dword [esp + 0x18], ebp
mov ebp, dword [esp + 0x50]
mov dword [esp + 0x6c], ebx
mov ebx, dword [esp + 0x34]
jmp 0x403e37
add esi, 1
mov ecx, esi
sub ecx, ebx
cmp ecx, eax
jge 0x404bc0
movzx edx, byte [esi]
cmp dl, byte [ebp + ecx]
je 0x403e28
mov ebp, dword [esp + 0x18]
mov ebx, dword [esp + 0x6c]
jmp 0x403d20
mov ebp, dword [esp + 0x18]
mov edi, ebx
mov ebx, eax
mov eax, dword [esp + 0x50]
mov esi, ebp
cmp byte [eax], 0
je 0x403e95
sub eax, ebp
mov ebp, eax
lea esi, [esi]
mov ecx, dword [esp + 0x80]
lea edx, [esp + 0x7c]
mov eax, esi
call dbg.resize_wbuf
mov edx, esi
add esi, 1
mov dword [esp + 0x80], eax
movzx ecx, byte [ebp + esi - 1]
mov byte [eax + edx], cl
cmp byte [ebp + esi], 0
jne 0x403e68
cmp dword [esp + 0x28], 0
mov ebp, esi
jle 0x4052e2
mov dword [esp + 0x28], edi
mov byte [esp + 0x60], 1
jmp 0x403acc
lea eax, [ebx - 0x2b]
and eax, 0xfffffffd
jne 0x403a51
jmp 0x403ab4
mov dword [esp + 0x30], 0
mov dword [esp + 0x2c], 0
jmp case.0x40319e.1
mov ecx, ebx
mov ebx, edi
mov edi, ecx
cmp eax, 1
jne 0x403840
mov eax, dword [esp + 0x18]
add dword [esp + 0x40], 2
mov edx, dword [esp + 0x40]
test eax, eax
jne 0x403f15
mov eax, dword [esp + 0x54]
test eax, eax
je 0x403f15
mov eax, dword [esp + 0x44]
mov esi, dword [esp + 0x2c]
lea ecx, [eax + eax]
mov eax, dword [esi]
add eax, ecx
cmp edx, eax
je 0x40500d
mov eax, dword [esp + 0x28]
test eax, eax
jle 0x403f26
sub eax, 1
mov dword [esp + 0x28], eax
je 0x403f3a
mov edx, edi
mov eax, ebp
call sym._in_ch
mov ebx, eax
cmp eax, 0xffffffff
jne 0x4036a6
mov esi, dword [esp + 0x18]
test esi, esi
jne 0x403b20
mov eax, dword [esp + 0x40]
lea esi, [eax + 2]
mov word [eax], 0
mov eax, dword [esp + 0x44]
mov edx, esi
mov ecx, eax
add ecx, eax
mov eax, dword [esp + 0x2c]
call dbg.optimize_alloc
add dword [esp + 0x30], 1
mov dword [esp + 0x40], esi
mov dword [esp + 0x2c], 0
jmp 0x402a14
mov ecx, ebx
mov ebx, esi
mov esi, edi
mov edi, ecx
cmp eax, 1
jne 0x403840
sub dword [esp + 0x28], 1
mov eax, dword [esp + 0x28]
add dword [esp + 0x40], 2
test eax, eax
jle 0x403fb7
mov edx, ecx
mov eax, esi
call sym._in_ch
mov ebx, eax
cmp eax, 0xffffffff
jne 0x403498
cmp dword [esp + 0x18], 0
jne 0x403b20
mov eax, dword [esp + 0x44]
mov edx, dword [esp + 0x40]
mov ecx, eax
add ecx, eax
mov eax, dword [esp + 0x2c]
call dbg.optimize_alloc
add dword [esp + 0x30], 1
mov dword [esp + 0x2c], 0
jmp 0x402a14
call sym.__errno
mov dword [eax], 0x16
mov eax, 0xffffffff
jmp 0x4029fa
lea eax, [edi + 2]
movzx esi, byte [edi + 2]
or ebp, 0xc
mov dword [esp + 0x54], eax
jmp 0x402c15
lea eax, [edi + 2]
movzx esi, byte [edi + 2]
or ebp, 1
mov dword [esp + 0x54], eax
jmp 0x402c15
lea eax, [edi + 2]
movzx esi, byte [edi + 2]
or ebp, 0x404
mov dword [esp + 0x54], eax
jmp 0x402c15
mov dword [esp + 0x4c], edi
mov esi, dword [esp + 0x48]
test esi, esi
jne 0x402a14
mov eax, dword [esp + 0x4c]
mov byte [eax], 0
lea esi, [eax + 1]
mov ecx, dword [esp + 0x44]
mov eax, dword [esp + 0x2c]
mov edx, esi
call dbg.optimize_alloc
add dword [esp + 0x30], 1
mov dword [esp + 0x18], 0
mov dword [esp + 0x4c], esi
mov dword [esp + 0x2c], 0
jmp 0x402a14
cmp ebx, 0xffffffff
setne al
and eax, edx
mov edx, dword [esp + 0x10]
test edx, edx
jne 0x4040a0
mov dword [esp + 0x10], 0xa
test al, al
je 0x404146
mov eax, ebp
mov dword [esp + 0x5c], ebp
mov edi, dword [esp + 0x24]
and eax, 0x100
mov ebp, dword [esp + 0x20]
mov dword [esp + 0x58], eax
jmp 0x40412f
lea eax, [ebx - 0x30]
cmp eax, 9
ja 0x4041c0
lea eax, [ebx - 0x2f]
cmp dword [esp + 0x10], eax
jl 0x4041c0
mov eax, dword [esp + 0x54]
mov esi, eax
add eax, 1
mov dword [esp + 0x54], eax
mov ecx, dword [esp + 0x80]
lea edx, [esp + 0x7c]
mov eax, esi
call dbg.resize_wbuf
mov edx, edi
mov dword [esp + 0x80], eax
mov byte [eax + esi], bl
mov esi, dword [esp + 0x28]
xor eax, eax
test esi, esi
setg al
sub esi, eax
mov eax, ebp
mov dword [esp + 0x28], esi
call sym._in_ch
mov ebx, eax
cmp eax, 0xffffffff
je 0x404142
test esi, esi
je 0x404142
cmp dword [esp + 0x10], 0x10
jne 0x4040c8
mov dword [esp], ebx
call sym._isxdigit
test eax, eax
jne 0x4040e1
mov ebp, dword [esp + 0x5c]
mov edi, dword [esp + 0x54]
test edi, edi
jne 0x40326e
test ebp, 0x20
je 0x4029bd
mov dword [esp], ebx
call sym._tolower
cmp al, 0x28
jne 0x4029bd
mov esi, 0x4102d5
mov dword [esp + 0x18], ebp
mov edi, dword [esp + 0x20]
mov ebp, esi
mov esi, dword [esp + 0x24]
jmp 0x4041a1
mov dword [esp], eax
call sym._tolower
cmp byte [ebp], al
jne 0x4029bd
add ebp, 1
cmp byte [ebp], 0
je 0x404e65
mov edx, esi
mov eax, edi
call sym._in_ch
mov ebx, eax
cmp eax, 0xffffffff
jne 0x404183
jmp 0x4029bd
cmp dword [esp + 0x10], 0xa
jne 0x404142
mov eax, dword [esp + 0x58]
test eax, eax
je 0x404142
mov esi, dword [esp + 0x34]
mov eax, dword [esp + 0x28]
mov ecx, 0x7fffffff
movzx edx, byte [esi]
test eax, eax
cmovg ecx, eax
mov eax, edx
cmp edx, ebx
jne 0x4049f0
mov dword [esp + 0x18], edi
mov eax, ebx
mov ebx, ecx
nop
mov edi, esi
add esi, 1
cmp byte [esi], 0
je 0x4042d0
test ebx, ebx
je 0x40425b
mov edx, dword [esp + 0x18]
mov eax, ebp
call sym._in_ch
cmp eax, 0xffffffff
je 0x4042dd
movzx edi, byte [esi]
sub ebx, 1
cmp eax, edi
je 0x404200
mov ecx, ebx
mov ebx, eax
mov eax, edi
mov edi, dword [esp + 0x18]
test al, al
jne 0x4053a1
mov eax, dword [esp + 0x28]
test eax, eax
cmovle ecx, eax
mov eax, dword [esp + 0x54]
mov dword [esp + 0x28], ecx
lea esi, [eax - 1]
jmp 0x4040ee
mov ebx, eax
mov eax, dword [esp + 0x18]
mov ebp, dword [esp + 0x5c]
mov dword [esp + 0x24], eax
cmp dword [esp + 0x34], esi
jae 0x404146
mov dword [esp], 0
mov ecx, dword [esp + 0x24]
mov eax, ebx
lea edi, [esi - 1]
mov edx, dword [esp + 0x20]
call sym._back_ch
cmp dword [esp + 0x34], edi
jae 0x4042be
mov ebx, edi
movzx eax, byte [ebx]
mov dword [esp], 1
sub ebx, 1
mov ecx, dword [esp + 0x24]
mov edx, dword [esp + 0x20]
call sym._back_ch
cmp ebx, dword [esp + 0x34]
jne 0x404294
mov eax, dword [esp + 0x34]
sub eax, esi
lea edi, [eax + edi + 1]
movzx ebx, byte [edi]
jmp 0x404146
mov ecx, ebx
mov edi, dword [esp + 0x18]
mov ebx, eax
jmp 0x404242
mov edx, edi
mov ecx, ebx
mov edi, dword [esp + 0x18]
mov ebx, eax
movzx eax, byte [edx + 1]
jmp 0x40423a
mov ebx, dword [esp + 0x14]
mov edx, dword [esp + 0x80]
add ebx, 2
mov byte [edx + eax], 1
movzx eax, byte [ebx - 1]
mov dword [esp + 0x14], ebx
jmp 0x402da5
mov dword [esp + 0x18], ebp
mov ebp, dword [esp + 0x58]
mov esi, dword [esp + 0x18]
test esi, esi
je case.0x40319e.1
test ebp, 0x40
je 0x404336
cmp dword [esp + 0x18], 2
je case.0x40319e.1
lea edi, [esp + 0x7c]
mov edx, edi
mov edi, dword [esp + 0x18]
mov ecx, dword [esp + 0x80]
mov esi, ebp
and esi, 0x80
mov eax, edi
call dbg.resize_wbuf
mov dword [esp + 0x80], eax
mov byte [eax + edi], 0
test ebp, 8
jne 0x404a49
mov eax, dword [esp + 0x80]
lea edx, [esp + 0x84]
and ebp, 4
mov dword [esp + 4], edx
mov dword [esp], eax
je 0x4049f9
call dbg.__strtold
test esi, esi
jne 0x40476a
mov esi, dword [esp + 0x84]
mov eax, dword [esp + 0x80]
cmp esi, eax
je 0x4029d5
cmp dword [esp + 0x64], 0x2d
fstp qword [esp + 0x18]
fld qword [esp + 0x18]
jne 0x4043bf
fchs
mov edx, dword [esp + 0x48]
test edx, edx
jne 0x405062
mov ecx, dword [esp + 0x3c]
lea edx, [ecx + 4]
mov ecx, dword [ecx]
mov dword [esp + 0x3c], edx
fstp qword [ecx]
cmp eax, esi
je case.0x40319e.1
add dword [esp + 0x30], 1
mov dword [esp + 0x18], 0
jmp 0x402a14
mov dword [esp + 0x14], edx
mov eax, dword [esp + 0x78]
mov edx, dword [esp + 0x18]
mov dword [esp + 0x5c], eax
test edx, edx
je 0x40458b
lea eax, [esp + 0x78]
mov dword [esp + 0x24], eax
mov edx, eax
mov eax, dword [esp + 0x20]
call sym._in_ch
mov ebx, eax
cmp eax, 0xffffffff
je 0x403ca4
mov eax, ebp
lea edi, [esp + 0x98]
mov dword [esp + 0x64], ebp
mov edx, ebx
and eax, 0x600
mov dword [esp + 0x58], edi
mov ebp, dword [esp + 0x20]
mov dword [esp + 0x98], 0
mov ebx, dword [esp + 0x24]
mov dword [esp + 0x9c], 0
mov edi, dword [esp + 0x28]
mov dword [esp + 0x54], 0
mov dword [esp + 0x60], eax
jmp 0x404495
sub edi, 1
je 0x40482d
mov edx, ebx
mov eax, ebp
call sym._in_ch
mov edx, eax
cmp eax, 0xffffffff
je 0x40482d
mov eax, dword [esp + 0x80]
movzx ecx, byte [esp + 0x48]
cmp byte [eax + edx], cl
je 0x404d13
test esi, esi
jne 0x404478
mov eax, dword [esp + 0x58]
mov dword [esp + 8], 1
mov byte [esp + 0x8b], dl
mov dword [esp + 0xc], eax
lea eax, [esp + 0x8b]
mov dword [esp + 4], eax
mov eax, dword [esp + 0x40]
mov dword [esp + 0x18], edx
mov dword [esp], eax
call dbg.mbrtowc
mov edx, dword [esp + 0x18]
cmp eax, 0xfffffffe
je 0x404760
mov eax, dword [esp + 0x60]
add dword [esp + 0x40], 2
test eax, eax
je 0x40457e
mov ecx, dword [esp + 0x2c]
mov eax, dword [esp + 0x44]
mov dword [esp + 0x54], 0
mov ecx, dword [ecx]
add eax, eax
mov dword [esp + 0x28], eax
add eax, ecx
cmp dword [esp + 0x40], eax
jne 0x404478
mov eax, dword [esp + 0x28]
mov dword [esp + 0x54], ebx
mov ebx, edx
mov dword [esp + 0x18], eax
mov eax, dword [esp + 0x44]
add eax, 1
mov dword [esp + 0x40], eax
mov eax, dword [esp + 0x18]
mov dword [esp], ecx
add eax, eax
mov dword [esp + 4], eax
call sym._realloc
test eax, eax
je 0x405208
mov ecx, dword [esp + 0x2c]
mov edx, ebx
mov ebx, dword [esp + 0x54]
mov dword [esp + 0x54], 0
mov dword [ecx], eax
add eax, dword [esp + 0x28]
mov dword [esp + 0x40], eax
mov eax, dword [esp + 0x18]
mov dword [esp + 0x44], eax
jmp 0x404478
mov dword [esp + 0x54], 0
jmp 0x404478
lea eax, [esp + 0x78]
mov dword [esp + 0x24], eax
mov edx, eax
mov eax, dword [esp + 0x20]
call sym._in_ch
mov ebx, eax
cmp eax, 0xffffffff
je 0x403ca4
mov ecx, ebp
mov dword [esp + 0x58], ebp
mov edi, dword [esp + 0x20]
and ecx, 0x600
mov dword [esp + 0x54], esi
mov ebp, dword [esp + 0x24]
mov esi, dword [esp + 0x4c]
mov dword [esp + 0x4c], ecx
jmp 0x404600
mov ecx, dword [esp + 0x2c]
mov esi, eax
mov edx, dword [ecx]
mov ecx, dword [esp + 0x44]
add ecx, edx
cmp eax, ecx
je 0x404c41
sub dword [esp + 0x28], 1
je 0x404895
mov edx, ebp
mov eax, edi
call sym._in_ch
mov ebx, eax
cmp eax, 0xffffffff
je 0x404895
mov eax, dword [esp + 0x80]
movzx ecx, byte [esp + 0x48]
cmp byte [eax + ebx], cl
je 0x404cf0
mov eax, dword [esp + 0x54]
test eax, eax
jne 0x4045e1
mov byte [esi], bl
lea eax, [esi + 1]
mov esi, dword [esp + 0x4c]
test esi, esi
jne 0x4045cb
mov esi, eax
jmp 0x4045e1
mov ebx, dword [esp + 0x64]
jmp 0x4039da
test esi, esi
je 0x4048b0
call sym._strtol
jmp 0x403301
mov dword [esp + 0x4c], esi
mov esi, dword [esp + 0x28]
mov edx, dword [esp + 0x4c]
mov eax, dword [esp + 0x2c]
mov dword [esp + 0x44], ebp
mov ecx, esi
call dbg.optimize_alloc
add dword [esp + 0x30], 1
mov dword [esp + 0x2c], 0
jmp 0x402a14
mov eax, dword [esp + 0x44]
mov dword [esp + 0x4c], ebp
mov ebp, esi
mov esi, ebx
lea ecx, [eax + eax]
lea edi, [eax + 1]
mov ebx, ecx
mov dword [esp + 4], ebx
mov dword [esp], edx
call sym._realloc
test eax, eax
je 0x40547d
mov edi, dword [esp + 0x44]
mov edx, dword [esp + 0x2c]
mov ecx, ebx
mov ebx, esi
mov dword [esp + 0x44], ecx
mov esi, ebp
mov ebp, dword [esp + 0x4c]
mov dword [edx], eax
add edi, eax
jmp 0x403144
mov edi, dword [esp + 0x48]
test edi, edi
jne 0x404d30
mov eax, dword [esp + 0x3c]
mov ebx, dword [eax]
add eax, 4
mov dword [esp + 0x3c], eax
mov dword [esp + 0x4c], ebx
mov ebx, dword [esp + 0x4c]
test ebx, ebx
jne 0x4030ee
jmp case.0x40319e.1
mov edx, dword [esp + 0x48]
mov ebx, dword [esp + 0x38]
sub edx, 1
lea eax, [ebx + edx*4]
cmove eax, ebx
mov eax, dword [eax]
mov dword [esp + 0x2c], eax
jmp 0x4033c9
mov edx, dword [esp + 0x48]
mov ebx, dword [esp + 0x38]
sub edx, 1
lea eax, [ebx + edx*4]
cmove eax, ebx
mov eax, dword [eax]
mov dword [esp + 0x40], eax
jmp 0x403bcd
mov edx, dword [esp + 0x48]
mov ebx, dword [esp + 0x38]
sub edx, 1
lea eax, [ebx + edx*4]
cmove eax, ebx
mov eax, dword [eax]
mov dword [esp + 0x2c], eax
jmp 0x4035e0
mov edx, dword [esp + 0x48]
mov ebx, dword [esp + 0x38]
sub edx, 1
lea eax, [ebx + edx*4]
cmove eax, ebx
mov eax, dword [eax]
mov dword [esp + 0x40], eax
jmp 0x403b9d
add dword [esp + 0x54], 1
jmp 0x404481
fstp st(0)
jmp 0x404774
fstp st(0)
jmp 0x404774
fstp st(0)
mov eax, dword [esp + 0x84]
cmp dword [esp + 0x80], eax
jne 0x403b20
jmp case.0x40319e.1
mov ecx, dword [esp + 0x48]
test ecx, ecx
jne 0x404eac
mov eax, dword [esp + 0x3c]
mov edi, dword [eax]
add eax, 4
mov dword [esp + 0x3c], eax
test edi, edi
jne 0x402f71
jmp case.0x40319e.1
mov ecx, dword [esp + 0x24]
mov edx, dword [esp + 0x20]
mov eax, ebx
mov dword [esp + 0x4c], edi
mov dword [esp], 1
mov esi, dword [esp + 0x48]
call sym._back_ch
jmp 0x404049
mov ecx, dword [esp + 0x80]
lea edi, [esp + 0x7c]
xor eax, eax
mov edx, edi
call dbg.resize_wbuf
mov edx, dword [esp + 0x24]
mov dword [esp + 0x80], eax
mov byte [eax], bl
mov ebx, dword [esp + 0x28]
xor eax, eax
test ebx, ebx
setg al
sub ebx, eax
mov eax, dword [esp + 0x20]
mov dword [esp + 0x28], ebx
call sym._in_ch
mov dword [esp + 0x54], 1
mov ebx, eax
jmp 0x4031f0
mov ebx, edx
mov ecx, dword [esp + 0x54]
test ecx, ecx
jne 0x403840
mov eax, dword [esp + 0x5c]
cmp dword [esp + 0x78], eax
je case.0x40319e.1
mov dword [esp + 0x18], 0
test esi, esi
jne 0x402a14
mov eax, dword [esp + 0x40]
xor edx, edx
mov word [eax], dx
lea esi, [eax + 2]
mov eax, dword [esp + 0x44]
mov edx, esi
lea ecx, [eax + eax]
mov eax, dword [esp + 0x2c]
call dbg.optimize_alloc
mov eax, dword [esp + 0x54]
add dword [esp + 0x30], 1
mov dword [esp + 0x40], esi
mov dword [esp + 0x18], eax
mov dword [esp + 0x2c], 0
jmp 0x402a14
mov dword [esp + 0x4c], esi
mov esi, dword [esp + 0x54]
mov eax, dword [esp + 0x5c]
cmp dword [esp + 0x78], eax
jne 0x404049
jmp case.0x40319e.1
call sym._strtoul
jmp 0x403301
call sym._strtoumax
jmp 0x4032fd
mov esi, dword [esp + 0x48]
test esi, esi
jne 0x404e18
mov ecx, dword [esp + 0x3c]
mov edx, dword [ecx]
add ecx, 4
mov dword [esp + 0x3c], ecx
mov dword [edx], eax
mov eax, dword [esp + 0x68]
mov dword [edx + 4], eax
jmp 0x403372
test edi, edi
jne 0x4048c4
test ebp, 4
jne 0x404d4c
test ebp, 2
jne 0x40519c
and ebp, 1
je 0x4052ad
cmp dword [esp + 0x48], 0
je 0x403363
mov edx, dword [esp + 0x48]
xor ecx, ecx
jmp 0x404928
mov ecx, 1
sub edx, 1
jne 0x404923
mov edi, dword [esp + 0x38]
mov edx, dword [esp + 0x48]
test cl, cl
lea edx, [edi + edx*4 - 4]
cmove edx, edi
mov edx, dword [edx]
jmp 0x403370
mov ecx, ebp
and ecx, 4
mov dword [esp + 0x18], ecx
je 0x404d88
mov ebp, dword [esp + 0x48]
test ebp, ebp
jne 0x4050fb
mov ecx, dword [esp + 0x3c]
mov edx, dword [ecx]
add ecx, 4
mov dword [esp + 0x3c], ecx
mov dword [edx], eax
mov dword [esp + 0x18], 0
jmp 0x402a14
mov ebx, dword [esp + 0x54]
lea edi, [esp + 0x7c]
mov edx, edi
mov eax, ebx
call dbg.resize_wbuf
mov edx, dword [esp + 0x24]
mov dword [esp + 0x80], eax
mov byte [eax + ebx], 0x30
mov eax, dword [esp + 0x20]
call sym._in_ch
mov ebx, eax
mov dword [esp], ebx
call sym._tolower
cmp eax, 0x78
je 0x404db5
mov edi, dword [esp + 0x28]
test edi, edi
setne al
cmp ebx, 0xffffffff
setne dl
and eax, edx
mov edx, dword [esp + 0x10]
test edx, edx
jne 0x4049dc
mov dword [esp + 0x10], 8
mov dword [esp + 0x54], esi
test al, al
jne 0x4040a8
jmp 0x40326e
mov esi, dword [esp + 0x34]
jmp 0x40423a
call dbg.__strtof
test esi, esi
jne 0x40476e
mov esi, dword [esp + 0x84]
mov eax, dword [esp + 0x80]
cmp esi, eax
je 0x4029d9
fld st(0)
mov ebp, dword [esp + 0x48]
cmp dword [esp + 0x64], 0x2d
fchs
fcmovne st(0), st(1)
fstp st(1)
test ebp, ebp
jne 0x40509b
mov ecx, dword [esp + 0x3c]
lea edx, [ecx + 4]
mov ecx, dword [ecx]
mov dword [esp + 0x3c], edx
fstp dword [ecx]
jmp 0x4043da
lea eax, [esp + 0x84]
mov dword [esp + 4], eax
mov eax, dword [esp + 0x80]
mov dword [esp], eax
call dbg.__strtold
test esi, esi
jne 0x404772
mov esi, dword [esp + 0x84]
mov eax, dword [esp + 0x80]
cmp esi, eax
je 0x4029dd
cmp dword [esp + 0x64], 0x2d
jne 0x404a8a
fchs
mov ecx, dword [esp + 0x48]
test ecx, ecx
jne 0x405114
mov ecx, dword [esp + 0x3c]
lea edx, [ecx + 4]
mov ecx, dword [ecx]
fstp xword [ecx]
mov dword [esp + 0x3c], edx
jmp 0x4043da
mov ecx, ebp
mov edi, ebx
mov ebp, dword [esp + 0x18]
mov ebx, eax
movzx eax, byte [ecx + 1]
jmp 0x403df0
mov edi, ebx
mov ebp, dword [esp + 0x18]
mov ebx, eax
jmp 0x403df4
mov ecx, dword [esp + 0x80]
lea edi, [esp + 0x7c]
xor eax, eax
mov esi, 1
mov edx, edi
call dbg.resize_wbuf
mov dword [esp + 0x54], ebp
mov ebp, dword [esp + 0x28]
mov dword [esp + 0x80], eax
mov byte [eax], bl
jmp 0x404af8
mov esi, edx
test ebp, ebp
je case.0x40319e.1
mov edx, dword [esp + 0x24]
mov eax, dword [esp + 0x20]
call sym._in_ch
mov ebx, eax
cmp eax, 0xffffffff
je case.0x40319e.1
mov dword [esp], eax
call sym._tolower
mov edx, eax
movsx eax, byte [esi + 0x4102de]
cmp edx, eax
jne case.0x40319e.1
xor eax, eax
test ebp, ebp
mov ecx, dword [esp + 0x80]
mov edx, edi
setg al
sub ebp, eax
mov eax, esi
call dbg.resize_wbuf
cmp byte [esi + 0x4102df], 0
lea edx, [esi + 1]
mov dword [esp + 0x80], eax
mov byte [eax + esi], bl
jne 0x404af6
mov eax, ebp
mov dword [esp + 0x28], ebp
mov ebp, dword [esp + 0x54]
mov dword [esp + 0x18], edx
test eax, eax
je 0x40433a
mov edx, dword [esp + 0x24]
mov eax, dword [esp + 0x20]
call sym._in_ch
mov ebx, eax
cmp eax, 0xffffffff
je 0x40433a
mov dword [esp], eax
call sym._tolower
cmp eax, 0x69
je 0x405492
mov dword [esp], 0
mov ecx, dword [esp + 0x24]
mov eax, ebx
mov edx, dword [esp + 0x20]
call sym._back_ch
jmp 0x40433a
mov ebp, dword [esp + 0x18]
mov ebx, dword [esp + 0x6c]
jne 0x403d1d
movzx eax, byte [esi]
mov edx, eax
cmp eax, ebx
jne 0x403d20
mov dword [esp + 0x18], ebp
mov ebp, esi
add esi, 1
cmp byte [esi], 0
je 0x405398
test edi, edi
je 0x404c22
mov edx, dword [esp + 0x24]
mov eax, dword [esp + 0x20]
call sym._in_ch
mov ebx, eax
cmp eax, 0xffffffff
je 0x405389
movzx eax, byte [esi]
sub edi, 1
mov edx, eax
cmp ebx, eax
je 0x404bdf
mov ebp, dword [esp + 0x18]
jmp 0x403d20
mov dword [esp + 0x18], ebp
mov dword [esp], 0
mov ecx, dword [esp + 0x24]
mov eax, ebx
mov edx, dword [esp + 0x20]
mov ebp, dword [esp + 0x58]
call sym._back_ch
jmp 0x404317
mov eax, dword [esp + 0x44]
mov dword [esp + 0x60], ebp
mov ebp, edi
mov edi, ebx
lea ecx, [eax + eax]
lea esi, [eax + 1]
mov ebx, ecx
mov dword [esp + 4], ebx
mov dword [esp], edx
call sym._realloc
test eax, eax
je 0x4053aa
mov esi, dword [esp + 0x44]
mov edx, dword [esp + 0x2c]
mov ecx, ebx
mov ebx, edi
mov dword [esp + 0x44], ecx
mov edi, ebp
mov ebp, dword [esp + 0x60]
mov dword [edx], eax
add esi, eax
jmp 0x4045e1
mov eax, dword [esp + 0x48]
test eax, eax
jne 0x40507f
mov eax, dword [esp + 0x3c]
mov ebx, dword [eax]
add eax, 4
mov dword [esp + 0x3c], eax
mov dword [esp + 0x4c], ebx
mov eax, dword [esp + 0x4c]
test eax, eax
jne 0x402cf8
jmp case.0x40319e.1
mov ecx, dword [esp + 0x48]
test ecx, ecx
jne 0x4051b9
mov eax, dword [esp + 0x3c]
mov ebx, dword [eax]
add eax, 4
mov dword [esp + 0x3c], eax
mov dword [esp + 0x40], ebx
mov edx, dword [esp + 0x40]
test edx, edx
jne 0x402cf8
jmp case.0x40319e.1
mov ecx, dword [esp + 0x24]
mov edx, dword [esp + 0x20]
mov eax, ebx
mov dword [esp + 0x4c], esi
mov dword [esp], 1
mov esi, dword [esp + 0x54]
call sym._back_ch
jmp 0x40489d
mov dword [esp], 1
mov ebx, edx
mov ecx, dword [esp + 0x24]
mov edx, dword [esp + 0x20]
mov eax, ebx
call sym._back_ch
jmp 0x40482f
mov edx, dword [esp + 0x48]
mov ebx, dword [esp + 0x38]
sub edx, 1
lea eax, [ebx + edx*4]
cmove eax, ebx
mov eax, dword [eax]
mov dword [esp + 0x4c], eax
jmp 0x4046da
mov ecx, dword [esp + 0x48]
test ecx, ecx
jne 0x405181
mov ecx, dword [esp + 0x3c]
mov edx, dword [ecx]
add ecx, 4
mov dword [esp + 0x3c], ecx
mov dword [edx], eax
jmp 0x403372
mov edx, dword [esp + 0x48]
mov ebx, dword [esp + 0x38]
sub edx, 1
lea eax, [ebx + edx*4]
cmove eax, ebx
mov eax, dword [eax]
mov dword [esp + 0x2c], eax
jmp 0x40307e
test ebp, 2
je 0x404e31
mov edi, dword [esp + 0x48]
test edi, edi
jne 0x4053ca
mov ecx, dword [esp + 0x3c]
mov edx, dword [ecx]
add ecx, 4
mov dword [esp + 0x3c], ecx
mov word [edx], ax
jmp 0x402a14
test byte [esp + 0x10], 0xa
jne 0x4050e6
mov edi, dword [esp + 0x28]
xor eax, eax
mov edx, dword [esp + 0x24]
test edi, edi
setg al
sub edi, eax
mov eax, dword [esp + 0x20]
mov dword [esp + 0x28], edi
call sym._in_ch
test edi, edi
mov dword [esp + 0x10], 0x10
mov ebx, eax
setne al
cmp ebx, 0xffffffff
setne dl
and eax, edx
jmp 0x4049dc
lea eax, [esp + 0x80]
xor ecx, ecx
lea edx, [esp + 0x74]
mov dword [esp], eax
mov eax, dword [esp + 0x30]
call sym._cleanup_return
jmp 0x4029fa
mov edi, dword [esp + 0x38]
mov ecx, dword [esp + 0x48]
mov edx, edi
sub ecx, 1
je 0x404e2a
lea edx, [edi + ecx*4]
mov edx, dword [edx]
jmp 0x4048dd
and ebp, 1
mov dword [esp + 0x18], ebp
je 0x4050b8
cmp dword [esp + 0x48], 0
jne 0x405370
mov ecx, dword [esp + 0x3c]
mov edx, dword [ecx]
add ecx, 4
mov dword [esp + 0x3c], ecx
mov byte [edx], al
mov dword [esp + 0x18], 0
jmp 0x402a14
mov ecx, dword [esp + 0x80]
lea edi, [esp + 0x7c]
xor eax, eax
mov ebp, dword [esp + 0x18]
mov edx, edi
call dbg.resize_wbuf
mov dword [esp + 0x54], 1
mov dword [esp + 0x80], eax
mov byte [eax], 0x30
jmp 0x4032a4
mov ecx, dword [esp + 0x48]
mov edi, dword [esp + 0x38]
sub ecx, 1
lea edx, [edi + ecx*4]
cmove edx, edi
mov edx, dword [edx]
jmp 0x403956
mov edx, dword [esp + 0x48]
mov ebx, dword [esp + 0x38]
sub edx, 1
lea eax, [ebx + edx*4]
cmove eax, ebx
mov edi, dword [eax]
jmp 0x4047a9
mov edx, dword [esp + 0x48]
mov ebx, dword [esp + 0x38]
sub edx, 1
lea eax, [ebx + edx*4]
cmove eax, ebx
mov eax, dword [eax]
mov dword [esp + 0x2c], eax
jmp 0x402ef9
mov ecx, dword [esp + 0x80]
lea edi, [esp + 0x7c]
xor eax, eax
mov esi, 1
mov edx, edi
call dbg.resize_wbuf
mov dword [esp + 0x54], ebp
mov ebp, dword [esp + 0x28]
mov dword [esp + 0x80], eax
mov byte [eax], bl
jmp 0x404f10
mov esi, dword [esp + 0x18]
test ebp, ebp
je case.0x40319e.1
mov edx, dword [esp + 0x24]
mov eax, dword [esp + 0x20]
call sym._in_ch
mov ebx, eax
cmp eax, 0xffffffff
je case.0x40319e.1
mov dword [esp], eax
call sym._tolower
mov edx, eax
movsx eax, byte [esi + 0x4102da]
cmp edx, eax
jne case.0x40319e.1
xor eax, eax
test ebp, ebp
mov ecx, dword [esp + 0x80]
mov edx, edi
setg al
sub ebp, eax
mov eax, esi
call dbg.resize_wbuf
lea ecx, [esi + 1]
cmp byte [esi + 0x4102db], 0
mov dword [esp + 0x80], eax
mov dword [esp + 0x18], ecx
mov byte [eax + esi], bl
jne 0x404f0c
mov ebp, dword [esp + 0x54]
jmp 0x40433a
mov ecx, dword [esp + 0x80]
lea edi, [esp + 0x7c]
xor eax, eax
mov edx, edi
call dbg.resize_wbuf
mov edx, dword [esp + 0x24]
mov dword [esp + 0x80], eax
mov byte [eax], 0x30
mov eax, dword [esp + 0x20]
call sym._in_ch
mov ebx, eax
mov eax, dword [esp + 0x28]
test eax, eax
jle 0x404fcf
sub eax, 1
mov dword [esp + 0x18], 1
mov dword [esp + 0x28], eax
je 0x403a12
mov dword [esp], ebx
call sym._tolower
cmp eax, 0x78
je 0x4052ec
mov byte [esp + 0x54], 0x65
mov dword [esp + 0x18], 1
jmp 0x403a12
mov dword [esp], 1
mov ecx, dword [esp + 0x24]
mov eax, ebx
mov edx, dword [esp + 0x20]
call sym._back_ch
jmp 0x403f3a
mov eax, dword [esp + 0x44]
mov dword [esp + 0x40], ebp
mov esi, ecx
mov ebp, ebx
mov dword [esp + 0x5c], edi
mov edi, ecx
lea edx, [eax + 1]
mov ebx, edx
lea eax, [esi + esi]
mov dword [esp + 4], eax
mov eax, dword [esp + 0x2c]
mov eax, dword [eax]
mov dword [esp], eax
call sym._realloc
test eax, eax
je 0x4053bb
mov edx, dword [esp + 0x2c]
mov ecx, edi
mov ebx, ebp
mov dword [esp + 0x44], esi
mov ebp, dword [esp + 0x40]
mov edi, dword [esp + 0x5c]
mov dword [edx], eax
add eax, ecx
mov dword [esp + 0x40], eax
jmp 0x403f15
mov edi, dword [esp + 0x38]
mov ecx, dword [esp + 0x48]
mov edx, edi
sub ecx, 1
je 0x405074
lea edx, [edi + ecx*4]
mov ecx, dword [edx]
mov edx, dword [esp + 0x3c]
jmp 0x4043d4
mov edx, dword [esp + 0x48]
mov ebx, dword [esp + 0x38]
sub edx, 1
lea eax, [ebx + edx*4]
cmove eax, ebx
mov eax, dword [eax]
mov dword [esp + 0x4c], eax
jmp 0x404ca5
mov edi, dword [esp + 0x38]
mov ecx, dword [esp + 0x48]
mov edx, edi
sub ecx, 1
je 0x4050ad
lea edx, [edi + ecx*4]
mov ecx, dword [edx]
mov edx, dword [esp + 0x3c]
jmp 0x404a3e
cmp dword [esp + 0x48], 0
jne 0x405355
mov ecx, dword [esp + 0x3c]
mov edx, dword [ecx]
add ecx, 4
mov dword [esp + 0x3c], ecx
mov dword [edx], eax
jmp 0x402a14
jne 0x403d0f
mov esi, dword [esp + 0x34]
jmp 0x404bce
cmp dword [esp + 0x28], 0
setne al
cmp ebx, 0xffffffff
setne dl
and eax, edx
jmp 0x4049dc
mov edi, dword [esp + 0x38]
mov ecx, dword [esp + 0x48]
mov edx, edi
sub ecx, 1
je 0x40510d
lea edx, [edi + ecx*4]
mov edx, dword [edx]
jmp 0x404970
mov edi, dword [esp + 0x38]
mov ecx, dword [esp + 0x48]
mov edx, edi
sub ecx, 1
je 0x405126
lea edx, [edi + ecx*4]
mov ecx, dword [edx]
mov edx, dword [esp + 0x3c]
jmp 0x404a9f
mov edx, dword [esp + 0x48]
mov ebx, dword [esp + 0x38]
sub edx, 1
lea eax, [ebx + edx*4]
cmove eax, ebx
mov eax, dword [eax]
mov dword [esp + 0x2c], eax
jmp 0x402c88
cmp dword [esp + 0x30], 0
jne case.0x40319e.1
mov dword [esp + 0x30], 0xffffffff
jmp case.0x40319e.1
mov edx, dword [esp + 0x48]
mov ebx, dword [esp + 0x38]
sub edx, 1
lea eax, [ebx + edx*4]
cmove eax, ebx
mov eax, dword [eax]
mov dword [esp + 0x2c], eax
jmp 0x403c11
mov edi, dword [esp + 0x38]
mov ecx, dword [esp + 0x48]
mov edx, edi
sub ecx, 1
je 0x405193
lea edx, [edi + ecx*4]
mov edx, dword [edx]
mov dword [edx], eax
jmp 0x403372
mov edx, dword [esp + 0x48]
test edx, edx
jne 0x405223
mov ecx, dword [esp + 0x3c]
mov edx, dword [ecx]
add ecx, 4
mov dword [esp + 0x3c], ecx
mov word [edx], ax
jmp 0x403372
mov edx, dword [esp + 0x48]
mov ebx, dword [esp + 0x38]
sub edx, 1
lea eax, [ebx + edx*4]
cmove eax, ebx
mov eax, dword [eax]
mov dword [esp + 0x40], eax
jmp 0x404cdd
movzx eax, bl
jmp 0x402dcf
mov eax, dword [esp + 0x30]
test eax, eax
cmove eax, dword [esp + 0x64]
jmp 0x40381c
mov ecx, dword [esp + 0x40]
mov eax, dword [esp + 0x24]
cmp ecx, eax
jae 0x40523c
mov eax, dword [esp + 0x2c]
mov dword [esp + 0x24], ecx
mov eax, dword [eax]
jmp 0x403504
mov eax, dword [esp + 0x40]
mov ecx, dword [esp + 0x18]
cmp eax, ecx
jae 0x405254
mov ecx, dword [esp + 0x2c]
mov dword [esp + 0x18], eax
mov ecx, dword [ecx]
jmp 0x40453b
mov edi, dword [esp + 0x38]
mov ecx, dword [esp + 0x48]
mov edx, edi
sub ecx, 1
je 0x405235
lea edx, [edi + ecx*4]
mov edx, dword [edx]
jmp 0x4051b1
lea eax, [esp + 0x74]
lea edx, [esp + 0x80]
call dbg.release_ptrs
or eax, 0xffffffff
jmp 0x4029fa
mov ebp, dword [esp + 0x64]
and ebp, 0x400
je 0x40528b
or eax, 0xffffffff
lea edx, [esp + 0x80]
mov ecx, dword [esp + 0x2c]
mov dword [esp], edx
lea edx, [esp + 0x74]
call sym._cleanup_return
jmp 0x4029fa
mov ebp, dword [esp + 0x58]
and ebp, 0x400
jne 0x405260
mov eax, dword [esp + 0x2c]
mov ebx, dword [esp + 0x44]
mov eax, dword [eax]
mov word [eax + ebx*2 - 2], 0
mov eax, dword [esp + 0x30]
mov dword [esp + 0x2c], 0
add eax, 1
jmp 0x405263
cmp dword [esp + 0x48], 0
je 0x404d58
mov edx, dword [esp + 0x48]
xor ecx, ecx
jmp 0x4052c5
mov ecx, 1
sub edx, 1
jne 0x4052c0
mov edi, dword [esp + 0x38]
mov edx, dword [esp + 0x48]
test cl, cl
lea edx, [edi + edx*4 - 4]
cmove edx, edi
mov edx, dword [edx]
jmp 0x405195
mov byte [esp + 0x60], 1
jmp 0x403acc
mov ecx, dword [esp + 0x80]
mov edx, edi
mov eax, 1
call dbg.resize_wbuf
mov edx, dword [esp + 0x24]
mov dword [esp + 0x80], eax
mov byte [eax + 1], bl
mov eax, ebp
and ah, 0xfe
or eax, 0x40
mov ebp, eax
mov eax, dword [esp + 0x20]
call sym._in_ch
mov ebx, eax
mov eax, dword [esp + 0x28]
test eax, eax
jle 0x405343
sub eax, 1
mov byte [esp + 0x54], 0x70
mov dword [esp + 0x28], eax
mov dword [esp + 0x18], 2
jmp 0x403a12
mov byte [esp + 0x54], 0x70
mov dword [esp + 0x18], 2
jmp 0x403a12
mov edi, dword [esp + 0x38]
mov ecx, dword [esp + 0x48]
mov edx, edi
sub ecx, 1
je 0x405367
lea edx, [edi + ecx*4]
mov edx, dword [edx]
mov dword [edx], eax
jmp 0x402a14
mov edi, dword [esp + 0x38]
mov ecx, dword [esp + 0x48]
mov edx, edi
sub ecx, 1
je 0x405382
lea edx, [edi + ecx*4]
mov edx, dword [edx]
jmp 0x404e56
mov ecx, ebp
mov ebp, dword [esp + 0x18]
movzx edx, byte [ecx + 1]
jmp 0x403d20
mov ebp, dword [esp + 0x18]
jmp 0x403d28
mov ebp, dword [esp + 0x5c]
jmp 0x404269
cmp esi, ebx
jae 0x4053e3
mov eax, dword [esp + 0x2c]
mov ebx, esi
mov edx, dword [eax]
jmp 0x404c55
cmp ebx, esi
jae 0x40527f
mov esi, ebx
jmp 0x405024
mov edi, dword [esp + 0x38]
mov ecx, dword [esp + 0x48]
mov edx, edi
sub ecx, 1
je 0x4053dc
lea edx, [edi + ecx*4]
mov edx, dword [edx]
jmp 0x404dad
mov ebp, dword [esp + 0x58]
and ebp, 0x400
jne 0x405260
mov eax, dword [esp + 0x2c]
mov ebx, dword [esp + 0x44]
mov eax, dword [eax]
mov byte [eax + ebx - 1], 0
mov eax, dword [esp + 0x30]
mov dword [esp + 0x2c], 0
add eax, 1
jmp 0x405263
mov ecx, dword [esp + 0x24]
mov edx, dword [esp + 0x20]
mov dword [esp], 1
call sym._back_ch
jmp case.0x40319e.1
cmp ebx, esi
jae 0x40523c
mov eax, dword [esp + 0x2c]
mov esi, ebx
mov edx, dword [eax]
jmp 0x402ffa
mov edx, dword [esp + 0x48]
xor ecx, ecx
jmp 0x405451
mov ecx, 1
sub edx, 1
jne 0x40544c
jmp 0x40492d
cmp dword [esp + 0x48], 0
je 0x404d58
mov edx, dword [esp + 0x48]
xor ecx, ecx
jmp 0x405473
mov ecx, 1
sub edx, 1
jne 0x40546e
jmp 0x4052ca
cmp edi, ebx
jae 0x405553
mov eax, dword [esp + 0x2c]
mov ebx, edi
mov edx, dword [eax]
jmp 0x40468a
mov eax, dword [esp + 0x28]
test eax, eax
jle 0x4054a1
sub eax, 1
mov dword [esp + 0x28], eax
mov ecx, dword [esp + 0x80]
mov eax, dword [esp + 0x18]
mov edx, edi
add esi, 2
call dbg.resize_wbuf
mov ecx, dword [esp + 0x18]
mov dword [esp + 0x54], 0x4102e2
mov dword [esp + 0x80], eax
mov byte [eax + ecx], bl
jmp 0x405547
mov edx, dword [esp + 0x24]
mov eax, dword [esp + 0x20]
call sym._in_ch
mov ebx, eax
cmp eax, 0xffffffff
je case.0x40319e.1
mov dword [esp], eax
call sym._tolower
mov edx, eax
mov eax, dword [esp + 0x54]
movsx eax, byte [eax + 1]
cmp edx, eax
jne case.0x40319e.1
mov eax, dword [esp + 0x28]
test eax, eax
jle 0x40550f
sub eax, 1
mov dword [esp + 0x28], eax
mov ecx, dword [esp + 0x80]
mov edx, edi
mov eax, esi
call dbg.resize_wbuf
add dword [esp + 0x54], 1
lea ecx, [esi + 1]
mov dword [esp + 0x80], eax
mov byte [eax + esi], bl
mov eax, dword [esp + 0x54]
mov dword [esp + 0x18], ecx
cmp byte [eax + 1], 0
je 0x40433a
mov esi, dword [esp + 0x18]
cmp dword [esp + 0x28], 0
jne 0x4054ce
jmp case.0x40319e.1
mov ebp, dword [esp + 0x54]
and ebp, 0x400
je 0x4053f3
jmp 0x405260