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

Disassembly:
push ebp
mov ebp, esp
and esp, 0xfffffff8
push 0xffffffffffffffff
push 0x5630e7
mov eax, dword fs:[0]
push eax
sub esp, 0x480
push ebx
push esi
push edi
mov eax, dword [0x63d20c]
xor eax, esp
push eax
lea eax, [esp + 0x490]
mov dword fs:[0], eax
mov esi, ecx
mov dword [esp + 0x18], esi
mov eax, dword [ebp + 0x24]
mov ecx, dword [ebp + 0x20]
mov edx, dword [ebp + 0x1c]
push eax
mov eax, dword [ebp + 0x18]
push ecx
mov ecx, dword [ebp + 0x14]
push edx
mov edx, dword [ebp + 0x10]
push eax
mov eax, dword [ebp + 0xc]
push ecx
push edx
push eax
mov ecx, esi
call fcn.004e62f0
mov eax, 0xd
mov dword [esi], vtable.Gfx8BitFont.0
mov dword [esi + 0xdb8], eax
xor ebx, ebx
mov dword [esi + 0xdc8], eax
mov ecx, dword [esi + 0x14]
mov dword [esp + 0x498], ebx
mov dword [esp + 0x3c], eax
mov dword [esp + 0x4c], eax
mov dword [esp + 0x5c], eax
mov dword [esi + 0x5a4], ebx
mov dword [esi + 0xa0], ebx
cmp ecx, ebx
je 0x4e9132
call fcn.0041b9d0
mov edi, eax
xor esi, esi
cmp dword [edi], ebx
jle 0x4e90ba
jmp 0x4e90a0
mov ecx, dword [edi + 4]
cmp byte [esi + ecx], 0x20
jne 0x4e90b5
push 1
push esi
mov ecx, edi
call fcn.0047b140
jmp 0x4e90b6
inc esi
cmp esi, dword [edi]
jl 0x4e90a0
xor ebx, ebx
mov dword [esp + 0x20], 0x41
mov edx, dword [esp + 0x20]
lea eax, [edx + ebx]
cdq
sub eax, edx
mov esi, eax
sar esi, 1
mov eax, dword [esi*8 + 0x636720]
push eax
mov ecx, edi
call fcn.0047b280
test eax, eax
jl 0x4e90e9
mov ebx, esi
jmp 0x4e90ed
mov dword [esp + 0x20], esi
mov ecx, dword [esp + 0x20]
sub ecx, ebx
cmp ecx, 1
jg 0x4e90c4
mov edx, dword [ebx*8 + 0x636720]
lea esi, [ebx*8 + 0x636720]
push edx
mov ecx, edi
call fcn.0047b280
test eax, eax
jne 0x4e911c
mov eax, dword [esp + 0x18]
mov dword [eax + 0xa0], esi
mov ecx, edi
call fcn.0047ac70
push edi
call sub.MSVCR90.dll_void___cdecl_operator_delete_void__
mov esi, dword [esp + 0x1c]
add esp, 4
xor ebx, ebx
mov eax, dword [esi + 0xa0]
fldz
fld qword [0x5c4c98]
mov dword [esp + 0x34], ebx
cmp eax, ebx
je 0x4e9195
mov ecx, dword [eax + 4]
xor edi, edi
mov dword [esp + 0x14], ecx
mov esi, 0x631128
mov ecx, dword [esi]
mov eax, dword [esp + 0x14]
mov dl, byte [eax]
cmp dl, byte [ecx]
jne 0x4e917c
test dl, dl
je 0x4e9178
mov dl, byte [eax + 1]
cmp dl, byte [ecx + 1]
jne 0x4e917c
add eax, 2
add ecx, 2
test dl, dl
jne 0x4e915c
xor eax, eax
jmp 0x4e9181
sbb eax, eax
sbb eax, 0xffffffff
cmp eax, ebx
je 0x4e92bf
add esi, 0x18
inc edi
cmp esi, 0x631278
jl 0x4e9156
mov ebx, dword [esp + 0x18]
fstp st(0)
fld qword [0x5c6ad0]
mov edi, dword [esp + 0x34]
mov esi, dword [esp + 0x18]
fstp qword [ebx + 0x88]
fld qword [0x5c6ac0]
add ebx, 0x60
fstp qword [ebx + 0x30]
fst qword [ebx + 0x18]
fst qword [ebx + 0x10]
fst qword [ebx + 8]
fstp qword [ebx]
mov edx, dword [ebp + 0x28]
mov eax, dword [ebp + 8]
push edx
push eax
mov ecx, esi
call fcn.004e69f0
test edi, edi
je 0x4e924c
movsx ecx, word [edi + 8]
mov dword [esp + 0x14], ecx
fild dword [esp + 0x14]
fld qword [0x5c4c98]
fmul st(1), st(0)
fxch st(1)
fstp qword [esi + 0x88]
movsx edx, word [edi + 0xa]
mov dword [esp + 0x14], edx
fild dword [esp + 0x14]
fmul st(1)
fstp qword [esi + 0x90]
movsx eax, word [edi + 0xc]
mov dword [esp + 0x14], eax
fild dword [esp + 0x14]
fmul st(1)
fstp qword [ebx]
movsx ecx, word [edi + 0xe]
mov dword [esp + 0x14], ecx
fild dword [esp + 0x14]
fmul st(1)
fstp qword [esi + 0x68]
movsx edx, word [edi + 0x10]
mov dword [esp + 0x14], edx
fild dword [esp + 0x14]
fmul st(1)
fstp qword [esi + 0x70]
movsx eax, word [edi + 0x12]
mov dword [esp + 0x14], eax
fild dword [esp + 0x14]
fmulp st(1)
fstp qword [esi + 0x78]
fld1
lea edi, [esi + 0x30]
fst qword [esi + 0x48]
push 0
fstp qword [edi]
lea ecx, [esp + 0x40]
fldz
push ecx
mov ecx, dword [ebp + 0x28]
fst qword [esi + 0x58]
fst qword [esi + 0x50]
push str.FontMatrix
fst qword [esi + 0x40]
fstp qword [esi + 0x38]
call fcn.0047c300
cmp dword [eax], 6
jne 0x4e9370
xor esi, esi
mov ecx, dword [esp + 0x44]
cmp esi, dword [ecx + 0xc]
jge 0x4e936c
lea edx, [esp + 0x4c]
push edx
push esi
call fcn.0047c000
mov eax, dword [eax]
cmp eax, 1
je 0x4e92ab
cmp eax, 2
jne 0x4e9356
cmp dword [esp + 0x4c], 1
jne 0x4e9350
fild dword [esp + 0x54]
jmp 0x4e9354
lea eax, [edi + edi*2]
lea eax, [eax*8 + 0x631128]
mov dword [esp + 0x34], eax
cmp eax, ebx
je 0x4e9195
mov esi, dword [esp + 0x18]
fstp st(1)
mov edi, eax
movsx edx, word [edi + 8]
mov dword [esp + 0x14], edx
lea ebx, [esi + 0x60]
fild dword [esp + 0x14]
fmul st(1)
fstp qword [esi + 0x88]
movsx eax, word [edi + 0xa]
mov dword [esp + 0x14], eax
fild dword [esp + 0x14]
fmul st(1)
fstp qword [esi + 0x90]
movsx ecx, word [edi + 0xc]
mov dword [esp + 0x14], ecx
fild dword [esp + 0x14]
fmul st(1)
fstp qword [ebx]
movsx edx, word [edi + 0xe]
mov dword [esp + 0x14], edx
fild dword [esp + 0x14]
fmul st(1)
fstp qword [esi + 0x68]
movsx eax, word [edi + 0x10]
mov dword [esp + 0x14], eax
fild dword [esp + 0x14]
fmul st(1)
fstp qword [esi + 0x70]
movsx ecx, word [edi + 0x12]
mov dword [esp + 0x14], ecx
fild dword [esp + 0x14]
fmulp st(1)
fstp qword [esi + 0x78]
jmp 0x4e91c6
fld qword [esp + 0x54]
fstp qword [edi]
lea ecx, [esp + 0x4c]
call fcn.0047c660
inc esi
add edi, 8
cmp esi, 6
jl 0x4e9283
mov esi, dword [esp + 0x18]
lea ecx, [esp + 0x3c]
call fcn.0047c660
cmp dword [esi + 0x18], 4
jne 0x4e9448
mov ecx, dword [ebp + 0x28]
push 0
lea eax, [esp + 0x40]
push eax
push str.FontBBox
call fcn.0047c300
cmp dword [eax], 6
jne 0x4e93e5
xor esi, esi
mov edi, ebx
mov ecx, dword [esp + 0x44]
cmp esi, dword [ecx + 0xc]
jge 0x4e93e5
lea edx, [esp + 0x4c]
push edx
push esi
call fcn.0047c000
mov eax, dword [eax]
cmp eax, 1
je 0x4e93c0
cmp eax, 2
jne 0x4e93d3
cmp dword [esp + 0x4c], 1
jne 0x4e93cd
fild dword [esp + 0x54]
jmp 0x4e93d1
fld qword [esp + 0x54]
fstp qword [edi]
lea ecx, [esp + 0x4c]
call fcn.0047c660
inc esi
add edi, 8
cmp esi, 4
jl 0x4e93a0
lea ecx, [esp + 0x3c]
call fcn.0047c660
mov ebx, dword [esp + 0x18]
mov edi, dword [ebp + 0x28]
push 0
lea esi, [ebx + 0xdb8]
push esi
push str.CharProcs
mov ecx, edi
call fcn.0047c300
cmp dword [eax], 7
je 0x4e9427
push str.Missing_or_invalid_CharProcs_dictionary_in_Type_3_font
push 0xffffffffffffffff
push 1
call fcn.00489570
add esp, 0xc
mov ecx, esi
call fcn.0047c660
push 0
lea esi, [ebx + 0xdc8]
push esi
push 0x5c45f0
mov ecx, edi
call fcn.0047c300
cmp dword [eax], 7
je 0x4e9448
mov ecx, esi
call fcn.0047c660
mov esi, dword [esp + 0x18]
mov ecx, dword [ebp + 0x28]
xor ebx, ebx
push ebx
lea eax, [esp + 0x40]
push eax
push str.Encoding
mov dword [esi + 0x5a8], ebx
mov dword [esi + 0x5ac], ebx
mov dword [esp + 0x30], ebx
mov dword [esi + 0x5b0], ebx
call fcn.0047c300
mov eax, dword [esp + 0x3c]
cmp eax, 7
jne 0x4e958a
push ebx
lea ecx, [esp + 0x50]
push ecx
mov ecx, dword [esp + 0x4c]
push str.BaseEncoding
call fcn.0047c300
cmp dword [esp + 0x4c], 4
jne 0x4e957c
mov edi, dword [esp + 0x54]
mov edx, str.MacRomanEncoding
mov ecx, edi
mov edi, edi
mov al, byte [ecx]
cmp al, byte [edx]
jne 0x4e94d0
test al, al
je 0x4e94cc
mov al, byte [ecx + 1]
cmp al, byte [edx + 1]
jne 0x4e94d0
add ecx, 2
add edx, 2
test al, al
jne 0x4e94b0
xor eax, eax
jmp 0x4e94d5
sbb eax, eax
sbb eax, 0xffffffff
cmp eax, ebx
jne 0x4e9500
mov eax, 1
lea ecx, [esp + 0x4c]
mov dword [esi + 0x5a8], eax
mov dword [esi + 0x5ac], eax
mov dword [esp + 0x24], 0x623160
call fcn.0047c660
jmp 0x4e966b
mov edx, str.MacExpertEncoding
mov ecx, edi
mov al, byte [ecx]
cmp al, byte [edx]
jne 0x4e9527
test al, al
je 0x4e9523
mov al, byte [ecx + 1]
cmp al, byte [edx + 1]
jne 0x4e9527
add ecx, 2
add edx, 2
test al, al
jne 0x4e9507
xor eax, eax
jmp 0x4e952c
sbb eax, eax
sbb eax, 0xffffffff
cmp eax, ebx
jne 0x4e953a
mov dword [esp + 0x24], 0x623560
jmp 0x4e9572
mov ecx, str.WinAnsiEncoding
mov eax, edi
mov dl, byte [eax]
cmp dl, byte [ecx]
jne 0x4e9561
test dl, dl
je 0x4e955d
mov dl, byte [eax + 1]
cmp dl, byte [ecx + 1]
jne 0x4e9561
add eax, 2
add ecx, 2
test dl, dl
jne 0x4e9541
xor eax, eax
jmp 0x4e9566
sbb eax, eax
sbb eax, 0xffffffff
cmp eax, ebx
jne 0x4e957c
mov dword [esp + 0x24], 0x623960
mov dword [esi + 0x5a8], 1
lea ecx, [esp + 0x4c]
call fcn.0047c660
jmp 0x4e966b
cmp eax, 4
jne 0x4e966b
mov edi, dword [esp + 0x44]
mov edx, str.MacRomanEncoding
mov ecx, edi
mov edi, edi
mov al, byte [ecx]
cmp al, byte [edx]
jne 0x4e95c0
test al, al
je 0x4e95bc
mov al, byte [ecx + 1]
cmp al, byte [edx + 1]
jne 0x4e95c0
add ecx, 2
add edx, 2
test al, al
jne 0x4e95a0
xor eax, eax
jmp 0x4e95c5
sbb eax, eax
sbb eax, 0xffffffff
cmp eax, ebx
jne 0x4e95e7
mov eax, 1
mov dword [esi + 0x5a8], eax
mov dword [esi + 0x5ac], eax
mov dword [esp + 0x24], 0x623160
jmp 0x4e966b
mov edx, str.MacExpertEncoding
mov ecx, edi
mov edi, edi
mov al, byte [ecx]
cmp al, byte [edx]
jne 0x4e9610
test al, al
je 0x4e960c
mov al, byte [ecx + 1]
cmp al, byte [edx + 1]
jne 0x4e9610
add ecx, 2
add edx, 2
test al, al
jne 0x4e95f0
xor eax, eax
jmp 0x4e9615
sbb eax, eax
sbb eax, 0xffffffff
cmp eax, ebx
jne 0x4e9623
mov dword [esp + 0x24], 0x623560
jmp 0x4e9661
mov ecx, str.WinAnsiEncoding
mov eax, edi
lea ebx, [ebx]
mov dl, byte [eax]
cmp dl, byte [ecx]
jne 0x4e9650
test dl, dl
je 0x4e964c
mov dl, byte [eax + 1]
cmp dl, byte [ecx + 1]
jne 0x4e9650
add eax, 2
add ecx, 2
test dl, dl
jne 0x4e9630
xor eax, eax
jmp 0x4e9655
sbb eax, eax
sbb eax, 0xffffffff
cmp eax, ebx
jne 0x4e966b
mov dword [esp + 0x24], 0x623960
mov dword [esi + 0x5a8], 1
mov eax, dword [esi + 0x18]
mov dword [esp + 0x30], ebx
mov dword [esp + 0x14], ebx
cmp eax, 1
jne 0x4e974b
cmp dword [esi + 0x24], ebx
jl 0x4e974b
mov eax, dword [ebp + 8]
lea edx, [esp + 0x20]
push edx
push eax
mov ecx, esi
call fcn.004e6fa0
mov edi, eax
cmp edi, ebx
je 0x4e9826
mov ecx, dword [esp + 0x20]
push ecx
push edi
call fcn.0050b790
mov ebx, eax
add esp, 8
mov dword [esp + 0x30], ebx
test ebx, ebx
je 0x4e9740
mov ecx, ebx
call fcn.0050b750
test eax, eax
je 0x4e9724
mov edx, dword [esp + 0x18]
mov esi, dword [edx + 0x20]
test esi, esi
je 0x4e96e4
mov ecx, esi
call fcn.0047ac70
push esi
call sub.MSVCR90.dll_void___cdecl_operator_delete_void__
add esp, 4
push 8
call sub.MSVCR90.dll_void____cdecl_operator_new_unsigned_int_
mov esi, eax
add esp, 4
mov dword [esp + 0x20], esi
mov byte [esp + 0x498], 1
test esi, esi
je 0x4e9711
mov ecx, ebx
call fcn.0050b750
push eax
mov ecx, esi
call fcn.0047ab60
jmp 0x4e9713
xor eax, eax
mov ecx, dword [esp + 0x18]
mov byte [esp + 0x498], 0
mov dword [ecx + 0x20], eax
mov esi, ecx
cmp dword [esp + 0x24], 0
jne 0x4e9740
mov ecx, ebx
call fcn.0050b770
mov dword [esp + 0x24], eax
mov dword [esi + 0x5b0], 1
push edi
call fcn.00497230
jmp 0x4e9821
cmp eax, 2
jne 0x4e9826
cmp dword [esi + 0x24], ebx
jl 0x4e9826
mov eax, dword [ebp + 8]
lea edx, [esp + 0x20]
push edx
push eax
mov ecx, esi
call fcn.004e6fa0
mov edi, eax
cmp edi, ebx
je 0x4e9826
mov ecx, dword [esp + 0x20]
push ecx
push edi
call fcn.00509fe0
mov ebx, eax
add esp, 8
mov dword [esp + 0x14], ebx
test ebx, ebx
je 0x4e9817
mov ecx, ebx
call fcn.005052e0
test eax, eax
je 0x4e97f7
mov edx, dword [esp + 0x18]
mov esi, dword [edx + 0x20]
test esi, esi
je 0x4e97b9
mov ecx, esi
call fcn.0047ac70
push esi
call sub.MSVCR90.dll_void___cdecl_operator_delete_void__
add esp, 4
push 8
call sub.MSVCR90.dll_void____cdecl_operator_new_unsigned_int_
mov esi, eax
add esp, 4
mov dword [esp + 0x20], esi
mov byte [esp + 0x498], 2
test esi, esi
je 0x4e97e6
mov ecx, ebx
call fcn.005052e0
push eax
mov ecx, esi
call fcn.0047ab60
jmp 0x4e97e8
xor eax, eax
mov ecx, dword [esp + 0x18]
mov byte [esp + 0x498], 0
mov dword [ecx + 0x20], eax
cmp dword [esp + 0x24], 0
jne 0x4e9817
mov ecx, ebx
call fcn.005052f0
mov edx, dword [esp + 0x18]
mov dword [esp + 0x24], eax
mov dword [edx + 0x5b0], 1
push edi
call fcn.00497230
mov esi, dword [esp + 0x1c]
add esp, 4
xor ebx, ebx
cmp dword [esp + 0x24], ebx
jne 0x4e9862
mov eax, dword [esp + 0x34]
cmp eax, ebx
je 0x4e984c
cmp dword [esi + 0x24], ebx
jge 0x4e984c
mov eax, dword [eax + 4]
mov dword [esp + 0x24], eax
mov dword [esi + 0x5a8], 1
jmp 0x4e9862
cmp dword [esi + 0x18], 5
mov dword [esp + 0x24], 0x623960
je 0x4e9862
mov dword [esp + 0x24], 0x623d60
mov ecx, dword [esp + 0x18]
lea edi, [ecx + 0xa4]
xor esi, esi
mov dword [esp + 0x20], edi
lea ebx, [ecx + 0x4a4]
mov edx, dword [esp + 0x24]
mov eax, dword [edx + esi*4]
mov dword [edi], eax
mov al, byte [ecx + 0x5b0]
mov byte [ebx + esi], al
test al, al
je 0x4e98a7
cmp dword [edi], 0
je 0x4e98a7
mov ecx, edx
mov edx, dword [ecx + esi*4]
push edx
call fcn.004973b0
mov ecx, dword [esp + 0x1c]
add esp, 4
mov dword [edi], eax
inc esi
add edi, 4
cmp esi, 0x100
jl 0x4e9878
cmp dword [ecx + 0x18], 2
jne 0x4e98fe
mov eax, dword [esp + 0x18]
cmp dword [eax + 0x24], 0
jl 0x4e98fe
mov ecx, eax
cmp dword [ecx + 0x5b0], 0
je 0x4e98fe
mov ecx, dword [esp + 0x20]
mov edx, ebx
mov eax, 0x623d60
lea esp, [esp]
cmp dword [ecx], 0
jne 0x4e98f0
mov esi, dword [eax]
test esi, esi
je 0x4e98f0
mov dword [ecx], esi
mov byte [edx], 0
add eax, 4
add ecx, 4
inc edx
cmp eax, 0x624160
jl 0x4e98e0
cmp dword [esp + 0x3c], 7
jne 0x4e99e3
mov ecx, dword [esp + 0x44]
push 0
lea edx, [esp + 0x50]
push edx
push str.Differences
call fcn.0047c300
cmp dword [esp + 0x4c], 6
jne 0x4e99da
mov eax, dword [esp + 0x18]
mov ecx, dword [esp + 0x54]
xor edi, edi
mov dword [eax + 0x5a8], 1
xor esi, esi
cmp dword [ecx + 0xc], edi
jle 0x4e99da
lea edx, [esp + 0x5c]
push edx
push edi
call fcn.0047c000
mov eax, dword [esp + 0x5c]
cmp eax, 1
jne 0x4e9962
mov esi, dword [esp + 0x64]
jmp 0x4e99c3
cmp eax, 4
jne 0x4e99a8
cmp esi, 0xff
ja 0x4e99a5
cmp byte [ebx + esi], 0
je 0x4e9989
mov eax, dword [esp + 0x18]
mov ecx, dword [eax + esi*4 + 0xa4]
push ecx
call fcn.00497230
add esp, 4
mov edx, dword [esp + 0x64]
push edx
call fcn.004973b0
mov ecx, dword [esp + 0x1c]
mov dword [ecx + esi*4 + 0xa4], eax
add esp, 4
mov byte [ebx + esi], 1
inc esi
jmp 0x4e99c3
lea ecx, [esp + 0x5c]
call fcn.0047c650
push eax
push str.Wrong_type_in_font_encoding_resource_differences__0:s_
push 0xffffffffffffffff
push 1
call fcn.00489570
add esp, 0x10
lea ecx, [esp + 0x5c]
call fcn.0047c660
mov ecx, dword [esp + 0x54]
inc edi
cmp edi, dword [ecx + 0xc]
jl 0x4e9948
lea ecx, [esp + 0x4c]
call fcn.0047c660
lea ecx, [esp + 0x3c]
call fcn.0047c660
mov ecx, dword [esp + 0x30]
xor ebx, ebx
cmp ecx, ebx
je 0x4e99fe
mov edx, dword [ecx]
mov eax, dword [edx]
push 1
call eax
mov ecx, dword [esp + 0x14]
cmp ecx, ebx
je 0x4e9a0e
mov edx, dword [ecx]
mov eax, dword [edx]
push 1
call eax
mov ecx, dword [esp + 0x20]
mov dword [esp + 0x14], ebx
xor edi, edi
mov dword [esp + 0x24], ecx
lea esp, [esp]
mov edx, dword [esp + 0x24]
mov esi, dword [edx]
test esi, esi
je 0x4e9b53
mov ecx, dword [0x63e0d8]
push esi
call fcn.004778d0
mov dword [esp + ebx*4 + 0x8c], eax
test eax, eax
jne 0x4e9b5e
mov ecx, 0x5c91e0
mov eax, esi
mov dl, byte [eax]
cmp dl, byte [ecx]
jne 0x4e9a70
test dl, dl
je 0x4e9a6c
mov dl, byte [eax + 1]
cmp dl, byte [ecx + 1]
jne 0x4e9a70
add eax, 2
add ecx, 2
test dl, dl
jne 0x4e9a50
xor eax, eax
jmp 0x4e9a75
sbb eax, eax
sbb eax, 0xffffffff
test eax, eax
je 0x4e9b5e
mov eax, esi
lea edx, [eax + 1]
mov cl, byte [eax]
inc eax
test cl, cl
jne 0x4e9a82
sub eax, edx
cmp eax, 3
jne 0x4e9aeb
movzx eax, byte [esi]
push eax
call dword [sym.imp.MSVCR90.dll_isalpha]
add esp, 4
test eax, eax
je 0x4e9aeb
movzx ecx, byte [esi + 1]
mov edi, dword [sym.imp.MSVCR90.dll_isxdigit]
push ecx
call edi
add esp, 4
test eax, eax
je 0x4e9af1
movzx edx, byte [esi + 2]
push edx
call edi
add esp, 4
test eax, eax
je 0x4e9af1
mov al, byte [esi + 1]
cmp al, 0x61
jl 0x4e9ace
cmp al, 0x66
jle 0x4e9b44
cmp al, 0x41
jl 0x4e9ad6
cmp al, 0x46
jle 0x4e9b44
mov al, byte [esi + 2]
cmp al, 0x61
jl 0x4e9ae1
cmp al, 0x66
jle 0x4e9b44
cmp al, 0x41
jl 0x4e9af1
cmp al, 0x46
jle 0x4e9b44
jmp 0x4e9af1
mov edi, dword [sym.imp.MSVCR90.dll_isxdigit]
mov eax, esi
lea edx, [eax + 1]
mov cl, byte [eax]
inc eax
test cl, cl
jne 0x4e9af6
sub eax, edx
cmp eax, 2
jne 0x4e9b4c
movzx eax, byte [esi]
push eax
call edi
add esp, 4
test eax, eax
je 0x4e9b4c
movzx ecx, byte [esi + 1]
push ecx
call edi
add esp, 4
test eax, eax
je 0x4e9b4c
mov al, byte [esi]
cmp al, 0x61
jl 0x4e9b29
cmp al, 0x66
jle 0x4e9b44
cmp al, 0x41
jl 0x4e9b31
cmp al, 0x46
jle 0x4e9b44
mov al, byte [esi + 1]
cmp al, 0x61
jl 0x4e9b3c
cmp al, 0x66
jle 0x4e9b44
cmp al, 0x41
jl 0x4e9b4c
cmp al, 0x46
jg 0x4e9b4c
mov dword [esp + 0x14], 1
mov edi, 1
jmp 0x4e9b5e
mov dword [esp + ebx*4 + 0x8c], 0
add dword [esp + 0x24], 4
inc ebx
cmp ebx, 0x100
jl 0x4e9a20
mov esi, dword [esp + 0x18]
mov dword [esi + 0x5b4], 0
test edi, edi
je 0x4e9e49
mov ecx, dword [0x63e0d8]
call fcn.00477ed0
test eax, eax
je 0x4e9e1e
mov edx, dword [esp + 0x20]
mov dword [esp + 0x24], 0
mov dword [esp + 0x30], edx
lea esp, [esp]
mov eax, dword [esp + 0x30]
mov esi, dword [eax]
test esi, esi
je 0x4e9dff
mov ecx, dword [esp + 0x24]
cmp dword [esp + ecx*4 + 0x8c], 0
jne 0x4e9dff
mov ecx, 0x5c91e0
mov eax, esi
mov dl, byte [eax]
cmp dl, byte [ecx]
jne 0x4e9bf7
test dl, dl
je 0x4e9bf3
mov dl, byte [eax + 1]
cmp dl, byte [ecx + 1]
jne 0x4e9bf7
add eax, 2
add ecx, 2
test dl, dl
jne 0x4e9bd7
xor eax, eax
jmp 0x4e9bfc
sbb eax, eax
sbb eax, 0xffffffff
test eax, eax
je 0x4e9dff
mov eax, esi
lea edx, [eax + 1]
lea esp, [esp]
mov cl, byte [eax]
inc eax
test cl, cl
jne 0x4e9c10
sub eax, edx
cmp dword [esp + 0x14], 0
mov ebx, eax
mov dword [esp + 0x38], 0xffffffff
je 0x4e9cb3
cmp ebx, 3
jne 0x4e9c7d
movzx edx, byte [esi]
push edx
call dword [sym.imp.MSVCR90.dll_isalpha]
add esp, 4
test eax, eax
je 0x4e9cef
movzx eax, byte [esi + 1]
lea edi, [esi + 1]
push eax
call dword [sym.imp.MSVCR90.dll_isxdigit]
add esp, 4
test eax, eax
je 0x4e9cef
movzx ecx, byte [esi + 2]
push ecx
call dword [sym.imp.MSVCR90.dll_isxdigit]
add esp, 4
test eax, eax
je 0x4e9cef
lea edx, [esp + 0x38]
push edx
jmp 0x4e9dcc
cmp ebx, 2
jne 0x4e9cef
movzx eax, byte [esi]
mov edi, dword [sym.imp.MSVCR90.dll_isxdigit]
push eax
call edi
add esp, 4
test eax, eax
je 0x4e9cef
movzx ecx, byte [esi + 1]
push ecx
call edi
add esp, 4
test eax, eax
je 0x4e9cef
lea edx, [esp + 0x38]
push edx
push 0x5c18a0
push esi
jmp 0x4e9dd2
lea eax, [ebx - 2]
cmp eax, 2
ja 0x4e9cef
movzx ecx, byte [esi]
mov edi, dword [sym.imp.MSVCR90.dll_isdigit]
push ecx
call edi
add esp, 4
test eax, eax
je 0x4e9cef
movzx edx, byte [esi + 1]
push edx
call edi
add esp, 4
test eax, eax
je 0x4e9cef
push esi
call dword [sym.imp.MSVCR90.dll_atoi]
add esp, 4
mov dword [esp + 0x38], eax
jmp 0x4e9ddb
lea eax, [ebx - 3]
cmp eax, 2
ja 0x4e9d31
movzx ecx, byte [esi + 1]
lea edi, [esi + 1]
push ecx
call dword [sym.imp.MSVCR90.dll_isdigit]
add esp, 4
test eax, eax
je 0x4e9d31
movzx edx, byte [esi + 2]
push edx
call dword [sym.imp.MSVCR90.dll_isdigit]
add esp, 4
test eax, eax
je 0x4e9d31
push edi
call dword [sym.imp.MSVCR90.dll_atoi]
add esp, 4
mov dword [esp + 0x38], eax
jmp 0x4e9ddb
lea eax, [ebx - 4]
cmp eax, 2
ja 0x4e9d70
movzx ecx, byte [esi + 2]
lea edi, [esi + 2]
push ecx
call dword [sym.imp.MSVCR90.dll_isdigit]
add esp, 4
test eax, eax
je 0x4e9d70
movzx edx, byte [esi + 3]
push edx
call dword [sym.imp.MSVCR90.dll_isdigit]
add esp, 4
test eax, eax
je 0x4e9d70
push edi
call dword [sym.imp.MSVCR90.dll_atoi]
add esp, 4
mov dword [esp + 0x38], eax
jmp 0x4e9ddb
cmp ebx, 7
jl 0x4e9ddb
cmp byte [esi], 0x75
jne 0x4e9ddb
cmp byte [esi + 1], 0x6e
jne 0x4e9ddb
cmp byte [esi + 2], 0x69
jne 0x4e9ddb
movzx eax, byte [esi + 3]
mov ebx, dword [sym.imp.MSVCR90.dll_isxdigit]
lea edi, [esi + 3]
push eax
call ebx
add esp, 4
test eax, eax
je 0x4e9ddb
movzx ecx, byte [esi + 4]
push ecx
call ebx
add esp, 4
test eax, eax
je 0x4e9ddb
movzx edx, byte [esi + 5]
push edx
call ebx
add esp, 4
test eax, eax
je 0x4e9ddb
movzx eax, byte [esi + 6]
push eax
call ebx
add esp, 4
test eax, eax
je 0x4e9ddb
lea ecx, [esp + 0x38]
push ecx
push 0x5c18a0
push edi
call dword [sym.imp.MSVCR90.dll_sscanf]
add esp, 0xc
mov eax, dword [esp + 0x38]
cmp eax, 0xffff
ja 0x4e9dff
mov edx, dword [esp + 0x24]
mov dword [esp + edx*4 + 0x8c], eax
mov eax, dword [esp + 0x18]
mov dword [eax + 0x5b4], 1
mov eax, dword [esp + 0x24]
add dword [esp + 0x30], 4
inc eax
cmp eax, 0x100
mov dword [esp + 0x24], eax
jl 0x4e9bb0
mov esi, dword [esp + 0x18]
jmp 0x4e9e49
mov ecx, dword [0x63e0d8]
call fcn.00477ee0
test eax, eax
je 0x4e9e49
xor eax, eax
nop
cmp dword [esp + eax*4 + 0x8c], 0
jne 0x4e9e41
mov dword [esp + eax*4 + 0x8c], eax
inc eax
cmp eax, 0x100
jl 0x4e9e30
lea ecx, [esp + 0x8c]
push ecx
call fcn.004acb10
mov edx, dword [ebp + 0x28]
add esp, 4
push eax
push 8
push edx
mov ecx, esi
mov dword [esi + 0x5a4], eax
call fcn.004e6d10
mov eax, dword [esi + 0x14]
test eax, eax
je 0x4e9f2c
mov ecx, dword [0x63e0d8]
push eax
call fcn.004780b0
mov ebx, eax
test ebx, ebx
je 0x4e9f2c
xor eax, eax
mov ecx, 0x100
lea edi, [esp + 0x8c]
rep stosd dword es:[edi], eax
lea eax, [esp + 0x8c]
push eax
call fcn.004acb10
mov edi, dword [esp + 0x1c]
add esp, 4
mov dword [esp + 0x14], eax
xor esi, esi
push 8
lea ecx, [esp + 0x70]
push ecx
mov ecx, dword [edi + 0x5a4]
push esi
call fcn.004ac430
cmp eax, 1
jl 0x4e9ef8
mov eax, dword [esp + 0x6c]
push 8
lea edx, [esp + 0x70]
push edx
push eax
mov ecx, ebx
call fcn.004ac430
cmp eax, 1
jl 0x4e9ef8
push eax
lea ecx, [esp + 0x70]
push ecx
mov ecx, dword [esp + 0x1c]
push esi
call fcn.004ac360
inc esi
cmp esi, 0x100
jl 0x4e9eb8
mov ecx, ebx
call fcn.004ad820
mov esi, dword [edi + 0x5a4]
test esi, esi
je 0x4e9f22
mov ecx, esi
call fcn.004ac310
push esi
call sub.MSVCR90.dll_void___cdecl_operator_delete_void__
add esp, 4
mov edx, dword [esp + 0x14]
mov dword [edi + 0x5a4], edx
mov edx, dword [esp + 0x18]
fld qword [0x5c4c98]
lea ebx, [edx + 0x5b8]
mov eax, ebx
mov ecx, 0x100
fld qword [edx + 0x80]
add eax, 8
sub ecx, 1
fmul st(1)
fstp qword [eax - 8]
jne 0x4e9f43
mov edi, dword [ebp + 0x28]
fstp st(0)
push ecx
lea eax, [esp + 0x40]
push eax
push str.FirstChar
mov ecx, edi
call fcn.0047c300
mov esi, dword [esp + 0x3c]
dec esi
neg esi
sbb esi, esi
not esi
and esi, dword [esp + 0x44]
lea ecx, [esp + 0x3c]
call fcn.0047c660
test esi, esi
jl 0x4e9f91
cmp esi, 0xff
jle 0x4e9f93
xor esi, esi
push 0
lea ecx, [esp + 0x40]
push ecx
push str.LastChar
mov ecx, edi
call fcn.0047c300
cmp dword [esp + 0x3c], 1
mov edi, dword [esp + 0x44]
je 0x4e9fb6
mov edi, 0xff
lea ecx, [esp + 0x3c]
call fcn.0047c660
test edi, edi
jl 0x4e9fcb
cmp edi, 0xff
jle 0x4e9fd0
mov edi, 0xff
mov eax, dword [esp + 0x18]
cmp dword [eax + 0x18], 4
jne 0x4e9fe2
fld qword [eax + 0x30]
add eax, 0x30
jmp 0x4e9fe8
fld qword [0x5c4c98]
mov ecx, dword [ebp + 0x28]
fstp qword [esp + 0x24]
push 0
lea edx, [esp + 0x40]
push edx
push 0x5c91c0
call fcn.0047c300
cmp dword [esp + 0x3c], 6
jne 0x4ea0aa
mov eax, dword [esp + 0x18]
or dword [eax + 0x1c], 1
mov eax, dword [esp + 0x44]
mov eax, dword [eax + 0xc]
mov ecx, edi
sub ecx, esi
inc ecx
cmp eax, ecx
jge 0x4ea027
lea edi, [eax + esi - 1]
cmp esi, edi
jg 0x4ea1ec
mov edx, dword [esp + 0x18]
lea eax, [edx + esi*8 + 0x5b8]
sub edi, esi
xor ebx, ebx
mov dword [esp + 0x30], eax
mov dword [esp + 0x14], eax
inc edi
mov esi, eax
mov ecx, dword [esp + 0x44]
lea eax, [esp + 0x4c]
push eax
push ebx
call fcn.0047c000
mov eax, dword [esp + 0x4c]
cmp eax, 1
je 0x4ea0a4
cmp eax, 2
jne 0x4ea08d
fld qword [esp + 0x54]
fmul qword [esp + 0x24]
mov ecx, dword [esp + 0x30]
fst qword [esi]
fsub qword [ecx]
fabs
fcomp qword [0x5c91b8]
fnstsw ax
test ah, 0x41
jne 0x4ea08d
mov eax, dword [esp + 0x18]
and dword [eax + 0x1c], 0xfffffffe
lea ecx, [esp + 0x4c]
call fcn.0047c660
add esi, 8
inc ebx
sub edi, 1
jne 0x4ea049
jmp 0x4ea1ec
fild dword [esp + 0x54]
jmp 0x4ea06a
mov eax, dword [esp + 0x34]
test eax, eax
je 0x4ea135
mov ecx, dword [eax + 0x14]
lea edx, [esp + 0x1c]
push edx
push 0x5b5960
call fcn.004d7690
test eax, eax
je 0x4ea0e9
movzx eax, word [esp + 0x1c]
mov ecx, dword [esp + 0x18]
mov dword [esp + 0x14], eax
fild dword [esp + 0x14]
fmul qword [0x5c4c98]
fstp qword [ecx + 0x6b8]
mov esi, dword [esp + 0x20]
mov edi, ebx
mov ebx, 0x100
mov eax, dword [esi]
test eax, eax
je 0x4ea125
lea edx, [esp + 0x1c]
push edx
push eax
mov eax, dword [esp + 0x3c]
mov ecx, dword [eax + 0x14]
call fcn.004d7690
test eax, eax
je 0x4ea125
movzx ecx, word [esp + 0x1c]
mov dword [esp + 0x14], ecx
fild dword [esp + 0x14]
fmul qword [0x5c4c98]
fstp qword [edi]
add esi, 4
add edi, 8
sub ebx, 1
jne 0x4ea0f4
jmp 0x4ea1ec
mov esi, dword [esp + 0x18]
mov ecx, dword [esi + 0x1c]
test cl, 1
je 0x4ea145
xor eax, eax
jmp 0x4ea157
mov eax, 0
test cl, 2
setne al
lea eax, [eax*4 + 4]
test ecx, 0x40000
je 0x4ea162
add eax, 2
test cl, 0x40
je 0x4ea168
inc eax
mov eax, dword [eax*4 + 0x631278]
mov ecx, dword [eax + 0x14]
lea edx, [esp + 0x1c]
push edx
push 0x5b5960
mov dword [esp + 0x3c], eax
call fcn.004d7690
test eax, eax
je 0x4ea1a2
movzx eax, word [esp + 0x1c]
mov dword [esp + 0x14], eax
fild dword [esp + 0x14]
fmul qword [0x5c4c98]
fstp qword [esi + 0x6b8]
mov esi, dword [esp + 0x20]
mov edi, ebx
mov ebx, 0x100
lea ecx, [ecx]
mov eax, dword [esi]
test eax, eax
je 0x4ea1e1
mov edx, dword [esp + 0x34]
lea ecx, [esp + 0x1c]
push ecx
mov ecx, dword [edx + 0x14]
push eax
call fcn.004d7690
test eax, eax
je 0x4ea1e1
movzx eax, word [esp + 0x1c]
mov dword [esp + 0x14], eax
fild dword [esp + 0x14]
fmul qword [0x5c4c98]
fstp qword [edi]
add esi, 4
add edi, 8
sub ebx, 1
jne 0x4ea1b0
lea ecx, [esp + 0x3c]
call fcn.0047c660
mov eax, dword [esp + 0x18]
mov dword [eax + 0x9c], 1
mov ecx, dword [esp + 0x490]
mov dword fs:[0], ecx
pop ecx
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret 0x24