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

Disassembly:
push 0xffffffffffffffff
push 0x717d55
mov eax, dword fs:[0]
push eax
mov dword fs:[0], esp
sub esp, 0x478
mov eax, dword [esp + 0x4a4]
mov edx, dword [esp + 0x49c]
push ebx
push ebp
push esi
mov esi, ecx
mov ecx, dword [esp + 0x4ac]
push edi
push eax
mov eax, dword [esp + 0x4ac]
push ecx
mov ecx, dword [esp + 0x4ac]
push edx
mov edx, dword [esp + 0x4ac]
push eax
mov eax, dword [esp + 0x4ac]
push ecx
push edx
push eax
mov ecx, esi
mov dword [esp + 0x34], esi
call fcn.0062fc10
mov eax, 0xd
xor ecx, ecx
mov dword [esi + 0xdb8], eax
mov dword [esi + 0xdc8], eax
mov dword [esi], 0x72b550
mov dword [esi + 0x5a4], ecx
mov dword [esi + 0xa0], ecx
mov esi, dword [esi + 0x14]
cmp esi, ecx
mov dword [esp + 0x490], ecx
mov dword [esp + 0x24], eax
mov dword [esp + 0x34], eax
mov dword [esp + 0x58], eax
je 0x630be4
push 8
call fcn.0044f661
add esp, 4
mov dword [esp + 0x10], eax
test eax, eax
mov byte [esp + 0x490], 1
je 0x630b4d
push esi
mov ecx, eax
call fcn.005df6b0
mov edi, eax
jmp 0x630b4f
xor edi, edi
mov eax, dword [edi]
xor esi, esi
test eax, eax
mov byte [esp + 0x490], 0
jle 0x630b79
mov ecx, dword [edi + 4]
cmp byte [esi + ecx], 0x20
jne 0x630b74
push 1
push esi
mov ecx, edi
call fcn.005e09e0
jmp 0x630b75
inc esi
cmp esi, dword [edi]
jl 0x630b5f
xor ebp, ebp
mov ebx, 0x41
lea eax, [ebx + ebp]
mov ecx, edi
cdq
sub eax, edx
mov esi, eax
sar esi, 1
mov edx, dword [esi*8 + 0x7ba4b8]
push edx
call fcn.005e0c50
test eax, eax
jl 0x630ba1
mov ebp, esi
jmp 0x630ba3
mov ebx, esi
mov eax, ebx
sub eax, ebp
cmp eax, 1
jg 0x630b80
mov ecx, dword [ebp*8 + 0x7ba4b8]
lea esi, [ebp*8 + 0x7ba4b8]
push ecx
mov ecx, edi
call fcn.005e0c50
test eax, eax
jne 0x630bd0
mov edx, dword [esp + 0x18]
mov dword [edx + 0xa0], esi
test edi, edi
je 0x630be4
mov ecx, edi
call fcn.005df860
push edi
call fcn.0044f656
add esp, 4
mov ebx, dword [esp + 0x18]
xor ebp, ebp
xor esi, esi
mov eax, dword [ebx + 0xa0]
mov dword [esp + 0x48], esi
cmp eax, ebp
je 0x630c5d
mov eax, dword [eax + 4]
mov dword [esp + 0x14], ebp
mov dword [esp + 0x10], eax
mov edi, 0x7a8620
mov esi, dword [edi]
mov eax, dword [esp + 0x10]
mov dl, byte [eax]
mov cl, dl
cmp dl, byte [esi]
jne 0x630c36
test cl, cl
je 0x630c30
mov dl, byte [eax + 1]
mov cl, dl
cmp dl, byte [esi + 1]
jne 0x630c36
add eax, 2
add esi, 2
test cl, cl
jne 0x630c10
xor ebp, ebp
xor eax, eax
jmp 0x630c3d
sbb eax, eax
sbb eax, 0xffffffff
xor ebp, ebp
cmp eax, ebp
je 0x630ddc
mov edx, dword [esp + 0x14]
add edi, 0x1c
inc edx
cmp edi, 0x7a87a8
mov dword [esp + 0x14], edx
jl 0x630c0a
mov esi, dword [esp + 0x48]
lea edi, [ebx + 0x60]
mov dword [ebx + 0x80], ebp
mov dword [ebx + 0x88], ebp
mov dword [ebx + 0x90], ebp
mov dword [ebx + 0x78], ebp
mov dword [ebx + 0x70], ebp
mov dword [ebx + 0x68], ebp
mov dword [edi], ebp
mov dword [ebx + 0x84], ebp
mov dword [ebx + 0x8c], 0x3fe80000
mov dword [ebx + 0x94], 0xbfd00000
mov dword [ebx + 0x7c], ebp
mov dword [ebx + 0x74], ebp
mov dword [ebx + 0x6c], ebp
mov dword [edi + 4], ebp
mov eax, dword [esp + 0x4b8]
mov ecx, dword [esp + 0x498]
push eax
push ecx
mov ecx, ebx
call fcn.00630500
cmp esi, ebp
je 0x630d45
movsx edx, word [esi + 0xa]
mov dword [esp + 0x10], edx
fild dword [esp + 0x10]
fmul qword [0x71a438]
fstp qword [ebx + 0x88]
movsx eax, word [esi + 0xc]
mov dword [esp + 0x10], eax
fild dword [esp + 0x10]
fmul qword [0x71a438]
fstp qword [ebx + 0x90]
movsx ecx, word [esi + 0xe]
mov dword [esp + 0x10], ecx
fild dword [esp + 0x10]
fmul qword [0x71a438]
fstp qword [edi]
movsx edx, word [esi + 0x10]
mov dword [esp + 0x10], edx
fild dword [esp + 0x10]
fmul qword [0x71a438]
fstp qword [ebx + 0x68]
movsx eax, word [esi + 0x12]
mov dword [esp + 0x10], eax
fild dword [esp + 0x10]
fmul qword [0x71a438]
fstp qword [ebx + 0x70]
movsx ecx, word [esi + 0x14]
mov dword [esp + 0x10], ecx
fild dword [esp + 0x10]
fmul qword [0x71a438]
fstp qword [ebx + 0x78]
mov ecx, dword [esp + 0x4b8]
lea edx, [esp + 0x24]
push ebp
mov eax, 0x3ff00000
push edx
mov dword [ebx + 0x48], ebp
mov dword [ebx + 0x30], ebp
mov dword [ebx + 0x58], ebp
mov dword [ebx + 0x50], ebp
mov dword [ebx + 0x40], ebp
mov dword [ebx + 0x38], ebp
push str.FontMatrix
mov dword [ebx + 0x4c], eax
mov dword [ebx + 0x34], eax
mov dword [ebx + 0x5c], ebp
mov dword [ebx + 0x54], ebp
mov dword [ebx + 0x44], ebp
mov dword [ebx + 0x3c], ebp
call fcn.005f4430
mov edx, dword [eax]
xor ecx, ecx
cmp edx, 6
sete cl
mov eax, ecx
cmp eax, ebp
je 0x630eb8
xor esi, esi
lea ebp, [ebx + 0x30]
mov ecx, dword [esp + 0x2c]
cmp esi, dword [ecx + 0xc]
jge 0x630eb6
lea edx, [esp + 0x34]
push 0
push edx
push esi
call fcn.006037c0
mov eax, dword [eax]
cmp eax, 1
je 0x630dc8
cmp eax, 2
jne 0x630ea0
cmp dword [esp + 0x34], 1
jne 0x630e99
fild dword [esp + 0x3c]
jmp 0x630e9d
mov eax, dword [esp + 0x14]
lea ecx, [eax*8]
sub ecx, eax
lea esi, [ecx*4 + 0x7a8620]
cmp esi, ebp
mov dword [esp + 0x48], esi
je 0x630c5d
movsx edx, word [esi + 8]
mov dword [esp + 0x10], edx
lea edi, [ebx + 0x60]
fild dword [esp + 0x10]
fstp qword [ebx + 0x80]
movsx eax, word [esi + 0xa]
mov dword [esp + 0x10], eax
fild dword [esp + 0x10]
fmul qword [0x71a438]
fstp qword [ebx + 0x88]
movsx ecx, word [esi + 0xc]
mov dword [esp + 0x10], ecx
fild dword [esp + 0x10]
fmul qword [0x71a438]
fstp qword [ebx + 0x90]
movsx edx, word [esi + 0xe]
mov dword [esp + 0x10], edx
fild dword [esp + 0x10]
fmul qword [0x71a438]
fstp qword [edi]
movsx eax, word [esi + 0x10]
mov dword [esp + 0x10], eax
fild dword [esp + 0x10]
fmul qword [0x71a438]
fstp qword [ebx + 0x68]
movsx ecx, word [esi + 0x12]
mov dword [esp + 0x10], ecx
fild dword [esp + 0x10]
fmul qword [0x71a438]
fstp qword [ebx + 0x70]
movsx edx, word [esi + 0x14]
mov dword [esp + 0x10], edx
fild dword [esp + 0x10]
fmul qword [0x71a438]
fstp qword [ebx + 0x78]
jmp 0x630ca3
fld qword [esp + 0x3c]
fstp qword [ebp]
lea ecx, [esp + 0x34]
call fcn.005f2e10
inc esi
add ebp, 8
cmp esi, 6
jl 0x630d9e
xor ebp, ebp
lea ecx, [esp + 0x24]
call fcn.005f2e10
cmp dword [ebx + 0x18], 4
jne 0x630fb1
mov ecx, dword [esp + 0x4b8]
lea eax, [esp + 0x24]
push ebp
push eax
push str.FontBBox
call fcn.005f4430
mov edx, dword [eax]
xor ecx, ecx
cmp edx, 6
sete cl
mov eax, ecx
cmp eax, ebp
je 0x630f3a
xor esi, esi
mov ecx, dword [esp + 0x2c]
cmp esi, dword [ecx + 0xc]
jge 0x630f3a
lea edx, [esp + 0x34]
push ebp
push edx
push esi
call fcn.006037c0
mov eax, dword [eax]
cmp eax, 1
je 0x630f15
cmp eax, 2
jne 0x630f28
cmp dword [esp + 0x34], 1
jne 0x630f22
fild dword [esp + 0x3c]
jmp 0x630f26
fld qword [esp + 0x3c]
fstp qword [edi]
lea ecx, [esp + 0x34]
call fcn.005f2e10
inc esi
add edi, 8
cmp esi, 4
jl 0x630ef4
lea ecx, [esp + 0x24]
call fcn.005f2e10
mov edi, dword [esp + 0x4b8]
lea esi, [ebx + 0xdb8]
push ebp
push esi
push str.CharProcs
mov ecx, edi
call fcn.005f4430
mov edx, dword [eax]
xor ecx, ecx
cmp edx, 7
sete cl
mov eax, ecx
cmp eax, ebp
jne 0x630f86
push str.Missing_or_invalid_CharProcs_dictionary_in_Type_3_font
push 0xffffffffffffffff
push 1
call fcn.006033f0
add esp, 0xc
mov ecx, esi
call fcn.005f2e10
lea esi, [ebx + 0xdc8]
push ebp
push esi
push str.Resources
mov ecx, edi
call fcn.005f4430
mov edi, dword [eax]
xor edx, edx
cmp edi, 7
sete dl
mov eax, edx
cmp eax, ebp
jne 0x630fb1
mov ecx, esi
call fcn.005f2e10
mov ecx, dword [esp + 0x4b8]
lea eax, [esp + 0x24]
push ebp
push eax
push str.Encoding
mov dword [ebx + 0x5a8], ebp
mov dword [ebx + 0x5ac], ebp
mov dword [esp + 0x20], ebp
mov dword [ebx + 0x5b0], ebp
call fcn.005f4430
mov eax, dword [esp + 0x24]
cmp eax, 7
jne 0x63111d
lea ecx, [esp + 0x34]
push ebp
push ecx
mov ecx, dword [esp + 0x34]
push str.BaseEncoding
call fcn.005f4430
cmp dword [esp + 0x34], 4
jne 0x63110f
mov edi, dword [esp + 0x3c]
mov esi, str.MacRomanEncoding
mov ecx, edi
mov al, byte [ecx]
mov dl, al
cmp al, byte [esi]
jne 0x63103b
test dl, dl
je 0x631035
mov al, byte [ecx + 1]
mov dl, al
cmp al, byte [esi + 1]
jne 0x63103b
add ecx, 2
add esi, 2
test dl, dl
jne 0x631015
xor ebp, ebp
xor ecx, ecx
jmp 0x631042
sbb ecx, ecx
sbb ecx, 0xffffffff
xor ebp, ebp
cmp ecx, ebp
jne 0x63106d
mov eax, 1
lea ecx, [esp + 0x34]
mov dword [ebx + 0x5a8], eax
mov dword [ebx + 0x5ac], eax
mov dword [esp + 0x14], 0x79a1d8
call fcn.005f2e10
jmp 0x631216
mov esi, str.MacExpertEncoding
mov ecx, edi
mov al, byte [ecx]
mov dl, al
cmp al, byte [esi]
jne 0x63109a
test dl, dl
je 0x631094
mov al, byte [ecx + 1]
mov dl, al
cmp al, byte [esi + 1]
jne 0x63109a
add ecx, 2
add esi, 2
test dl, dl
jne 0x631074
xor ebp, ebp
xor ecx, ecx
jmp 0x6310a1
sbb ecx, ecx
sbb ecx, 0xffffffff
xor ebp, ebp
cmp ecx, ebp
jne 0x6310c5
lea ecx, [esp + 0x34]
mov dword [ebx + 0x5a8], 1
mov dword [esp + 0x14], 0x79a5d8
call fcn.005f2e10
jmp 0x631216
mov esi, str.WinAnsiEncoding
mov eax, edi
mov dl, byte [eax]
mov cl, dl
cmp dl, byte [esi]
jne 0x6310f2
test cl, cl
je 0x6310ec
mov dl, byte [eax + 1]
mov cl, dl
cmp dl, byte [esi + 1]
jne 0x6310f2
add eax, 2
add esi, 2
test cl, cl
jne 0x6310cc
xor ebp, ebp
xor eax, eax
jmp 0x6310f9
sbb eax, eax
sbb eax, 0xffffffff
xor ebp, ebp
cmp eax, ebp
jne 0x63110f
mov dword [ebx + 0x5a8], 1
mov dword [esp + 0x14], 0x79a9d8
lea ecx, [esp + 0x34]
call fcn.005f2e10
jmp 0x631216
cmp eax, 4
jne 0x631216
mov edi, dword [esp + 0x2c]
mov esi, str.MacRomanEncoding
mov eax, edi
mov dl, byte [eax]
mov cl, dl
cmp dl, byte [esi]
jne 0x631157
test cl, cl
je 0x631151
mov dl, byte [eax + 1]
mov cl, dl
cmp dl, byte [esi + 1]
jne 0x631157
add eax, 2
add esi, 2
test cl, cl
jne 0x631131
xor ebp, ebp
xor eax, eax
jmp 0x63115e
sbb eax, eax
sbb eax, 0xffffffff
xor ebp, ebp
cmp eax, ebp
jne 0x631180
mov eax, 1
mov dword [esp + 0x14], 0x79a1d8
mov dword [ebx + 0x5a8], eax
mov dword [ebx + 0x5ac], eax
jmp 0x631216
mov esi, str.MacExpertEncoding
mov eax, edi
mov dl, byte [eax]
mov cl, dl
cmp dl, byte [esi]
jne 0x6311ad
test cl, cl
je 0x6311a7
mov dl, byte [eax + 1]
mov cl, dl
cmp dl, byte [esi + 1]
jne 0x6311ad
add eax, 2
add esi, 2
test cl, cl
jne 0x631187
xor ebp, ebp
xor eax, eax
jmp 0x6311b4
sbb eax, eax
sbb eax, 0xffffffff
xor ebp, ebp
cmp eax, ebp
jne 0x6311cc
mov dword [ebx + 0x5a8], 1
mov dword [esp + 0x14], 0x79a5d8
jmp 0x631216
mov esi, str.WinAnsiEncoding
mov eax, edi
mov dl, byte [eax]
mov cl, dl
cmp dl, byte [esi]
jne 0x6311f9
test cl, cl
je 0x6311f3
mov dl, byte [eax + 1]
mov cl, dl
cmp dl, byte [esi + 1]
jne 0x6311f9
add eax, 2
add esi, 2
test cl, cl
jne 0x6311d3
xor ebp, ebp
xor eax, eax
jmp 0x631200
sbb eax, eax
sbb eax, 0xffffffff
xor ebp, ebp
cmp eax, ebp
jne 0x631216
mov dword [ebx + 0x5a8], 1
mov dword [esp + 0x14], 0x79a9d8
mov eax, dword [ebx + 0x18]
mov dword [esp + 0x44], ebp
cmp eax, 1
mov dword [esp + 0x10], ebp
jne 0x6312e1
cmp dword [ebx + 0x24], ebp
jl 0x6312e1
mov ecx, dword [esp + 0x498]
lea eax, [esp + 0x4c]
push eax
push ecx
mov ecx, ebx
call fcn.00630980
mov ebp, eax
test ebp, ebp
je 0x6313ad
mov edx, dword [esp + 0x4c]
push edx
push ebp
call fcn.00636180
mov edi, eax
add esp, 8
test edi, edi
mov dword [esp + 0x44], edi
je 0x6313a4
mov ecx, edi
call fcn.00636310
test eax, eax
je 0x6312c9
mov esi, dword [ebx + 0x20]
test esi, esi
je 0x63128f
mov ecx, esi
call fcn.005df860
push esi
call fcn.0044f656
add esp, 4
push 8
call fcn.0044f661
mov esi, eax
add esp, 4
mov dword [esp + 0x50], esi
test esi, esi
mov byte [esp + 0x490], 2
je 0x6312bc
mov ecx, edi
call fcn.00636310
push eax
mov ecx, esi
call fcn.005df180
jmp 0x6312be
xor eax, eax
mov byte [esp + 0x490], 0
mov dword [ebx + 0x20], eax
mov eax, dword [esp + 0x14]
test eax, eax
jne 0x6313a4
mov ecx, edi
call fcn.00636330
jmp 0x631396
cmp eax, 2
jne 0x6313ad
mov eax, dword [ebx + 0x24]
test eax, eax
jl 0x6313ad
mov ecx, dword [esp + 0x498]
lea eax, [esp + 0x4c]
push eax
push ecx
mov ecx, ebx
call fcn.00630980
mov ebp, eax
test ebp, ebp
je 0x6313ad
mov edx, dword [esp + 0x4c]
push edx
push ebp
call fcn.00634400
mov edi, eax
add esp, 8
test edi, edi
mov dword [esp + 0x10], edi
je 0x6313a4
mov ecx, edi
call fcn.006345e0
test eax, eax
je 0x631387
mov esi, dword [ebx + 0x20]
test esi, esi
je 0x63134d
mov ecx, esi
call fcn.005df860
push esi
call fcn.0044f656
add esp, 4
push 8
call fcn.0044f661
mov esi, eax
add esp, 4
mov dword [esp + 0x50], esi
test esi, esi
mov byte [esp + 0x490], 3
je 0x63137a
mov ecx, edi
call fcn.006345e0
push eax
mov ecx, esi
call fcn.005df180
jmp 0x63137c
xor eax, eax
mov byte [esp + 0x490], 0
mov dword [ebx + 0x20], eax
mov eax, dword [esp + 0x14]
test eax, eax
jne 0x6313a4
mov ecx, edi
call fcn.006345f0
mov dword [esp + 0x14], eax
mov dword [ebx + 0x5b0], 1
push ebp
call fcn.005f6fd0
add esp, 4
mov eax, dword [esp + 0x14]
test eax, eax
jne 0x6313ef
mov eax, dword [esp + 0x48]
test eax, eax
je 0x6313d7
mov ecx, dword [ebx + 0x24]
test ecx, ecx
jge 0x6313d7
mov eax, dword [eax + 4]
mov dword [ebx + 0x5a8], 1
mov dword [esp + 0x14], eax
jmp 0x6313ef
mov eax, dword [ebx + 0x18]
mov dword [esp + 0x14], 0x79a9d8
cmp eax, 5
je 0x6313ef
mov dword [esp + 0x14], 0x79add8
mov ecx, dword [esp + 0x18]
mov edi, dword [esp + 0x14]
xor ebp, ebp
lea esi, [ecx + 0xa4]
lea ebx, [ecx + 0x4a4]
mov edx, dword [edi]
mov dword [esi], edx
mov al, byte [ecx + 0x5b0]
test al, al
mov byte [ebx + ebp], al
je 0x63142c
cmp dword [esi], 0
je 0x63142c
mov eax, dword [edi]
push eax
call fcn.005f7000
mov ecx, dword [esp + 0x1c]
add esp, 4
mov dword [esi], eax
inc ebp
add edi, 4
add esi, 4
cmp ebp, 0x100
jl 0x631405
cmp dword [ecx + 0x18], 2
jne 0x63147d
mov eax, dword [ecx + 0x24]
test eax, eax
jl 0x63147d
mov eax, dword [ecx + 0x5b0]
test eax, eax
je 0x63147d
mov esi, ebx
mov eax, 0x79add8
add ecx, 0xa4
cmp dword [ecx], 0
jne 0x63146f
mov edx, dword [eax]
test edx, edx
je 0x63146f
mov dword [ecx], edx
mov byte [esi], 0
add eax, 4
add ecx, 4
inc esi
cmp eax, 0x79b1d8
jl 0x63145f
cmp dword [esp + 0x24], 7
jne 0x631566
lea ecx, [esp + 0x34]
push 0
push ecx
mov ecx, dword [esp + 0x34]
push str.Differences
call fcn.005f4430
mov eax, dword [esp + 0x34]
mov ebp, dword [esp + 0x18]
cmp eax, 6
jne 0x63155b
mov ecx, dword [esp + 0x3c]
mov dword [ebp + 0x5a8], 1
xor esi, esi
xor edi, edi
mov eax, dword [ecx + 0xc]
test eax, eax
jle 0x63155b
lea edx, [esp + 0x58]
push 0
push edx
push edi
call fcn.006037c0
mov eax, dword [esp + 0x58]
cmp eax, 1
jne 0x6314e7
mov esi, dword [esp + 0x60]
jmp 0x631544
cmp eax, 4
jne 0x631529
test esi, esi
jl 0x631526
cmp esi, 0x100
jge 0x631526
cmp byte [ebx + esi], 0
je 0x63150e
mov eax, dword [ebp + esi*4 + 0xa4]
push eax
call fcn.005f6fd0
add esp, 4
mov ecx, dword [esp + 0x60]
push ecx
call fcn.005f7000
mov dword [ebp + esi*4 + 0xa4], eax
add esp, 4
mov byte [ebx + esi], 1
inc esi
jmp 0x631544
lea ecx, [esp + 0x58]
call fcn.005f2f00
push eax
push str.Wrong_type_in_font_encoding_resource_differences__0:s_
push 0xffffffffffffffff
push 1
call fcn.006033f0
add esp, 0x10
lea ecx, [esp + 0x58]
call fcn.005f2e10
mov ecx, dword [esp + 0x3c]
inc edi
cmp edi, dword [ecx + 0xc]
jl 0x6314cb
lea ecx, [esp + 0x34]
call fcn.005f2e10
jmp 0x63156a
mov ebp, dword [esp + 0x18]
lea ecx, [esp + 0x24]
call fcn.005f2e10
mov ecx, dword [esp + 0x44]
xor edi, edi
cmp ecx, edi
je 0x631583
mov edx, dword [ecx]
push 1
call dword [edx]
mov ecx, dword [esp + 0x10]
cmp ecx, edi
je 0x631591
mov eax, dword [ecx]
push 1
call dword [eax]
lea eax, [ebp + 0xa4]
mov dword [esp + 0x44], edi
lea ebx, [esp + 0x88]
mov dword [esp + 0x14], eax
mov dword [esp + 0x10], 0x100
mov ecx, dword [esp + 0x14]
mov ebp, dword [ecx]
test ebp, ebp
je 0x6316dd
mov ecx, dword [0x7dcc30]
push ebp
call fcn.005d6c70
test eax, eax
mov dword [ebx], eax
jne 0x6316e3
mov esi, str..notdef
mov eax, ebp
mov dl, byte [eax]
mov cl, dl
cmp dl, byte [esi]
jne 0x6315fd
test cl, cl
je 0x6315f9
mov dl, byte [eax + 1]
mov cl, dl
cmp dl, byte [esi + 1]
jne 0x6315fd
add eax, 2
add esi, 2
test cl, cl
jne 0x6315d9
xor eax, eax
jmp 0x631602
sbb eax, eax
sbb eax, 0xffffffff
test eax, eax
je 0x6316e3
mov edi, ebp
or ecx, 0xffffffff
xor eax, eax
repne scasb al, byte es:[edi]
not ecx
dec ecx
cmp ecx, 3
jne 0x631675
mov al, byte [ebp]
push eax
call fcn.00451015
add esp, 4
test eax, eax
je 0x631675
xor ecx, ecx
mov cl, byte [ebp + 1]
push ecx
call fcn.00451093
add esp, 4
test eax, eax
je 0x631675
xor edx, edx
mov dl, byte [ebp + 2]
push edx
call fcn.00451093
add esp, 4
test eax, eax
je 0x631675
mov al, byte [ebp + 1]
cmp al, 0x61
jl 0x63165a
cmp al, 0x66
jle 0x6316ce
cmp al, 0x41
jl 0x631662
cmp al, 0x46
jle 0x6316ce
mov al, byte [ebp + 2]
cmp al, 0x61
jl 0x63166d
cmp al, 0x66
jle 0x6316ce
cmp al, 0x41
jl 0x631675
cmp al, 0x46
jle 0x6316ce
mov edi, ebp
or ecx, 0xffffffff
xor eax, eax
repne scasb al, byte es:[edi]
not ecx
dec ecx
cmp ecx, 2
jne 0x6316d6
mov al, byte [ebp]
push eax
call fcn.00451093
add esp, 4
test eax, eax
je 0x6316d6
xor ecx, ecx
mov cl, byte [ebp + 1]
push ecx
call fcn.00451093
add esp, 4
test eax, eax
je 0x6316d6
mov al, byte [ebp]
cmp al, 0x61
jl 0x6316b3
cmp al, 0x66
jle 0x6316ce
cmp al, 0x41
jl 0x6316bb
cmp al, 0x46
jle 0x6316ce
mov al, byte [ebp + 1]
cmp al, 0x61
jl 0x6316c6
cmp al, 0x66
jle 0x6316ce
cmp al, 0x41
jl 0x6316d6
cmp al, 0x46
jg 0x6316d6
mov dword [esp + 0x44], 1
mov edi, 1
jmp 0x6316e3
mov dword [ebx], 0
mov edx, dword [esp + 0x14]
mov eax, dword [esp + 0x10]
add edx, 4
add ebx, 4
dec eax
mov dword [esp + 0x14], edx
mov dword [esp + 0x10], eax
jne 0x6315ae
mov esi, dword [esp + 0x18]
test edi, edi
mov dword [esi + 0x5b4], 0
je 0x6319d6
mov ecx, dword [0x7dcc30]
call fcn.005d6f80
test eax, eax
je 0x6319ac
lea eax, [esi + 0xa4]
lea ebx, [esp + 0x88]
mov dword [esp + 0x14], eax
mov dword [esp + 0x10], 0x100
mov edx, dword [esp + 0x14]
mov ebp, dword [edx]
test ebp, ebp
je 0x63198d
cmp dword [ebx], 0
jne 0x63198d
mov esi, str..notdef
mov eax, ebp
mov dl, byte [eax]
mov cl, dl
cmp dl, byte [esi]
jne 0x631784
test cl, cl
je 0x631780
mov dl, byte [eax + 1]
mov cl, dl
cmp dl, byte [esi + 1]
jne 0x631784
add eax, 2
add esi, 2
test cl, cl
jne 0x631760
xor eax, eax
jmp 0x631789
sbb eax, eax
sbb eax, 0xffffffff
test eax, eax
je 0x63198d
mov edi, ebp
or ecx, 0xffffffff
xor eax, eax
repne scasb al, byte es:[edi]
mov eax, dword [esp + 0x44]
mov dword [esp + 0x20], 0xffffffff
not ecx
dec ecx
test eax, eax
mov esi, ecx
je 0x631839
cmp esi, 3
jne 0x631800
xor eax, eax
mov al, byte [ebp]
push eax
call fcn.00451015
add esp, 4
test eax, eax
je 0x631800
lea edi, [ebp + 1]
xor ecx, ecx
mov cl, byte [edi]
push ecx
call fcn.00451093
add esp, 4
test eax, eax
je 0x631800
xor edx, edx
mov dl, byte [ebp + 2]
push edx
call fcn.00451093
add esp, 4
test eax, eax
je 0x631800
lea eax, [esp + 0x20]
push eax
push 0x7994fc
push edi
jmp 0x631966
cmp esi, 2
jne 0x631879
xor ecx, ecx
mov cl, byte [ebp]
push ecx
call fcn.00451093
add esp, 4
test eax, eax
je 0x631879
xor edx, edx
mov dl, byte [ebp + 1]
push edx
call fcn.00451093
add esp, 4
test eax, eax
je 0x631879
lea eax, [esp + 0x20]
push eax
push 0x7994fc
push ebp
jmp 0x631966
cmp esi, 2
jl 0x631879
cmp esi, 4
jg 0x631879
xor ecx, ecx
mov cl, byte [ebp]
push ecx
call fcn.0045106b
add esp, 4
test eax, eax
je 0x631879
xor edx, edx
mov dl, byte [ebp + 1]
push edx
call fcn.0045106b
add esp, 4
test eax, eax
je 0x631879
push ebp
call fcn.0045928c
add esp, 4
mov dword [esp + 0x20], eax
jmp 0x63196e
cmp esi, 3
jl 0x6318bb
cmp esi, 5
jg 0x6318bb
lea edi, [ebp + 1]
xor eax, eax
mov al, byte [edi]
push eax
call fcn.0045106b
add esp, 4
test eax, eax
je 0x6318bb
xor ecx, ecx
mov cl, byte [ebp + 2]
push ecx
call fcn.0045106b
add esp, 4
test eax, eax
je 0x6318bb
push edi
call fcn.0045928c
add esp, 4
mov dword [esp + 0x20], eax
jmp 0x63196e
cmp esi, 4
jl 0x6318fa
cmp esi, 6
jg 0x6318fa
lea edi, [ebp + 2]
xor edx, edx
mov dl, byte [edi]
push edx
call fcn.0045106b
add esp, 4
test eax, eax
je 0x6318fa
xor eax, eax
mov al, byte [ebp + 3]
push eax
call fcn.0045106b
add esp, 4
test eax, eax
je 0x6318fa
push edi
call fcn.0045928c
add esp, 4
mov dword [esp + 0x20], eax
jmp 0x63196e
cmp esi, 7
jl 0x63196e
cmp byte [ebp], 0x75
jne 0x63196e
cmp byte [ebp + 1], 0x6e
jne 0x63196e
cmp byte [ebp + 2], 0x69
jne 0x63196e
lea esi, [ebp + 3]
xor ecx, ecx
mov cl, byte [esi]
push ecx
call fcn.00451093
add esp, 4
test eax, eax
je 0x63196e
xor edx, edx
mov dl, byte [ebp + 4]
push edx
call fcn.00451093
add esp, 4
test eax, eax
je 0x63196e
xor eax, eax
mov al, byte [ebp + 5]
push eax
call fcn.00451093
add esp, 4
test eax, eax
je 0x63196e
xor ecx, ecx
mov cl, byte [ebp + 6]
push ecx
call fcn.00451093
add esp, 4
test eax, eax
je 0x63196e
lea edx, [esp + 0x20]
push edx
push 0x7994fc
push esi
call fcn.00451547
add esp, 0xc
mov eax, dword [esp + 0x20]
test eax, eax
jl 0x63198d
cmp eax, 0xffff
jg 0x63198d
mov dword [ebx], eax
mov eax, dword [esp + 0x18]
mov dword [eax + 0x5b4], 1
mov edx, dword [esp + 0x14]
mov eax, dword [esp + 0x10]
add edx, 4
add ebx, 4
dec eax
mov dword [esp + 0x14], edx
mov dword [esp + 0x10], eax
jne 0x631742
jmp 0x6319d6
mov ecx, dword [0x7dcc30]
call fcn.005d6fb0
test eax, eax
je 0x6319d6
xor eax, eax
lea ecx, [esp + 0x88]
cmp dword [ecx], 0
jne 0x6319cb
mov dword [ecx], eax
inc eax
add ecx, 4
cmp eax, 0x100
jl 0x6319c4
lea ecx, [esp + 0x88]
push ecx
call fcn.005e3310
mov esi, dword [esp + 0x1c]
mov ebx, dword [esp + 0x4bc]
add esp, 4
mov ecx, esi
mov dword [esi + 0x5a4], eax
push eax
push 8
push ebx
call fcn.00630830
mov eax, dword [esi + 0x14]
test eax, eax
je 0x631ac3
mov ecx, dword [0x7dcc30]
push eax
call fcn.005d7050
mov ebp, eax
test ebp, ebp
je 0x631ac3
mov ecx, 0x100
xor eax, eax
lea edi, [esp + 0x88]
lea edx, [esp + 0x88]
rep stosd dword es:[edi], eax
push edx
call fcn.005e3310
add esp, 4
mov edi, eax
xor esi, esi
mov ecx, dword [esp + 0x18]
lea eax, [esp + 0x68]
push 8
push eax
mov ecx, dword [ecx + 0x5a4]
push esi
call fcn.005e45f0
cmp eax, 1
jl 0x631a89
mov eax, dword [esp + 0x68]
lea edx, [esp + 0x68]
push 8
push edx
push eax
mov ecx, ebp
call fcn.005e45f0
cmp eax, 1
jl 0x631a89
lea ecx, [esp + 0x68]
push eax
push ecx
push esi
mov ecx, edi
call fcn.005e4530
inc esi
cmp esi, 0x100
jl 0x631a47
mov ecx, ebp
call fcn.005e44d0
mov edx, dword [esp + 0x18]
mov esi, dword [edx + 0x5a4]
test esi, esi
je 0x631ab7
mov ecx, esi
call fcn.005e4480
push esi
call fcn.0044f656
add esp, 4
mov eax, dword [esp + 0x18]
mov esi, eax
mov dword [eax + 0x5a4], edi
lea edi, [esi + 0x5b8]
mov ecx, 0x100
mov eax, edi
fld qword [esi + 0x80]
fmul qword [0x71a438]
add eax, 8
dec ecx
fstp qword [eax - 8]
jne 0x631ad0
lea ecx, [esp + 0x24]
push 0
push ecx
push str.FirstChar
mov ecx, ebx
call fcn.005f4430
mov esi, dword [esp + 0x24]
mov ecx, dword [esp + 0x2c]
dec esi
neg esi
sbb esi, esi
not esi
and esi, ecx
lea ecx, [esp + 0x24]
call fcn.005f2e10
test esi, esi
jl 0x631b1e
cmp esi, 0xff
jle 0x631b20
xor esi, esi
lea edx, [esp + 0x24]
push 0
push edx
push str.LastChar
mov ecx, ebx
call fcn.005f4430
mov eax, dword [esp + 0x24]
mov ebp, dword [esp + 0x2c]
cmp eax, 1
je 0x631b45
mov ebp, 0xff
lea ecx, [esp + 0x24]
call fcn.005f2e10
test ebp, ebp
jl 0x631b5a
cmp ebp, 0xff
jle 0x631b5f
mov ebp, 0xff
mov eax, dword [esp + 0x18]
cmp dword [eax + 0x18], 4
jne 0x631b7c
mov ecx, dword [eax + 0x30]
mov edx, dword [eax + 0x34]
add eax, 0x30
mov dword [esp + 0x50], ecx
mov dword [esp + 0x54], edx
jmp 0x631b8c
mov dword [esp + 0x50], 0xd2f1a9fc
mov dword [esp + 0x54], 0x3f50624d
lea eax, [esp + 0x24]
push 0
push eax
push str.Widths
mov ecx, ebx
call fcn.005f4430
cmp dword [esp + 0x24], 6
jne 0x631c4a
mov eax, dword [esp + 0x18]
mov edx, ebp
sub edx, esi
mov ecx, dword [eax + 0x1c]
or ecx, 1
inc edx
mov dword [eax + 0x1c], ecx
mov ecx, dword [esp + 0x2c]
mov eax, dword [ecx + 0xc]
cmp eax, edx
jge 0x631bcb
lea ebp, [eax + esi - 1]
cmp esi, ebp
mov edi, esi
jg 0x631d97
mov eax, dword [esp + 0x18]
lea ebx, [eax + esi*8 + 0x5b8]
mov dword [esp + 0x10], ebx
mov edx, edi
lea ecx, [esp + 0x34]
push 0
sub edx, esi
push ecx
mov ecx, dword [esp + 0x34]
push edx
call fcn.006037c0
mov eax, dword [esp + 0x34]
cmp eax, 1
je 0x631c44
cmp eax, 2
jne 0x631c2e
fld qword [esp + 0x3c]
fmul qword [esp + 0x50]
mov eax, dword [esp + 0x10]
fst qword [ebx]
fsub qword [eax]
fabs
fcomp qword [0x72b548]
fnstsw ax
test ah, 0x41
jne 0x631c2e
mov eax, dword [esp + 0x18]
and dword [eax + 0x1c], 0xfffffffe
lea ecx, [esp + 0x34]
call fcn.005f2e10
inc edi
add ebx, 8
cmp edi, ebp
jle 0x631be4
jmp 0x631d97
fild dword [esp + 0x3c]
jmp 0x631c0b
mov ebx, dword [esp + 0x48]
test ebx, ebx
je 0x631cdc
lea ecx, [esp + 0x1c]
push ecx
mov ecx, dword [ebx + 0x18]
push str.space
call fcn.00603630
test eax, eax
je 0x631c8e
mov edx, dword [esp + 0x1c]
mov eax, dword [esp + 0x18]
and edx, 0xffff
mov dword [esp + 0x10], edx
fild dword [esp + 0x10]
fmul qword [0x71a438]
fstp qword [eax + 0x6b8]
mov ecx, dword [esp + 0x18]
mov ebp, 0x100
lea esi, [ecx + 0xa4]
mov eax, dword [esi]
test eax, eax
je 0x631cce
mov ecx, dword [ebx + 0x18]
lea edx, [esp + 0x1c]
push edx
push eax
call fcn.00603630
test eax, eax
je 0x631cce
mov eax, dword [esp + 0x1c]
and eax, 0xffff
mov dword [esp + 0x10], eax
fild dword [esp + 0x10]
fmul qword [0x71a438]
fstp qword [edi]
add esi, 4
add edi, 8
dec ebp
jne 0x631c9d
jmp 0x631d97
mov ecx, dword [esp + 0x18]
mov ecx, dword [ecx + 0x1c]
test cl, 1
je 0x631cec
xor eax, eax
jmp 0x631cfd
mov edx, ecx
and dl, 2
neg dl
sbb edx, edx
and edx, 4
add edx, 4
mov eax, edx
test ecx, 0x40000
je 0x631d08
add eax, 2
test cl, 0x40
je 0x631d0e
inc eax
mov ebx, dword [eax*4 + 0x7a87a8]
lea eax, [esp + 0x1c]
push eax
push str.space
mov ecx, dword [ebx + 0x18]
call fcn.00603630
test eax, eax
je 0x631d4d
mov ecx, dword [esp + 0x1c]
mov edx, dword [esp + 0x18]
and ecx, 0xffff
mov dword [esp + 0x10], ecx
fild dword [esp + 0x10]
fmul qword [0x71a438]
fstp qword [edx + 0x6b8]
mov eax, dword [esp + 0x18]
mov ebp, 0x100
lea esi, [eax + 0xa4]
mov eax, dword [esi]
test eax, eax
je 0x631d8e
lea ecx, [esp + 0x1c]
push ecx
mov ecx, dword [ebx + 0x18]
push eax
call fcn.00603630
test eax, eax
je 0x631d8e
mov edx, dword [esp + 0x1c]
and edx, 0xffff
mov dword [esp + 0x10], edx
fild dword [esp + 0x10]
fmul qword [0x71a438]
fstp qword [edi]
add esi, 4
add edi, 8
dec ebp
jne 0x631d5c
lea ecx, [esp + 0x24]
call fcn.005f2e10
mov eax, dword [esp + 0x18]
mov ecx, dword [esp + 0x488]
pop edi
pop esi
mov dword [eax + 0x9c], 1
pop ebp
pop ebx
mov dword fs:[0], ecx
add esp, 0x484
ret 0x24