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

Disassembly:
push 0xffffffffffffffff
push 0x4868b3
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.00454100
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 0x454bfb
push 8
call fcn.0047c23c
add esp, 4
mov dword [esp + 0x18], eax
test eax, eax
mov byte [esp + 0x494], 1
je 0x454b39
push esi
mov ecx, eax
call fcn.00417e40
mov edi, eax
jmp 0x454b3b
xor edi, edi
mov eax, dword [edi]
xor esi, esi
test eax, eax
mov byte [esp + 0x494], 0
jle 0x454b65
mov eax, dword [edi + 4]
cmp byte [esi + eax], 0x20
jne 0x454b60
push 1
push esi
mov ecx, edi
call fcn.00418560
jmp 0x454b61
inc esi
cmp esi, dword [edi]
jl 0x454b4b
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 + 0x4b4f80]
push ecx
mov ecx, edi
call fcn.00418780
test eax, eax
jl 0x454b8d
mov ebp, esi
jmp 0x454b8f
mov ebx, esi
mov edx, ebx
sub edx, ebp
cmp edx, 1
jg 0x454b6c
mov eax, dword [ebp*8 + 0x4b4f80]
mov ecx, edi
push eax
call fcn.00418780
test eax, eax
jne 0x454be7
push 8
call fcn.0047c23c
add esp, 4
mov dword [esp + 0x18], eax
test eax, eax
mov byte [esp + 0x494], 2
je 0x454bd6
mov ecx, dword [ebp*8 + 0x4b4f84]
push ecx
mov ecx, eax
call fcn.00417d60
jmp 0x454bd8
xor eax, eax
mov edx, dword [esp + 0x14]
mov byte [esp + 0x494], 0
mov dword [edx + 0x14], eax
test edi, edi
je 0x454bfb
mov ecx, edi
call fcn.00417ea0
push edi
call fcn.0047c265
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 0x454c36
xor edi, edi
mov esi, 0x4aeca0
mov eax, dword [esi]
mov ecx, dword [ebx + 0x14]
push eax
call fcn.00418780
test eax, eax
je 0x454dc6
add esi, 0x18
inc edi
cmp esi, 0x4aedf0
jl 0x454c15
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.00454240
xor esi, esi
cmp ebp, esi
je 0x454d2b
cmp dword [ebx + 0x28], esi
jge 0x454d2b
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.00454940
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.00410f90
mov ecx, dword [eax]
xor edx, edx
cmp ecx, 6
sete dl
mov eax, edx
cmp eax, esi
je 0x454e89
xor esi, esi
mov ecx, dword [esp + 0x38]
cmp esi, dword [ecx + 0xc]
jge 0x454e87
lea eax, [esp + 0x40]
push eax
push esi
call fcn.004117c0
mov eax, dword [eax]
cmp eax, 1
je 0x454db2
cmp eax, 2
jne 0x454e71
cmp dword [esp + 0x40], 1
jne 0x454e6a
fild dword [esp + 0x48]
jmp 0x454e6e
lea ecx, [edi + edi*2]
lea ebp, [ecx*8 + 0x4aeca0]
test ebp, ebp
mov dword [esp + 0x18], ebp
je 0x454c34
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 0x454c7b
fld qword [esp + 0x48]
fstp qword [ebp]
lea ecx, [esp + 0x40]
call fcn.00411340
inc esi
add ebp, 8
cmp esi, 6
jl 0x454d8a
xor esi, esi
lea ecx, [esp + 0x30]
call fcn.00411340
mov eax, dword [ebx + 0x1c]
mov ebp, 4
cmp eax, ebp
jne 0x454f7f
lea ecx, [esp + 0x30]
push ecx
mov ecx, dword [esp + 0x4b8]
push str.FontBBox
call fcn.00410f90
mov ecx, dword [eax]
xor edx, edx
cmp ecx, 6
sete dl
mov eax, edx
cmp eax, esi
je 0x454f0c
mov ecx, dword [esp + 0x38]
cmp esi, dword [ecx + 0xc]
jge 0x454f0c
lea eax, [esp + 0x40]
push eax
push esi
call fcn.004117c0
mov eax, dword [eax]
cmp eax, 1
je 0x454ee8
cmp eax, 2
jne 0x454efb
cmp dword [esp + 0x40], 1
jne 0x454ef5
fild dword [esp + 0x48]
jmp 0x454ef9
fld qword [esp + 0x48]
fstp qword [edi]
lea ecx, [esp + 0x40]
call fcn.00411340
inc esi
add edi, 8
cmp esi, ebp
jl 0x454ec8
lea ecx, [esp + 0x30]
call fcn.00411340
mov edi, dword [esp + 0x4b4]
lea esi, [ebx + 0xdb8]
push esi
push str.CharProcs
mov ecx, edi
call fcn.00410f90
mov edx, dword [eax]
xor ecx, ecx
cmp edx, 7
sete cl
mov eax, ecx
test eax, eax
jne 0x454f53
push 0x4bb418
call fcn.0046698e
add esp, 4
mov ecx, esi
call fcn.00411340
lea esi, [ebx + 0xdc8]
mov ecx, edi
push esi
push str.Resources
call fcn.00410f90
mov edi, dword [eax]
xor edx, edx
cmp edi, 7
sete dl
mov eax, edx
test eax, eax
jne 0x454f7d
mov ecx, esi
call fcn.00411340
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.00410f90
mov eax, dword [esp + 0x30]
cmp eax, 7
jne 0x4550da
lea ecx, [esp + 0x40]
push ecx
mov ecx, dword [esp + 0x3c]
push str.BaseEncoding
call fcn.00410f90
cmp dword [esp + 0x40], ebp
jne 0x4550cc
mov edi, dword [esp + 0x48]
mov esi, str.MacRomanEncoding
mov ecx, edi
mov al, byte [ecx]
mov dl, al
cmp al, byte [esi]
jne 0x455002
test dl, dl
je 0x454ffe
mov al, byte [ecx + 1]
mov dl, al
cmp al, byte [esi + 1]
jne 0x455002
add ecx, 2
add esi, 2
test dl, dl
jne 0x454fde
xor ecx, ecx
jmp 0x455007
sbb ecx, ecx
sbb ecx, 0xffffffff
test ecx, ecx
jne 0x455032
mov eax, 1
lea ecx, [esp + 0x40]
mov dword [ebx + 0x5ac], eax
mov dword [ebx + 0x5b0], eax
mov dword [esp + 0x1c], 0x4a084c
call fcn.00411340
jmp 0x4551c6
mov esi, str.MacExpertEncoding
mov ecx, edi
mov al, byte [ecx]
mov dl, al
cmp al, byte [esi]
jne 0x45505d
test dl, dl
je 0x455059
mov al, byte [ecx + 1]
mov dl, al
cmp al, byte [esi + 1]
jne 0x45505d
add ecx, 2
add esi, 2
test dl, dl
jne 0x455039
xor ecx, ecx
jmp 0x455062
sbb ecx, ecx
sbb ecx, 0xffffffff
test ecx, ecx
jne 0x455086
lea ecx, [esp + 0x40]
mov dword [ebx + 0x5ac], 1
mov dword [esp + 0x1c], 0x4a0c4c
call fcn.00411340
jmp 0x4551c6
mov esi, str.WinAnsiEncoding
mov eax, edi
mov dl, byte [eax]
mov cl, dl
cmp dl, byte [esi]
jne 0x4550b1
test cl, cl
je 0x4550ad
mov dl, byte [eax + 1]
mov cl, dl
cmp dl, byte [esi + 1]
jne 0x4550b1
add eax, 2
add esi, 2
test cl, cl
jne 0x45508d
xor eax, eax
jmp 0x4550b6
sbb eax, eax
sbb eax, 0xffffffff
test eax, eax
jne 0x4550cc
mov dword [ebx + 0x5ac], 1
mov dword [esp + 0x1c], 0x4a104c
lea ecx, [esp + 0x40]
call fcn.00411340
jmp 0x4551c6
cmp eax, ebp
jne 0x4551c6
mov edi, dword [esp + 0x38]
mov esi, str.MacRomanEncoding
mov eax, edi
mov dl, byte [eax]
mov cl, dl
cmp dl, byte [esi]
jne 0x455111
test cl, cl
je 0x45510d
mov dl, byte [eax + 1]
mov cl, dl
cmp dl, byte [esi + 1]
jne 0x455111
add eax, 2
add esi, 2
test cl, cl
jne 0x4550ed
xor eax, eax
jmp 0x455116
sbb eax, eax
sbb eax, 0xffffffff
test eax, eax
jne 0x455138
mov eax, 1
mov dword [esp + 0x1c], 0x4a084c
mov dword [ebx + 0x5ac], eax
mov dword [ebx + 0x5b0], eax
jmp 0x4551c6
mov esi, str.MacExpertEncoding
mov eax, edi
mov dl, byte [eax]
mov cl, dl
cmp dl, byte [esi]
jne 0x455163
test cl, cl
je 0x45515f
mov dl, byte [eax + 1]
mov cl, dl
cmp dl, byte [esi + 1]
jne 0x455163
add eax, 2
add esi, 2
test cl, cl
jne 0x45513f
xor eax, eax
jmp 0x455168
sbb eax, eax
sbb eax, 0xffffffff
test eax, eax
jne 0x455180
mov dword [ebx + 0x5ac], 1
mov dword [esp + 0x1c], 0x4a0c4c
jmp 0x4551c6
mov esi, str.WinAnsiEncoding
mov eax, edi
mov dl, byte [eax]
mov cl, dl
cmp dl, byte [esi]
jne 0x4551ab
test cl, cl
je 0x4551a7
mov dl, byte [eax + 1]
mov cl, dl
cmp dl, byte [esi + 1]
jne 0x4551ab
add eax, 2
add esi, 2
test cl, cl
jne 0x455187
xor eax, eax
jmp 0x4551b0
sbb eax, eax
sbb eax, 0xffffffff
test eax, eax
jne 0x4551c6
mov dword [ebx + 0x5ac], 1
mov dword [esp + 0x1c], 0x4a104c
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 0x4552a6
mov ecx, dword [ebx + 0x30]
cmp ecx, esi
jne 0x4551f2
cmp dword [ebx + 0x28], esi
jl 0x4552a6
cmp ecx, esi
je 0x455200
mov ecx, dword [ecx + 4]
push ecx
call fcn.0045c6a0
add esp, 4
jmp 0x455224
mov ecx, dword [esp + 0x49c]
lea eax, [esp + 0x50]
push eax
push ecx
mov ecx, ebx
call fcn.00454990
mov edx, dword [esp + 0x50]
mov ebp, eax
push edx
push ebp
call fcn.0045c630
add esp, 8
mov edi, eax
cmp edi, esi
mov dword [esp + 0x20], edi
je 0x455378
mov ecx, edi
call fcn.0045c7d0
test eax, eax
je 0x45528e
mov esi, dword [ebx + 0x24]
test esi, esi
je 0x455254
mov ecx, esi
call fcn.00417ea0
push esi
call fcn.0047c265
add esp, 4
push 8
call fcn.0047c23c
mov esi, eax
add esp, 4
mov dword [esp + 0x54], esi
test esi, esi
mov byte [esp + 0x494], 3
je 0x455281
mov ecx, edi
call fcn.0045c7d0
push eax
mov ecx, esi
call fcn.00417d60
jmp 0x455283
xor eax, eax
mov byte [esp + 0x494], 0
mov dword [ebx + 0x24], eax
mov eax, dword [esp + 0x1c]
test eax, eax
jne 0x455378
mov ecx, edi
call fcn.0045c7f0
jmp 0x45536c
cmp eax, 2
jne 0x455385
mov eax, dword [ebx + 0x30]
test eax, eax
jne 0x4552c5
mov ecx, dword [ebx + 0x28]
test ecx, ecx
jl 0x455385
test eax, eax
je 0x4552d3
mov eax, dword [eax + 4]
push eax
call fcn.0045a860
add esp, 4
jmp 0x4552f7
mov ecx, dword [esp + 0x49c]
lea eax, [esp + 0x50]
push eax
push ecx
mov ecx, ebx
call fcn.00454990
mov edx, dword [esp + 0x50]
mov ebp, eax
push edx
push ebp
call fcn.0045a7d0
add esp, 8
mov edi, eax
test edi, edi
mov dword [esp + 0x10], edi
je 0x455378
mov ecx, edi
call fcn.0045aa70
test eax, eax
je 0x45535d
mov esi, dword [ebx + 0x24]
test esi, esi
je 0x455323
mov ecx, esi
call fcn.00417ea0
push esi
call fcn.0047c265
add esp, 4
push 8
call fcn.0047c23c
mov esi, eax
add esp, 4
mov dword [esp + 0x54], esi
test esi, esi
mov byte [esp + 0x494], 4
je 0x455350
mov ecx, edi
call fcn.0045aa70
push eax
mov ecx, esi
call fcn.00417d60
jmp 0x455352
xor eax, eax
mov byte [esp + 0x494], 0
mov dword [ebx + 0x24], eax
mov eax, dword [esp + 0x1c]
test eax, eax
jne 0x455378
mov ecx, edi
call fcn.0045aa80
mov dword [esp + 0x1c], eax
mov dword [esp + 0x28], 1
test ebp, ebp
je 0x455385
push ebp
call fcn.0041ac80
add esp, 4
mov eax, dword [esp + 0x1c]
test eax, eax
jne 0x4553c7
mov eax, dword [esp + 0x18]
test eax, eax
je 0x4553af
mov ecx, dword [ebx + 0x28]
test ecx, ecx
jge 0x4553af
mov eax, dword [eax + 4]
mov dword [ebx + 0x5ac], 1
mov dword [esp + 0x1c], eax
jmp 0x4553c7
mov eax, dword [ebx + 0x1c]
mov dword [esp + 0x1c], 0x4a104c
cmp eax, 5
je 0x4553c7
mov dword [esp + 0x1c], 0x4a144c
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 0x455406
cmp dword [esi], 0
je 0x455406
mov eax, dword [edi]
push eax
call fcn.0041ac90
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 0x4553dd
cmp dword [ecx + 0x1c], 2
jne 0x455458
mov edx, dword [ecx + 0x30]
test edx, edx
jne 0x455429
mov edx, dword [ecx + 0x28]
test edx, edx
jl 0x455458
test eax, eax
je 0x455458
mov esi, ebx
mov eax, 0x4a144c
add ecx, 0xa8
cmp dword [ecx], 0
jne 0x45544a
mov edx, dword [eax]
test edx, edx
je 0x45544a
mov dword [ecx], edx
mov byte [esi], 0
add eax, 4
add ecx, 4
inc esi
cmp eax, 0x4a184c
jl 0x45543a
cmp dword [esp + 0x30], 7
jne 0x455527
lea ecx, [esp + 0x40]
push ecx
mov ecx, dword [esp + 0x3c]
push str.Differences
call fcn.00410f90
mov eax, dword [esp + 0x40]
mov ebp, dword [esp + 0x14]
cmp eax, 6
jne 0x45551c
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 0x45551c
lea edx, [esp + 0x5c]
push edx
push edi
call fcn.004117c0
mov eax, dword [esp + 0x5c]
cmp eax, 1
jne 0x4554ba
mov esi, dword [esp + 0x64]
jmp 0x455509
cmp eax, 4
jne 0x4554fc
test esi, esi
jl 0x4554f9
cmp esi, 0x100
jge 0x4554f9
cmp byte [ebx + esi], 0
je 0x4554e1
mov eax, dword [ebp + esi*4 + 0xa8]
push eax
call fcn.0041ac80
add esp, 4
mov ecx, dword [esp + 0x64]
push ecx
call fcn.0041ac90
mov dword [ebp + esi*4 + 0xa8], eax
add esp, 4
mov byte [ebx + esi], 1
inc esi
jmp 0x455509
push 0x4bb418
call fcn.0046698e
add esp, 4
lea ecx, [esp + 0x5c]
call fcn.00411340
mov ecx, dword [esp + 0x48]
inc edi
cmp edi, dword [ecx + 0xc]
jl 0x4554a0
lea ecx, [esp + 0x40]
call fcn.00411340
jmp 0x45552b
mov ebp, dword [esp + 0x14]
lea ecx, [esp + 0x30]
call fcn.00411340
mov ecx, dword [esp + 0x20]
xor edi, edi
cmp ecx, edi
je 0x455544
mov edx, dword [ecx]
push 1
call dword [edx]
mov ecx, dword [esp + 0x10]
cmp ecx, edi
je 0x455552
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 0x45569d
mov ecx, dword [0x4bb5c8]
push ebp
call fcn.004171e0
test eax, eax
mov dword [ebx], eax
jne 0x4556a3
mov esi, str..notdef
mov eax, ebp
mov dl, byte [eax]
mov cl, dl
cmp dl, byte [esi]
jne 0x4555be
test cl, cl
je 0x4555ba
mov dl, byte [eax + 1]
mov cl, dl
cmp dl, byte [esi + 1]
jne 0x4555be
add eax, 2
add esi, 2
test cl, cl
jne 0x45559a
xor eax, eax
jmp 0x4555c3
sbb eax, eax
sbb eax, 0xffffffff
test eax, eax
je 0x4556a3
mov edi, ebp
or ecx, 0xffffffff
xor eax, eax
repne scasb al, byte es:[edi]
not ecx
dec ecx
cmp ecx, 3
jne 0x455635
movsx eax, byte [ebp]
push eax
call fcn.00466318
add esp, 4
test eax, eax
je 0x455635
movsx ecx, byte [ebp + 1]
push ecx
call fcn.004663be
add esp, 4
test eax, eax
je 0x455635
movsx edx, byte [ebp + 2]
push edx
call fcn.004663be
add esp, 4
test eax, eax
je 0x455635
mov al, byte [ebp + 1]
cmp al, 0x61
jl 0x45561a
cmp al, 0x66
jle 0x45568e
cmp al, 0x41
jl 0x455622
cmp al, 0x46
jle 0x45568e
mov al, byte [ebp + 2]
cmp al, 0x61
jl 0x45562d
cmp al, 0x66
jle 0x45568e
cmp al, 0x41
jl 0x455635
cmp al, 0x46
jle 0x45568e
mov edi, ebp
or ecx, 0xffffffff
xor eax, eax
repne scasb al, byte es:[edi]
not ecx
dec ecx
cmp ecx, 2
jne 0x455696
movsx eax, byte [ebp]
push eax
call fcn.004663be
add esp, 4
test eax, eax
je 0x455696
movsx ecx, byte [ebp + 1]
push ecx
call fcn.004663be
add esp, 4
test eax, eax
je 0x455696
mov al, byte [ebp]
cmp al, 0x61
jl 0x455673
cmp al, 0x66
jle 0x45568e
cmp al, 0x41
jl 0x45567b
cmp al, 0x46
jle 0x45568e
mov al, byte [ebp + 1]
cmp al, 0x61
jl 0x455686
cmp al, 0x66
jle 0x45568e
cmp al, 0x41
jl 0x455696
cmp al, 0x46
jg 0x455696
mov dword [esp + 0x28], 1
mov edi, 1
jmp 0x4556a3
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 0x45556f
test edi, edi
je 0x4558f2
mov ecx, dword [0x4bb5c8]
call fcn.00417440
test eax, eax
je 0x4558c8
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 0x4558a9
cmp dword [ebx], 0
jne 0x4558a9
mov esi, str..notdef
mov eax, ebp
mov dl, byte [eax]
mov cl, dl
cmp dl, byte [esi]
jne 0x45573a
test cl, cl
je 0x455736
mov dl, byte [eax + 1]
mov cl, dl
cmp dl, byte [esi + 1]
jne 0x45573a
add eax, 2
add esi, 2
test cl, cl
jne 0x455716
xor eax, eax
jmp 0x45573f
sbb eax, eax
sbb eax, 0xffffffff
test eax, eax
je 0x4558a9
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 0x4557fb
cmp esi, 3
jne 0x4557bc
movsx eax, byte [ebp]
push eax
call fcn.00466318
add esp, 4
test eax, eax
je 0x4557bc
movsx ecx, byte [ebp + 1]
lea edi, [ebp + 1]
push ecx
call fcn.004663be
add esp, 4
test eax, eax
je 0x4557bc
movsx edx, byte [ebp + 2]
push edx
call fcn.004663be
add esp, 4
test eax, eax
je 0x4557bc
lea eax, [esp + 0x2c]
push eax
push 0x4971e8
push edi
call fcn.00466441
add esp, 0xc
jmp 0x455898
cmp esi, 2
jne 0x45582a
movsx ecx, byte [ebp]
push ecx
call fcn.004663be
add esp, 4
test eax, eax
je 0x45582a
movsx edx, byte [ebp + 1]
push edx
call fcn.004663be
add esp, 4
test eax, eax
je 0x45582a
lea eax, [esp + 0x2c]
push eax
push 0x4971e8
push ebp
call fcn.00466441
add esp, 0xc
jmp 0x455898
cmp esi, 2
jl 0x45582a
cmp esi, 4
jg 0x45582a
movsx ecx, byte [ebp]
push ecx
call fcn.00466396
add esp, 4
test eax, eax
je 0x45582a
movsx edx, byte [ebp + 1]
push edx
call fcn.00466396
add esp, 4
test eax, eax
je 0x45582a
push ebp
jmp 0x45588c
cmp esi, 3
jl 0x45585c
cmp esi, 5
jg 0x45585c
movsx eax, byte [ebp + 1]
lea edi, [ebp + 1]
push eax
call fcn.00466396
add esp, 4
test eax, eax
je 0x45585c
movsx ecx, byte [ebp + 2]
push ecx
call fcn.00466396
add esp, 4
test eax, eax
je 0x45585c
push edi
jmp 0x45588c
cmp esi, 4
jl 0x455898
cmp esi, 6
jg 0x455898
movsx edx, byte [ebp + 2]
lea esi, [ebp + 2]
push edx
call fcn.00466396
add esp, 4
test eax, eax
je 0x455898
movsx eax, byte [ebp + 3]
push eax
call fcn.00466396
add esp, 4
test eax, eax
je 0x455898
push esi
call fcn.00465560
add esp, 4
mov dword [esp + 0x2c], eax
mov eax, dword [esp + 0x2c]
test eax, eax
jl 0x4558a9
cmp eax, 0xff
jg 0x4558a9
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 0x4556f8
jmp 0x4558f2
mov ecx, dword [0x4bb5c8]
call fcn.00417470
test eax, eax
je 0x4558f2
xor eax, eax
lea ecx, [esp + 0x8c]
cmp dword [ecx], 0
jne 0x4558e7
mov dword [ecx], eax
inc eax
add ecx, 4
cmp eax, 0x100
jl 0x4558e0
lea ecx, [esp + 0x8c]
push ecx
call fcn.00424e40
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.00454820
mov eax, dword [esi + 0x14]
test eax, eax
je 0x4559df
mov ecx, dword [0x4bb5c8]
push eax
call fcn.00417510
mov ebp, eax
test ebp, ebp
je 0x4559df
mov ecx, 0x100
xor eax, eax
lea edi, [esp + 0x8c]
lea edx, [esp + 0x8c]
rep stosd dword es:[edi], eax
push edx
call fcn.00424e40
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.00425b60
cmp eax, 1
jl 0x4559a5
mov eax, dword [esp + 0x6c]
lea edx, [esp + 0x6c]
push 8
push edx
push eax
mov ecx, ebp
call fcn.00425b60
cmp eax, 1
jl 0x4559a5
lea ecx, [esp + 0x6c]
push eax
push ecx
push esi
mov ecx, edi
call fcn.00425aa0
inc esi
cmp esi, 0x100
jl 0x455963
mov ecx, ebp
call fcn.00425a20
mov edx, dword [esp + 0x14]
mov esi, dword [edx + 0x5a8]
test esi, esi
je 0x4559d3
mov ecx, esi
call fcn.004259b0
push esi
call fcn.0047c265
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 0x4559ec
lea ecx, [esp + 0x30]
push ecx
push str.FirstChar
mov ecx, ebx
call fcn.00410f90
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.00411340
test esi, esi
jl 0x455a38
cmp esi, 0xff
jle 0x455a3a
xor esi, esi
lea edx, [esp + 0x30]
mov ecx, ebx
push edx
push str.LastChar
call fcn.00410f90
mov eax, dword [esp + 0x30]
mov ebp, dword [esp + 0x38]
cmp eax, 1
je 0x455a5d
mov ebp, 0xff
lea ecx, [esp + 0x30]
call fcn.00411340
test ebp, ebp
jl 0x455a72
cmp ebp, 0xff
jle 0x455a77
mov ebp, 0xff
mov eax, dword [esp + 0x14]
cmp dword [eax + 0x1c], 4
jne 0x455a94
mov ecx, dword [eax + 0x38]
mov edx, dword [eax + 0x3c]
add eax, 0x38
mov dword [esp + 0x54], ecx
mov dword [esp + 0x58], edx
jmp 0x455aa4
mov dword [esp + 0x54], 0xd2f1a9fc
mov dword [esp + 0x58], 0x3f50624d
lea eax, [esp + 0x30]
mov ecx, ebx
push eax
push str.Widths
call fcn.00410f90
cmp dword [esp + 0x30], 6
jne 0x455b56
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 0x455ae1
lea ebp, [eax + esi - 1]
cmp esi, ebp
mov edi, esi
jg 0x455ca3
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.004117c0
mov eax, dword [esp + 0x40]
cmp eax, 1
je 0x455b50
cmp eax, 2
jne 0x455b3a
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 0x455b3a
mov eax, dword [esp + 0x14]
and dword [eax + 0x20], 0xfffffffe
lea ecx, [esp + 0x40]
call fcn.00411340
inc edi
add ebx, 8
cmp edi, ebp
jle 0x455afa
jmp 0x455ca3
fild dword [esp + 0x48]
jmp 0x455b1f
mov ebx, dword [esp + 0x18]
test ebx, ebx
je 0x455be8
lea ecx, [esp + 0x24]
push ecx
mov ecx, dword [ebx + 0x14]
push str.space
call fcn.004399b0
test eax, eax
je 0x455b9a
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 0x455bda
mov ecx, dword [ebx + 0x14]
lea edx, [esp + 0x24]
push edx
push eax
call fcn.004399b0
test eax, eax
je 0x455bda
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 0x455ba9
jmp 0x455ca3
mov ecx, dword [esp + 0x14]
mov ecx, dword [ecx + 0x20]
test cl, 1
je 0x455bf8
xor eax, eax
jmp 0x455c09
mov edx, ecx
and dl, 2
neg dl
sbb edx, edx
and edx, 4
add edx, 4
mov eax, edx
test ecx, 0x40000
je 0x455c14
add eax, 2
test cl, 0x40
je 0x455c1a
inc eax
mov ebx, dword [eax*4 + 0x4aedf0]
lea eax, [esp + 0x24]
push eax
push str.space
mov ecx, dword [ebx + 0x14]
call fcn.004399b0
test eax, eax
je 0x455c59
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 0x455c9a
lea ecx, [esp + 0x24]
push ecx
mov ecx, dword [ebx + 0x14]
push eax
call fcn.004399b0
test eax, eax
je 0x455c9a
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 0x455c68
lea ecx, [esp + 0x30]
call fcn.00411340
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