Function at 0x454b00
Capabilities:
Check os version
Resolve function by parsing pe exports

Disassembly:
push 0xffffffffffffffff
push 0x486933
mov eax, dword fs:[0]
push eax
mov dword fs:[0], esp
sub esp, 0x47c
mov eax, dword [esp + 0x49c]
mov edx, dword [esp + 0x494]
push ebx
push ebp
push esi
mov esi, ecx
mov ecx, dword [esp + 0x4a4]
push edi
push eax
mov eax, dword [esp + 0x4a4]
push ecx
push edx
push eax
mov ecx, esi
mov dword [esp + 0x24], esi
call fcn.00454180
mov edx, dword [esp + 0x4b0]
mov eax, 0xd
xor ecx, ecx
mov dword [esi + 0xdb8], eax
mov dword [esi + 0xdc8], eax
mov dword [esi], 0x489618
mov dword [esi + 0x1c], edx
mov dword [esi + 0x5a8], ecx
mov esi, dword [esi + 0x14]
mov dword [esp + 0x494], ecx
cmp esi, ecx
mov dword [esp + 0x30], eax
mov dword [esp + 0x40], eax
mov dword [esp + 0x5c], eax
je 0x454c7b
push 8
call fcn.0047c2bc
add esp, 4
mov dword [esp + 0x18], eax
test eax, eax
mov byte [esp + 0x494], 1
je 0x454bb9
push esi
mov ecx, eax
call fcn.004189b0
mov edi, eax
jmp 0x454bbb
xor edi, edi
mov eax, dword [edi]
xor esi, esi
test eax, eax
mov byte [esp + 0x494], 0
jle 0x454be5
mov eax, dword [edi + 4]
cmp byte [esi + eax], 0x20
jne 0x454be0
push 1
push esi
mov ecx, edi
call fcn.004190d0
jmp 0x454be1
inc esi
cmp esi, dword [edi]
jl 0x454bcb
xor ebp, ebp
mov ebx, 0x33
lea eax, [ebx + ebp]
cdq
sub eax, edx
mov esi, eax
sar esi, 1
mov ecx, dword [esi*8 + 0x4b4f98]
push ecx
mov ecx, edi
call fcn.004192f0
test eax, eax
jl 0x454c0d
mov ebp, esi
jmp 0x454c0f
mov ebx, esi
mov edx, ebx
sub edx, ebp
cmp edx, 1
jg 0x454bec
mov eax, dword [ebp*8 + 0x4b4f98]
mov ecx, edi
push eax
call fcn.004192f0
test eax, eax
jne 0x454c67
push 8
call fcn.0047c2bc
add esp, 4
mov dword [esp + 0x18], eax
test eax, eax
mov byte [esp + 0x494], 2
je 0x454c56
mov ecx, dword [ebp*8 + 0x4b4f9c]
push ecx
mov ecx, eax
call fcn.004188d0
jmp 0x454c58
xor eax, eax
mov edx, dword [esp + 0x14]
mov byte [esp + 0x494], 0
mov dword [edx + 0x14], eax
test edi, edi
je 0x454c7b
mov ecx, edi
call fcn.00418a10
push edi
call fcn.0047c2e5
add esp, 4
mov ebx, dword [esp + 0x14]
xor ecx, ecx
xor ebp, ebp
mov eax, dword [ebx + 0x14]
mov dword [esp + 0x18], ebp
cmp eax, ecx
je 0x454cb6
xor edi, edi
mov esi, 0x4aecc8
mov eax, dword [esi]
mov ecx, dword [ebx + 0x14]
push eax
call fcn.004192f0
test eax, eax
je 0x454e46
add esi, 0x18
inc edi
cmp esi, 0x4aee18
jl 0x454c95
xor ecx, ecx
lea edi, [ebx + 0x68]
mov eax, 0x66666666
mov dword [ebx + 0x90], eax
mov dword [ebx + 0x98], eax
mov dword [ebx + 0x80], ecx
mov dword [ebx + 0x78], ecx
mov dword [ebx + 0x70], ecx
mov dword [edi], ecx
mov dword [ebx + 0x94], 0x3fee6666
mov dword [ebx + 0x9c], 0xbfd66666
mov dword [ebx + 0x84], ecx
mov dword [ebx + 0x7c], ecx
mov dword [ebx + 0x74], ecx
mov dword [edi + 4], ecx
mov edx, dword [esp + 0x4b4]
mov eax, dword [esp + 0x49c]
push edx
push eax
mov ecx, ebx
call fcn.004542c0
xor esi, esi
cmp ebp, esi
je 0x454dab
cmp dword [ebx + 0x28], esi
jge 0x454dab
movsx ecx, word [ebp + 8]
mov dword [esp + 0x10], ecx
fild dword [esp + 0x10]
fmul qword [0x489610]
fstp qword [ebx + 0x90]
movsx edx, word [ebp + 0xa]
mov dword [esp + 0x10], edx
fild dword [esp + 0x10]
fmul qword [0x489610]
fstp qword [ebx + 0x98]
movsx eax, word [ebp + 0xc]
mov dword [esp + 0x10], eax
fild dword [esp + 0x10]
fmul qword [0x489610]
fstp qword [edi]
movsx ecx, word [ebp + 0xe]
mov dword [esp + 0x10], ecx
fild dword [esp + 0x10]
fmul qword [0x489610]
fstp qword [ebx + 0x70]
movsx edx, word [ebp + 0x10]
mov dword [esp + 0x10], edx
fild dword [esp + 0x10]
fmul qword [0x489610]
fstp qword [ebx + 0x78]
movsx eax, word [ebp + 0x12]
mov dword [esp + 0x10], eax
fild dword [esp + 0x10]
fmul qword [0x489610]
fstp qword [ebx + 0x80]
mov ecx, ebx
call fcn.004549c0
lea ebp, [ebx + 0x38]
lea ecx, [esp + 0x30]
mov eax, 0x3ff00000
push ecx
mov ecx, dword [esp + 0x4b8]
mov dword [ebx + 0x50], esi
mov dword [ebp], esi
mov dword [ebx + 0x60], esi
mov dword [ebx + 0x58], esi
mov dword [ebx + 0x48], esi
mov dword [ebx + 0x40], esi
push str.FontMatrix
mov dword [ebx + 0x54], eax
mov dword [ebp + 4], eax
mov dword [ebx + 0x64], esi
mov dword [ebx + 0x5c], esi
mov dword [ebx + 0x4c], esi
mov dword [ebx + 0x44], esi
call fcn.00411ac0
mov ecx, dword [eax]
xor edx, edx
cmp ecx, 6
sete dl
mov eax, edx
cmp eax, esi
je 0x454f09
xor esi, esi
mov ecx, dword [esp + 0x38]
cmp esi, dword [ecx + 0xc]
jge 0x454f07
lea eax, [esp + 0x40]
push eax
push esi
call fcn.00412310
mov eax, dword [eax]
cmp eax, 1
je 0x454e32
cmp eax, 2
jne 0x454ef1
cmp dword [esp + 0x40], 1
jne 0x454eea
fild dword [esp + 0x48]
jmp 0x454eee
lea ecx, [edi + edi*2]
lea ebp, [ecx*8 + 0x4aecc8]
test ebp, ebp
mov dword [esp + 0x18], ebp
je 0x454cb4
movsx edx, word [ebp + 8]
mov dword [esp + 0x10], edx
lea edi, [ebx + 0x68]
fild dword [esp + 0x10]
fmul qword [0x489610]
fstp qword [ebx + 0x90]
movsx eax, word [ebp + 0xa]
mov dword [esp + 0x10], eax
fild dword [esp + 0x10]
fmul qword [0x489610]
fstp qword [ebx + 0x98]
movsx ecx, word [ebp + 0xc]
mov dword [esp + 0x10], ecx
fild dword [esp + 0x10]
fmul qword [0x489610]
fstp qword [edi]
movsx edx, word [ebp + 0xe]
mov dword [esp + 0x10], edx
fild dword [esp + 0x10]
fmul qword [0x489610]
fstp qword [ebx + 0x70]
movsx eax, word [ebp + 0x10]
mov dword [esp + 0x10], eax
fild dword [esp + 0x10]
fmul qword [0x489610]
fstp qword [ebx + 0x78]
movsx ecx, word [ebp + 0x12]
mov dword [esp + 0x10], ecx
fild dword [esp + 0x10]
fmul qword [0x489610]
fstp qword [ebx + 0x80]
jmp 0x454cfb
fld qword [esp + 0x48]
fstp qword [ebp]
lea ecx, [esp + 0x40]
call fcn.00411e70
inc esi
add ebp, 8
cmp esi, 6
jl 0x454e0a
xor esi, esi
lea ecx, [esp + 0x30]
call fcn.00411e70
mov eax, dword [ebx + 0x1c]
mov ebp, 4
cmp eax, ebp
jne 0x454fff
lea ecx, [esp + 0x30]
push ecx
mov ecx, dword [esp + 0x4b8]
push str.FontBBox
call fcn.00411ac0
mov ecx, dword [eax]
xor edx, edx
cmp ecx, 6
sete dl
mov eax, edx
cmp eax, esi
je 0x454f8c
mov ecx, dword [esp + 0x38]
cmp esi, dword [ecx + 0xc]
jge 0x454f8c
lea eax, [esp + 0x40]
push eax
push esi
call fcn.00412310
mov eax, dword [eax]
cmp eax, 1
je 0x454f68
cmp eax, 2
jne 0x454f7b
cmp dword [esp + 0x40], 1
jne 0x454f75
fild dword [esp + 0x48]
jmp 0x454f79
fld qword [esp + 0x48]
fstp qword [edi]
lea ecx, [esp + 0x40]
call fcn.00411e70
inc esi
add edi, 8
cmp esi, ebp
jl 0x454f48
lea ecx, [esp + 0x30]
call fcn.00411e70
mov edi, dword [esp + 0x4b4]
lea esi, [ebx + 0xdb8]
push esi
push str.CharProcs
mov ecx, edi
call fcn.00411ac0
mov edx, dword [eax]
xor ecx, ecx
cmp edx, 7
sete cl
mov eax, ecx
test eax, eax
jne 0x454fd3
push 0x4bb438
call fcn.00466a0e
add esp, 4
mov ecx, esi
call fcn.00411e70
lea esi, [ebx + 0xdc8]
mov ecx, edi
push esi
push str.Resources
call fcn.00411ac0
mov edi, dword [eax]
xor edx, edx
cmp edi, 7
sete dl
mov eax, edx
test eax, eax
jne 0x454ffd
mov ecx, esi
call fcn.00411e70
xor esi, esi
mov ecx, dword [esp + 0x4b4]
lea eax, [esp + 0x30]
push eax
push str.Encoding
mov dword [ebx + 0x5ac], esi
mov dword [ebx + 0x5b0], esi
mov dword [esp + 0x24], esi
mov dword [esp + 0x30], esi
call fcn.00411ac0
mov eax, dword [esp + 0x30]
cmp eax, 7
jne 0x45515a
lea ecx, [esp + 0x40]
push ecx
mov ecx, dword [esp + 0x3c]
push str.BaseEncoding
call fcn.00411ac0
cmp dword [esp + 0x40], ebp
jne 0x45514c
mov edi, dword [esp + 0x48]
mov esi, str.MacRomanEncoding
mov ecx, edi
mov al, byte [ecx]
mov dl, al
cmp al, byte [esi]
jne 0x455082
test dl, dl
je 0x45507e
mov al, byte [ecx + 1]
mov dl, al
cmp al, byte [esi + 1]
jne 0x455082
add ecx, 2
add esi, 2
test dl, dl
jne 0x45505e
xor ecx, ecx
jmp 0x455087
sbb ecx, ecx
sbb ecx, 0xffffffff
test ecx, ecx
jne 0x4550b2
mov eax, 1
lea ecx, [esp + 0x40]
mov dword [ebx + 0x5ac], eax
mov dword [ebx + 0x5b0], eax
mov dword [esp + 0x1c], 0x4a0874
call fcn.00411e70
jmp 0x455246
mov esi, str.MacExpertEncoding
mov ecx, edi
mov al, byte [ecx]
mov dl, al
cmp al, byte [esi]
jne 0x4550dd
test dl, dl
je 0x4550d9
mov al, byte [ecx + 1]
mov dl, al
cmp al, byte [esi + 1]
jne 0x4550dd
add ecx, 2
add esi, 2
test dl, dl
jne 0x4550b9
xor ecx, ecx
jmp 0x4550e2
sbb ecx, ecx
sbb ecx, 0xffffffff
test ecx, ecx
jne 0x455106
lea ecx, [esp + 0x40]
mov dword [ebx + 0x5ac], 1
mov dword [esp + 0x1c], 0x4a0c74
call fcn.00411e70
jmp 0x455246
mov esi, str.WinAnsiEncoding
mov eax, edi
mov dl, byte [eax]
mov cl, dl
cmp dl, byte [esi]
jne 0x455131
test cl, cl
je 0x45512d
mov dl, byte [eax + 1]
mov cl, dl
cmp dl, byte [esi + 1]
jne 0x455131
add eax, 2
add esi, 2
test cl, cl
jne 0x45510d
xor eax, eax
jmp 0x455136
sbb eax, eax
sbb eax, 0xffffffff
test eax, eax
jne 0x45514c
mov dword [ebx + 0x5ac], 1
mov dword [esp + 0x1c], 0x4a1074
lea ecx, [esp + 0x40]
call fcn.00411e70
jmp 0x455246
cmp eax, ebp
jne 0x455246
mov edi, dword [esp + 0x38]
mov esi, str.MacRomanEncoding
mov eax, edi
mov dl, byte [eax]
mov cl, dl
cmp dl, byte [esi]
jne 0x455191
test cl, cl
je 0x45518d
mov dl, byte [eax + 1]
mov cl, dl
cmp dl, byte [esi + 1]
jne 0x455191
add eax, 2
add esi, 2
test cl, cl
jne 0x45516d
xor eax, eax
jmp 0x455196
sbb eax, eax
sbb eax, 0xffffffff
test eax, eax
jne 0x4551b8
mov eax, 1
mov dword [esp + 0x1c], 0x4a0874
mov dword [ebx + 0x5ac], eax
mov dword [ebx + 0x5b0], eax
jmp 0x455246
mov esi, str.MacExpertEncoding
mov eax, edi
mov dl, byte [eax]
mov cl, dl
cmp dl, byte [esi]
jne 0x4551e3
test cl, cl
je 0x4551df
mov dl, byte [eax + 1]
mov cl, dl
cmp dl, byte [esi + 1]
jne 0x4551e3
add eax, 2
add esi, 2
test cl, cl
jne 0x4551bf
xor eax, eax
jmp 0x4551e8
sbb eax, eax
sbb eax, 0xffffffff
test eax, eax
jne 0x455200
mov dword [ebx + 0x5ac], 1
mov dword [esp + 0x1c], 0x4a0c74
jmp 0x455246
mov esi, str.WinAnsiEncoding
mov eax, edi
mov dl, byte [eax]
mov cl, dl
cmp dl, byte [esi]
jne 0x45522b
test cl, cl
je 0x455227
mov dl, byte [eax + 1]
mov cl, dl
cmp dl, byte [esi + 1]
jne 0x45522b
add eax, 2
add esi, 2
test cl, cl
jne 0x455207
xor eax, eax
jmp 0x455230
sbb eax, eax
sbb eax, 0xffffffff
test eax, eax
jne 0x455246
mov dword [ebx + 0x5ac], 1
mov dword [esp + 0x1c], 0x4a1074
mov eax, dword [ebx + 0x1c]
xor esi, esi
xor ebp, ebp
cmp eax, 1
mov dword [esp + 0x20], esi
mov dword [esp + 0x10], esi
jne 0x455326
mov ecx, dword [ebx + 0x30]
cmp ecx, esi
jne 0x455272
cmp dword [ebx + 0x28], esi
jl 0x455326
cmp ecx, esi
je 0x455280
mov ecx, dword [ecx + 4]
push ecx
call fcn.0045c720
add esp, 4
jmp 0x4552a4
mov ecx, dword [esp + 0x49c]
lea eax, [esp + 0x50]
push eax
push ecx
mov ecx, ebx
call fcn.00454a10
mov edx, dword [esp + 0x50]
mov ebp, eax
push edx
push ebp
call fcn.0045c6b0
add esp, 8
mov edi, eax
cmp edi, esi
mov dword [esp + 0x20], edi
je 0x4553f8
mov ecx, edi
call fcn.0045c850
test eax, eax
je 0x45530e
mov esi, dword [ebx + 0x24]
test esi, esi
je 0x4552d4
mov ecx, esi
call fcn.00418a10
push esi
call fcn.0047c2e5
add esp, 4
push 8
call fcn.0047c2bc
mov esi, eax
add esp, 4
mov dword [esp + 0x54], esi
test esi, esi
mov byte [esp + 0x494], 3
je 0x455301
mov ecx, edi
call fcn.0045c850
push eax
mov ecx, esi
call fcn.004188d0
jmp 0x455303
xor eax, eax
mov byte [esp + 0x494], 0
mov dword [ebx + 0x24], eax
mov eax, dword [esp + 0x1c]
test eax, eax
jne 0x4553f8
mov ecx, edi
call fcn.0045c870
jmp 0x4553ec
cmp eax, 2
jne 0x455405
mov eax, dword [ebx + 0x30]
test eax, eax
jne 0x455345
mov ecx, dword [ebx + 0x28]
test ecx, ecx
jl 0x455405
test eax, eax
je 0x455353
mov eax, dword [eax + 4]
push eax
call fcn.0045a8e0
add esp, 4
jmp 0x455377
mov ecx, dword [esp + 0x49c]
lea eax, [esp + 0x50]
push eax
push ecx
mov ecx, ebx
call fcn.00454a10
mov edx, dword [esp + 0x50]
mov ebp, eax
push edx
push ebp
call fcn.0045a850
add esp, 8
mov edi, eax
test edi, edi
mov dword [esp + 0x10], edi
je 0x4553f8
mov ecx, edi
call fcn.0045aaf0
test eax, eax
je 0x4553dd
mov esi, dword [ebx + 0x24]
test esi, esi
je 0x4553a3
mov ecx, esi
call fcn.00418a10
push esi
call fcn.0047c2e5
add esp, 4
push 8
call fcn.0047c2bc
mov esi, eax
add esp, 4
mov dword [esp + 0x54], esi
test esi, esi
mov byte [esp + 0x494], 4
je 0x4553d0
mov ecx, edi
call fcn.0045aaf0
push eax
mov ecx, esi
call fcn.004188d0
jmp 0x4553d2
xor eax, eax
mov byte [esp + 0x494], 0
mov dword [ebx + 0x24], eax
mov eax, dword [esp + 0x1c]
test eax, eax
jne 0x4553f8
mov ecx, edi
call fcn.0045ab00
mov dword [esp + 0x1c], eax
mov dword [esp + 0x28], 1
test ebp, ebp
je 0x455405
push ebp
call fcn.0041b7f0
add esp, 4
mov eax, dword [esp + 0x1c]
test eax, eax
jne 0x455447
mov eax, dword [esp + 0x18]
test eax, eax
je 0x45542f
mov ecx, dword [ebx + 0x28]
test ecx, ecx
jge 0x45542f
mov eax, dword [eax + 4]
mov dword [ebx + 0x5ac], 1
mov dword [esp + 0x1c], eax
jmp 0x455447
mov eax, dword [ebx + 0x1c]
mov dword [esp + 0x1c], 0x4a1074
cmp eax, 5
je 0x455447
mov dword [esp + 0x1c], 0x4a1474
mov ecx, dword [esp + 0x14]
mov edi, dword [esp + 0x1c]
xor ebp, ebp
lea esi, [ecx + 0xa8]
lea ebx, [ecx + 0x4a8]
mov edx, dword [edi]
mov eax, dword [esp + 0x28]
mov dword [esi], edx
mov byte [ebx + ebp], al
test al, al
je 0x455486
cmp dword [esi], 0
je 0x455486
mov eax, dword [edi]
push eax
call fcn.0041b800
mov ecx, dword [esp + 0x18]
mov dword [esi], eax
mov eax, dword [esp + 0x2c]
add esp, 4
inc ebp
add edi, 4
add esi, 4
cmp ebp, 0x100
jl 0x45545d
cmp dword [ecx + 0x1c], 2
jne 0x4554d8
mov edx, dword [ecx + 0x30]
test edx, edx
jne 0x4554a9
mov edx, dword [ecx + 0x28]
test edx, edx
jl 0x4554d8
test eax, eax
je 0x4554d8
mov esi, ebx
mov eax, 0x4a1474
add ecx, 0xa8
cmp dword [ecx], 0
jne 0x4554ca
mov edx, dword [eax]
test edx, edx
je 0x4554ca
mov dword [ecx], edx
mov byte [esi], 0
add eax, 4
add ecx, 4
inc esi
cmp eax, 0x4a1874
jl 0x4554ba
cmp dword [esp + 0x30], 7
jne 0x4555a7
lea ecx, [esp + 0x40]
push ecx
mov ecx, dword [esp + 0x3c]
push str.Differences
call fcn.00411ac0
mov eax, dword [esp + 0x40]
mov ebp, dword [esp + 0x14]
cmp eax, 6
jne 0x45559c
mov ecx, dword [esp + 0x48]
mov dword [ebp + 0x5ac], 1
xor esi, esi
xor edi, edi
mov eax, dword [ecx + 0xc]
test eax, eax
jle 0x45559c
lea edx, [esp + 0x5c]
push edx
push edi
call fcn.00412310
mov eax, dword [esp + 0x5c]
cmp eax, 1
jne 0x45553a
mov esi, dword [esp + 0x64]
jmp 0x455589
cmp eax, 4
jne 0x45557c
test esi, esi
jl 0x455579
cmp esi, 0x100
jge 0x455579
cmp byte [ebx + esi], 0
je 0x455561
mov eax, dword [ebp + esi*4 + 0xa8]
push eax
call fcn.0041b7f0
add esp, 4
mov ecx, dword [esp + 0x64]
push ecx
call fcn.0041b800
mov dword [ebp + esi*4 + 0xa8], eax
add esp, 4
mov byte [ebx + esi], 1
inc esi
jmp 0x455589
push 0x4bb438
call fcn.00466a0e
add esp, 4
lea ecx, [esp + 0x5c]
call fcn.00411e70
mov ecx, dword [esp + 0x48]
inc edi
cmp edi, dword [ecx + 0xc]
jl 0x455520
lea ecx, [esp + 0x40]
call fcn.00411e70
jmp 0x4555ab
mov ebp, dword [esp + 0x14]
lea ecx, [esp + 0x30]
call fcn.00411e70
mov ecx, dword [esp + 0x20]
xor edi, edi
cmp ecx, edi
je 0x4555c4
mov edx, dword [ecx]
push 1
call dword [edx]
mov ecx, dword [esp + 0x10]
cmp ecx, edi
je 0x4555d2
mov eax, dword [ecx]
push 1
call dword [eax]
lea eax, [ebp + 0xa8]
mov dword [esp + 0x28], edi
lea ebx, [esp + 0x8c]
mov dword [esp + 0x10], eax
mov dword [esp + 0x20], 0x100
mov ecx, dword [esp + 0x10]
mov ebp, dword [ecx]
test ebp, ebp
je 0x45571d
mov ecx, dword [0x4bb5e8]
push ebp
call fcn.00417d30
test eax, eax
mov dword [ebx], eax
jne 0x455723
mov esi, str..notdef
mov eax, ebp
mov dl, byte [eax]
mov cl, dl
cmp dl, byte [esi]
jne 0x45563e
test cl, cl
je 0x45563a
mov dl, byte [eax + 1]
mov cl, dl
cmp dl, byte [esi + 1]
jne 0x45563e
add eax, 2
add esi, 2
test cl, cl
jne 0x45561a
xor eax, eax
jmp 0x455643
sbb eax, eax
sbb eax, 0xffffffff
test eax, eax
je 0x455723
mov edi, ebp
or ecx, 0xffffffff
xor eax, eax
repne scasb al, byte es:[edi]
not ecx
dec ecx
cmp ecx, 3
jne 0x4556b5
movsx eax, byte [ebp]
push eax
call fcn.00466398
add esp, 4
test eax, eax
je 0x4556b5
movsx ecx, byte [ebp + 1]
push ecx
call fcn.0046643e
add esp, 4
test eax, eax
je 0x4556b5
movsx edx, byte [ebp + 2]
push edx
call fcn.0046643e
add esp, 4
test eax, eax
je 0x4556b5
mov al, byte [ebp + 1]
cmp al, 0x61
jl 0x45569a
cmp al, 0x66
jle 0x45570e
cmp al, 0x41
jl 0x4556a2
cmp al, 0x46
jle 0x45570e
mov al, byte [ebp + 2]
cmp al, 0x61
jl 0x4556ad
cmp al, 0x66
jle 0x45570e
cmp al, 0x41
jl 0x4556b5
cmp al, 0x46
jle 0x45570e
mov edi, ebp
or ecx, 0xffffffff
xor eax, eax
repne scasb al, byte es:[edi]
not ecx
dec ecx
cmp ecx, 2
jne 0x455716
movsx eax, byte [ebp]
push eax
call fcn.0046643e
add esp, 4
test eax, eax
je 0x455716
movsx ecx, byte [ebp + 1]
push ecx
call fcn.0046643e
add esp, 4
test eax, eax
je 0x455716
mov al, byte [ebp]
cmp al, 0x61
jl 0x4556f3
cmp al, 0x66
jle 0x45570e
cmp al, 0x41
jl 0x4556fb
cmp al, 0x46
jle 0x45570e
mov al, byte [ebp + 1]
cmp al, 0x61
jl 0x455706
cmp al, 0x66
jle 0x45570e
cmp al, 0x41
jl 0x455716
cmp al, 0x46
jg 0x455716
mov dword [esp + 0x28], 1
mov edi, 1
jmp 0x455723
mov dword [ebx], 0
mov edx, dword [esp + 0x10]
mov eax, dword [esp + 0x20]
add edx, 4
add ebx, 4
dec eax
mov dword [esp + 0x10], edx
mov dword [esp + 0x20], eax
jne 0x4555ef
test edi, edi
je 0x455972
mov ecx, dword [0x4bb5e8]
call fcn.00417f90
test eax, eax
je 0x455948
mov edx, dword [esp + 0x14]
lea ebx, [esp + 0x8c]
mov dword [esp + 0x20], 0x100
lea eax, [edx + 0xa8]
mov dword [esp + 0x10], eax
mov eax, dword [esp + 0x10]
mov ebp, dword [eax]
test ebp, ebp
je 0x455929
cmp dword [ebx], 0
jne 0x455929
mov esi, str..notdef
mov eax, ebp
mov dl, byte [eax]
mov cl, dl
cmp dl, byte [esi]
jne 0x4557ba
test cl, cl
je 0x4557b6
mov dl, byte [eax + 1]
mov cl, dl
cmp dl, byte [esi + 1]
jne 0x4557ba
add eax, 2
add esi, 2
test cl, cl
jne 0x455796
xor eax, eax
jmp 0x4557bf
sbb eax, eax
sbb eax, 0xffffffff
test eax, eax
je 0x455929
mov edi, ebp
or ecx, 0xffffffff
xor eax, eax
repne scasb al, byte es:[edi]
mov eax, dword [esp + 0x28]
mov dword [esp + 0x2c], 0xffffffff
not ecx
dec ecx
test eax, eax
mov esi, ecx
je 0x45587b
cmp esi, 3
jne 0x45583c
movsx eax, byte [ebp]
push eax
call fcn.00466398
add esp, 4
test eax, eax
je 0x45583c
movsx ecx, byte [ebp + 1]
lea edi, [ebp + 1]
push ecx
call fcn.0046643e
add esp, 4
test eax, eax
je 0x45583c
movsx edx, byte [ebp + 2]
push edx
call fcn.0046643e
add esp, 4
test eax, eax
je 0x45583c
lea eax, [esp + 0x2c]
push eax
push 0x497204
push edi
call fcn.004664c1
add esp, 0xc
jmp 0x455918
cmp esi, 2
jne 0x4558aa
movsx ecx, byte [ebp]
push ecx
call fcn.0046643e
add esp, 4
test eax, eax
je 0x4558aa
movsx edx, byte [ebp + 1]
push edx
call fcn.0046643e
add esp, 4
test eax, eax
je 0x4558aa
lea eax, [esp + 0x2c]
push eax
push 0x497204
push ebp
call fcn.004664c1
add esp, 0xc
jmp 0x455918
cmp esi, 2
jl 0x4558aa
cmp esi, 4
jg 0x4558aa
movsx ecx, byte [ebp]
push ecx
call fcn.00466416
add esp, 4
test eax, eax
je 0x4558aa
movsx edx, byte [ebp + 1]
push edx
call fcn.00466416
add esp, 4
test eax, eax
je 0x4558aa
push ebp
jmp 0x45590c
cmp esi, 3
jl 0x4558dc
cmp esi, 5
jg 0x4558dc
movsx eax, byte [ebp + 1]
lea edi, [ebp + 1]
push eax
call fcn.00466416
add esp, 4
test eax, eax
je 0x4558dc
movsx ecx, byte [ebp + 2]
push ecx
call fcn.00466416
add esp, 4
test eax, eax
je 0x4558dc
push edi
jmp 0x45590c
cmp esi, 4
jl 0x455918
cmp esi, 6
jg 0x455918
movsx edx, byte [ebp + 2]
lea esi, [ebp + 2]
push edx
call fcn.00466416
add esp, 4
test eax, eax
je 0x455918
movsx eax, byte [ebp + 3]
push eax
call fcn.00466416
add esp, 4
test eax, eax
je 0x455918
push esi
call fcn.004655e0
add esp, 4
mov dword [esp + 0x2c], eax
mov eax, dword [esp + 0x2c]
test eax, eax
jl 0x455929
cmp eax, 0xff
jg 0x455929
mov dword [ebx], eax
mov edx, dword [esp + 0x10]
mov eax, dword [esp + 0x20]
add edx, 4
add ebx, 4
dec eax
mov dword [esp + 0x10], edx
mov dword [esp + 0x20], eax
jne 0x455778
jmp 0x455972
mov ecx, dword [0x4bb5e8]
call fcn.00417fc0
test eax, eax
je 0x455972
xor eax, eax
lea ecx, [esp + 0x8c]
cmp dword [ecx], 0
jne 0x455967
mov dword [ecx], eax
inc eax
add ecx, 4
cmp eax, 0x100
jl 0x455960
lea ecx, [esp + 0x8c]
push ecx
call fcn.004259b0
mov esi, dword [esp + 0x18]
mov ebx, dword [esp + 0x4b8]
add esp, 4
mov ecx, esi
mov dword [esi + 0x5a8], eax
push eax
push 8
push ebx
call fcn.004548a0
mov eax, dword [esi + 0x14]
test eax, eax
je 0x455a5f
mov ecx, dword [0x4bb5e8]
push eax
call fcn.00418060
mov ebp, eax
test ebp, ebp
je 0x455a5f
mov ecx, 0x100
xor eax, eax
lea edi, [esp + 0x8c]
lea edx, [esp + 0x8c]
rep stosd dword es:[edi], eax
push edx
call fcn.004259b0
add esp, 4
mov edi, eax
xor esi, esi
mov ecx, dword [esp + 0x14]
lea eax, [esp + 0x6c]
push 8
push eax
mov ecx, dword [ecx + 0x5a8]
push esi
call fcn.004266d0
cmp eax, 1
jl 0x455a25
mov eax, dword [esp + 0x6c]
lea edx, [esp + 0x6c]
push 8
push edx
push eax
mov ecx, ebp
call fcn.004266d0
cmp eax, 1
jl 0x455a25
lea ecx, [esp + 0x6c]
push eax
push ecx
push esi
mov ecx, edi
call fcn.00426610
inc esi
cmp esi, 0x100
jl 0x4559e3
mov ecx, ebp
call fcn.00426590
mov edx, dword [esp + 0x14]
mov esi, dword [edx + 0x5a8]
test esi, esi
je 0x455a53
mov ecx, esi
call fcn.00426520
push esi
call fcn.0047c2e5
add esp, 4
mov eax, dword [esp + 0x14]
mov esi, eax
mov dword [eax + 0x5a8], edi
lea edi, [esi + 0x5b8]
mov ecx, 0x100
mov eax, edi
fld qword [esi + 0x88]
fmul qword [0x489610]
add eax, 8
dec ecx
fstp qword [eax - 8]
jne 0x455a6c
lea ecx, [esp + 0x30]
push ecx
push str.FirstChar
mov ecx, ebx
call fcn.00411ac0
mov esi, dword [esp + 0x30]
mov ecx, dword [esp + 0x38]
dec esi
neg esi
sbb esi, esi
not esi
and esi, ecx
lea ecx, [esp + 0x30]
call fcn.00411e70
test esi, esi
jl 0x455ab8
cmp esi, 0xff
jle 0x455aba
xor esi, esi
lea edx, [esp + 0x30]
mov ecx, ebx
push edx
push str.LastChar
call fcn.00411ac0
mov eax, dword [esp + 0x30]
mov ebp, dword [esp + 0x38]
cmp eax, 1
je 0x455add
mov ebp, 0xff
lea ecx, [esp + 0x30]
call fcn.00411e70
test ebp, ebp
jl 0x455af2
cmp ebp, 0xff
jle 0x455af7
mov ebp, 0xff
mov eax, dword [esp + 0x14]
cmp dword [eax + 0x1c], 4
jne 0x455b14
mov ecx, dword [eax + 0x38]
mov edx, dword [eax + 0x3c]
add eax, 0x38
mov dword [esp + 0x54], ecx
mov dword [esp + 0x58], edx
jmp 0x455b24
mov dword [esp + 0x54], 0xd2f1a9fc
mov dword [esp + 0x58], 0x3f50624d
lea eax, [esp + 0x30]
mov ecx, ebx
push eax
push str.Widths
call fcn.00411ac0
cmp dword [esp + 0x30], 6
jne 0x455bd6
mov eax, dword [esp + 0x14]
mov edx, ebp
sub edx, esi
mov ecx, dword [eax + 0x20]
or ecx, 1
inc edx
mov dword [eax + 0x20], ecx
mov ecx, dword [esp + 0x38]
mov eax, dword [ecx + 0xc]
cmp eax, edx
jge 0x455b61
lea ebp, [eax + esi - 1]
cmp esi, ebp
mov edi, esi
jg 0x455d23
mov eax, dword [esp + 0x14]
lea ebx, [eax + esi*8 + 0x5b8]
mov dword [esp + 0x18], ebx
mov edx, edi
lea ecx, [esp + 0x40]
sub edx, esi
push ecx
mov ecx, dword [esp + 0x3c]
push edx
call fcn.00412310
mov eax, dword [esp + 0x40]
cmp eax, 1
je 0x455bd0
cmp eax, 2
jne 0x455bba
fld qword [esp + 0x48]
fmul qword [esp + 0x54]
mov eax, dword [esp + 0x18]
fst qword [ebx]
fcomp qword [eax]
fnstsw ax
test ah, 0x40
jne 0x455bba
mov eax, dword [esp + 0x14]
and dword [eax + 0x20], 0xfffffffe
lea ecx, [esp + 0x40]
call fcn.00411e70
inc edi
add ebx, 8
cmp edi, ebp
jle 0x455b7a
jmp 0x455d23
fild dword [esp + 0x48]
jmp 0x455b9f
mov ebx, dword [esp + 0x18]
test ebx, ebx
je 0x455c68
lea ecx, [esp + 0x24]
push ecx
mov ecx, dword [ebx + 0x14]
push str.space
call fcn.00439a30
test eax, eax
je 0x455c1a
mov edx, dword [esp + 0x24]
mov eax, dword [esp + 0x14]
and edx, 0xffff
mov dword [esp + 0x18], edx
fild dword [esp + 0x18]
fmul qword [0x489610]
fstp qword [eax + 0x6b8]
mov ecx, dword [esp + 0x14]
mov ebp, 0x100
lea esi, [ecx + 0xa8]
mov eax, dword [esi]
test eax, eax
je 0x455c5a
mov ecx, dword [ebx + 0x14]
lea edx, [esp + 0x24]
push edx
push eax
call fcn.00439a30
test eax, eax
je 0x455c5a
mov eax, dword [esp + 0x24]
and eax, 0xffff
mov dword [esp + 0x18], eax
fild dword [esp + 0x18]
fmul qword [0x489610]
fstp qword [edi]
add esi, 4
add edi, 8
dec ebp
jne 0x455c29
jmp 0x455d23
mov ecx, dword [esp + 0x14]
mov ecx, dword [ecx + 0x20]
test cl, 1
je 0x455c78
xor eax, eax
jmp 0x455c89
mov edx, ecx
and dl, 2
neg dl
sbb edx, edx
and edx, 4
add edx, 4
mov eax, edx
test ecx, 0x40000
je 0x455c94
add eax, 2
test cl, 0x40
je 0x455c9a
inc eax
mov ebx, dword [eax*4 + 0x4aee18]
lea eax, [esp + 0x24]
push eax
push str.space
mov ecx, dword [ebx + 0x14]
call fcn.00439a30
test eax, eax
je 0x455cd9
mov ecx, dword [esp + 0x24]
mov edx, dword [esp + 0x14]
and ecx, 0xffff
mov dword [esp + 0x18], ecx
fild dword [esp + 0x18]
fmul qword [0x489610]
fstp qword [edx + 0x6b8]
mov eax, dword [esp + 0x14]
mov ebp, 0x100
lea esi, [eax + 0xa8]
mov eax, dword [esi]
test eax, eax
je 0x455d1a
lea ecx, [esp + 0x24]
push ecx
mov ecx, dword [ebx + 0x14]
push eax
call fcn.00439a30
test eax, eax
je 0x455d1a
mov edx, dword [esp + 0x24]
and edx, 0xffff
mov dword [esp + 0x18], edx
fild dword [esp + 0x18]
fmul qword [0x489610]
fstp qword [edi]
add esi, 4
add edi, 8
dec ebp
jne 0x455ce8
lea ecx, [esp + 0x30]
call fcn.00411e70
mov eax, dword [esp + 0x14]
mov ecx, dword [esp + 0x48c]
pop edi
pop esi
mov dword [eax + 0xa0], 1
pop ebp
pop ebx
mov dword fs:[0], ecx
add esp, 0x488
ret 0x1c