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

Disassembly:
push 0xffffffffffffffff
push 0x50c2ec
mov eax, dword fs:[0]
push eax
sub esp, 0x9c
push ebx
push ebp
push esi
push edi
mov eax, dword [0x65d4c0]
xor eax, esp
push eax
lea eax, [esp + 0xb0]
mov dword fs:[0], eax
mov esi, ecx
xor ebx, ebx
mov dword [esp + 0x1c], ebx
mov eax, dword [esi + 0x10]
push ecx
xor ebp, ebp
cmp dword [esi + 0x14], ebp
mov ecx, esp
mov dword [esp + 0x38], esp
mov dword [ecx], eax
jne 0x458b4d
lea ebx, [ebp + 1]
cmp eax, ebp
je 0x458a46
add dword [eax + 4], ebx
mov edi, dword [esp + 0xc8]
lea eax, [esp + 0x2c]
push edi
push eax
call fcn.0043fcf0
add esp, 0xc
mov edx, dword [esi]
mov eax, dword [edx + 0x14]
mov ecx, esi
mov dword [esp + 0xb8], ebx
call eax
cmp eax, 0x2d
jne 0x458b16
push 0x28
call fcn.004ae294
mov esi, eax
add esp, 4
mov dword [esp + 0x34], esi
mov byte [esp + 0xb8], 2
cmp esi, ebp
je 0x458ad6
mov ecx, dword [esp + 0x28]
fldz
sub esp, 0xc
fstp qword [esp + 4]
mov eax, esp
mov dword [eax], ecx
mov eax, dword [esp + 0x34]
mov dword [esp + 0x4c], esp
cmp eax, ebp
je 0x458ab0
add dword [eax + 4], ebx
push edi
call fcn.0043fbd0
fchs
fstp qword [esi + 0x18]
add esp, 0x10
mov dword [esi + 4], ebp
mov dword [esi + 8], ebp
mov dword [esi], vtable.ExprItem_Num.0
mov dword [esi + 0xc], ebp
mov dword [esi + 0x10], ebp
mov byte [esi + 0x20], 0
jmp 0x458ad8
xor esi, esi
mov edi, dword [esp + 0xc0]
mov dword [edi], esi
cmp esi, ebp
je 0x458ae8
add dword [esi + 4], ebx
mov eax, dword [esp + 0x28]
mov dword [esp + 0x1c], ebx
mov byte [esp + 0xb8], 0
cmp eax, ebp
je 0x458b0f
dec dword [eax + 4]
mov ecx, eax
add eax, 4
cmp dword [eax], ebp
jg 0x458b0f
mov edx, dword [ecx]
mov eax, dword [edx]
push ebx
call eax
mov eax, edi
jmp 0x45aaf7
mov eax, dword [esp + 0x28]
mov esi, dword [esp + 0xc0]
mov dword [esi], ebp
mov dword [esp + 0x1c], ebx
mov byte [esp + 0xb8], 0
cmp eax, ebp
je 0x45aaf5
dec dword [eax + 4]
mov ecx, eax
add eax, 4
cmp dword [eax], ebp
jg 0x45aaf5
push ebx
jmp 0x45aaef
cmp eax, ebp
je 0x458b54
inc dword [eax + 4]
mov ebp, dword [esp + 0xc8]
lea ecx, [esp + 0x1c]
push ebp
push ecx
call fcn.0043fcf0
mov eax, dword [esi + 0x14]
add esp, 8
xor edi, edi
mov ecx, esp
mov dword [esp + 0xbc], 3
mov dword [esp + 0x38], esp
mov dword [ecx], eax
cmp eax, edi
je 0x458b88
inc dword [eax + 4]
lea edx, [esp + 0x18]
push ebp
push edx
call fcn.0043fcf0
add esp, 0xc
mov eax, dword [esi]
mov edx, dword [eax + 0x14]
mov ecx, esi
mov byte [esp + 0xb8], 4
call edx
cmp eax, 0x5e
jg 0x45988c
je 0x459795
sub eax, 0x25
cmp eax, 0x19
ja case.default.0x45989a
movzx eax, byte [eax + 0x45ab34]
jmp dword [eax*4 + 0x45ab14]
mov ecx, dword [esp + 0x18]
cmp ecx, edi
jne 0x458c1b
mov eax, dword [esp + 0x14]
cmp eax, edi
mov esi, dword [esp + 0xc0]
mov dword [esi], eax
je 0x458bec
inc dword [eax + 4]
mov dword [esp + 0x1c], 1
lea ecx, [esp + 0x14]
mov byte [esp + 0xb8], 3
call fcn.00401960
lea ecx, [esp + 0x18]
mov byte [esp + 0xb8], 0
call fcn.00401960
jmp 0x45aaf5
cmp dword [esp + 0x14], edi
jne 0x458c38
mov esi, dword [esp + 0xc0]
mov eax, 1
mov dword [esi], ecx
add dword [ecx + 4], eax
mov dword [esp + 0x1c], eax
jmp 0x458bf4
mov edx, dword [ecx]
mov eax, dword [edx + 0x14]
call eax
mov ecx, dword [esp + 0x14]
mov edx, dword [ecx]
mov esi, eax
mov eax, dword [edx + 0x14]
call eax
mov edi, eax
cmp esi, 0x101
je 0x458c5e
cmp esi, 0x804
jne 0x458c76
cmp edi, 0x101
je 0x4590e8
cmp edi, 0x804
je 0x4590e8
cmp esi, 0x103
jne 0x458d3f
cmp edi, 0x105
jne 0x458cd4
mov eax, dword [esp + 0x14]
mov edx, dword [esp + 0x18]
mov ecx, dword [eax + 0xc]
mov esi, dword [edx + 0xc]
mov eax, dword [eax + 0x10]
add esi, ecx
mov ecx, dword [edx + 0x10]
adc ecx, eax
push 0x14
mov dword [esp + 0x24], esi
mov dword [esp + 0x28], ecx
call fcn.004ae294
add esp, 4
test eax, eax
je 0x458ccb
lea edx, [esp + 0x20]
push edx
mov ecx, eax
call fcn.00447bd0
test eax, eax
jmp 0x458bde
xor eax, eax
test eax, eax
jmp 0x458bde
mov ecx, dword [esp + 0x14]
mov eax, dword [ecx]
mov edx, dword [eax + 0x2c]
push ebp
call edx
call fcn.004ced60
test eax, eax
jne 0x458cf4
mov eax, dword [esp + 0x18]
test eax, eax
jmp 0x458bde
push 0
push 0
push 0
push eax
lea ecx, [esp + 0x30]
call fcn.0041a070
mov eax, dword [esp + 0x18]
mov ecx, dword [eax + 0xc]
add ecx, dword [esp + 0x20]
mov edx, dword [eax + 0x10]
adc edx, dword [esp + 0x24]
push 0x14
mov dword [esp + 0x24], ecx
mov dword [esp + 0x28], edx
call fcn.004ae294
add esp, 4
test eax, eax
je 0x458ccb
lea ecx, [esp + 0x20]
push ecx
mov ecx, eax
call fcn.00447bd0
test eax, eax
jmp 0x458bde
cmp esi, 0x105
jne 0x458e11
cmp edi, esi
jne 0x458d94
mov esi, dword [esp + 0x18]
mov edi, dword [esp + 0x14]
push 0x14
call fcn.004ae294
add esp, 4
test eax, eax
je 0x458ccb
mov ecx, dword [edi + 0xc]
mov edx, dword [esi + 0xc]
mov edi, dword [edi + 0x10]
add edx, ecx
mov ecx, dword [esi + 0x10]
adc ecx, edi
mov dword [esp + 0x20], edx
lea edx, [esp + 0x20]
mov dword [esp + 0x24], ecx
push edx
mov ecx, eax
call fcn.00447e60
test eax, eax
jmp 0x458bde
cmp edi, 0x103
jne 0x458da9
mov eax, dword [esp + 0x18]
mov edx, dword [esp + 0x14]
jmp 0x458c92
mov ecx, dword [esp + 0x14]
mov eax, dword [ecx]
mov edx, dword [eax + 0x2c]
push ebp
call edx
call fcn.004ced60
test eax, eax
je 0x458ce9
push 0
push 0
push 0
push eax
lea ecx, [esp + 0x30]
call fcn.0041a070
mov esi, dword [esp + 0x18]
push 0x14
call fcn.004ae294
add esp, 4
test eax, eax
je 0x458ccb
mov ecx, dword [esi + 0xc]
add ecx, dword [esp + 0x20]
mov edx, dword [esi + 0x10]
adc edx, dword [esp + 0x24]
mov dword [esp + 0x20], ecx
lea ecx, [esp + 0x20]
push ecx
mov ecx, eax
mov dword [esp + 0x28], edx
call fcn.00447e60
test eax, eax
jmp 0x458bde
cmp esi, 0x10a
jne 0x458f63
cmp edi, esi
jne 0x458eb6
mov ebx, dword [esp + 0x18]
mov ebp, dword [esp + 0x14]
push 0x18
call fcn.004ae294
add esp, 4
mov dword [esp + 0x28], eax
mov byte [esp + 0xb8], 5
test eax, eax
je 0x458e52
mov ecx, eax
call fcn.00446be0
mov esi, eax
jmp 0x458e54
xor esi, esi
lea edi, [esi + 0xc]
add ebx, 0xc
push ebx
mov ecx, edi
mov byte [esp + 0xbc], 4
call fcn.00412dd0
add ebp, 0xc
push ebp
mov ecx, edi
call fcn.00427990
mov edi, dword [esp + 0xc0]
mov dword [edi], esi
test esi, esi
je 0x458e85
inc dword [esi + 4]
mov dword [esp + 0x1c], 1
lea ecx, [esp + 0x14]
mov byte [esp + 0xb8], 3
call fcn.00401960
lea ecx, [esp + 0x18]
mov byte [esp + 0xb8], 0
call fcn.00401960
mov eax, edi
jmp 0x45aaf7
mov ecx, dword [esp + 0x14]
mov edx, dword [ecx]
mov edx, dword [edx + 0x28]
mov esi, dword [esp + 0x18]
lea eax, [esp + 0x7c]
push eax
call edx
mov edi, eax
mov eax, dword [esi]
mov edx, dword [eax + 0x28]
lea ecx, [esp + 0x60]
push ecx
mov ecx, esi
mov byte [esp + 0xbc], 6
call edx
push edi
push eax
lea eax, [esp + 0x28]
push eax
mov byte [esp + 0xc4], 7
call fcn.0042e900
add esp, 0xc
lea ecx, [esp + 0x60]
call fcn.004051e0
lea ecx, [esp + 0x7c]
mov byte [esp + 0xb8], 0xa
call fcn.004051e0
push 0x10
call fcn.004ae294
add esp, 4
mov dword [esp + 0x28], eax
mov byte [esp + 0xb8], 0xb
test eax, eax
je 0x458f3b
mov ecx, dword [esp + 0x20]
push ecx
mov ecx, eax
call fcn.00450290
jmp 0x458f3d
xor eax, eax
mov esi, dword [esp + 0xc0]
mov dword [esi], eax
test eax, eax
je 0x458f4d
inc dword [eax + 4]
lea ecx, [esp + 0x20]
mov dword [esp + 0x1c], 1
call fcn.004051e0
jmp 0x458bf4
cmp esi, 0x816
jne 0x459064
mov ebx, dword [esp + 0x18]
push 0x14
call fcn.004ae294
add esp, 4
mov dword [esp + 0x20], eax
mov byte [esp + 0xb8], 0xc
test eax, eax
je 0x458f9a
push 0
mov ecx, eax
call fcn.0042b840
mov esi, eax
jmp 0x458f9c
xor esi, esi
mov edx, dword [ebx + 0xc]
add ebx, 0x10
push ebx
lea ecx, [esi + 0x10]
mov byte [esp + 0xbc], 4
mov dword [esi + 0xc], edx
call fcn.00425750
cmp edi, 0x816
jne 0x458fe4
mov eax, dword [esp + 0x14]
push eax
mov ecx, esi
call fcn.00439ba0
mov edi, dword [esp + 0xc0]
mov eax, 1
mov dword [edi], esi
add dword [esi + 4], eax
mov dword [esp + 0x1c], eax
jmp 0x458e8d
mov ecx, dword [esp + 0x14]
fldz
sub esp, 0xc
fstp qword [esp + 4]
mov eax, esp
mov dword [eax], ecx
mov eax, dword [esp + 0x20]
mov dword [esp + 0x2c], esp
mov ebx, 1
test eax, eax
je 0x459009
add dword [eax + 4], ebx
push ebp
call fcn.0043fbd0
add esp, 0x10
call fcn.004ced60
push eax
lea ecx, [esp + 0xa0]
call fcn.0042b840
lea edx, [esp + 0x9c]
push edx
mov ecx, esi
mov byte [esp + 0xbc], 0xd
call fcn.00439ba0
mov edi, dword [esp + 0xc0]
mov dword [edi], esi
add dword [esi + 4], ebx
lea ecx, [esp + 0x9c]
mov dword [esp + 0x1c], ebx
mov byte [esp + 0xb8], 4
call fcn.0042ba30
jmp 0x458e8d
mov ecx, dword [esp + 0x14]
mov eax, dword [ecx]
mov eax, dword [eax + 0x28]
mov esi, dword [esp + 0x18]
lea edx, [esp + 0x8c]
push edx
call eax
mov edi, eax
mov edx, dword [esi]
mov edx, dword [edx + 0x28]
lea eax, [esp + 0x84]
push eax
mov ecx, esi
mov byte [esp + 0xbc], 0xe
call edx
push edi
push eax
lea eax, [esp + 0x28]
push eax
mov byte [esp + 0xc4], 0xf
call fcn.0042e900
add esp, 0xc
lea ecx, [esp + 0x84]
call fcn.004051e0
lea ecx, [esp + 0x8c]
mov byte [esp + 0xb8], 0x12
call fcn.004051e0
push 0x10
call fcn.004ae294
add esp, 4
mov dword [esp + 0x28], eax
mov byte [esp + 0xb8], 0x13
jmp 0x458f29
xor ebx, ebx
cmp esi, 0x101
jne 0x459166
cmp edi, esi
jne 0x459166
mov edx, dword [esp + 0x18]
push ebx
push 0x65ad08
push 0x65a4e0
push ebx
push edx
call fcn.004d019b
mov eax, dword [eax + 0xc]
add esp, 0x14
test al, 1
je 0x45913c
mov eax, dword [esp + 0x14]
push ebx
push 0x65ad08
push 0x65a4e0
push ebx
push eax
call fcn.004d019b
add esp, 0x14
test byte [eax + 0xc], 1
je 0x459166
mov ebx, 1
jmp 0x459166
test al, 2
je 0x459166
mov ecx, dword [esp + 0x14]
push 0
push 0x65ad08
push 0x65a4e0
push 0
push ecx
call fcn.004d019b
add esp, 0x14
test byte [eax + 0xc], 2
je 0x459166
mov ebx, 2
mov ecx, dword [esp + 0x18]
mov edx, dword [ecx]
mov eax, dword [edx + 0x2c]
push ebp
call eax
fstp qword [esp + 0x20]
mov ecx, dword [esp + 0x14]
mov edx, dword [ecx]
mov eax, dword [edx + 0x2c]
push ebp
call eax
fadd qword [esp + 0x20]
push 0x28
fstp qword [esp + 0x24]
call fcn.004ae294
add esp, 4
test eax, eax
je 0x458ccb
fld qword [esp + 0x20]
push 0
push ebx
sub esp, 8
mov ecx, eax
fstp qword [esp]
call fcn.0042bb40
test eax, eax
jmp 0x458bde
mov ecx, dword [esp + 0x18]
cmp ecx, edi
je 0x459214
cmp dword [esp + 0x14], edi
je 0x459214
mov edx, dword [ecx]
mov eax, dword [edx + 0x14]
call eax
mov ecx, dword [esp + 0x14]
mov edx, dword [ecx]
mov esi, eax
mov eax, dword [edx + 0x14]
call eax
cmp esi, 0x103
jne 0x459214
cmp eax, esi
jne 0x459214
mov esi, dword [esp + 0x18]
mov edi, dword [esp + 0x14]
push 0x14
call fcn.004ae294
add esp, 4
test eax, eax
je 0x458ccb
mov ecx, dword [edi + 0xc]
mov edx, dword [esi + 0xc]
mov edi, dword [edi + 0x10]
sub edx, ecx
mov ecx, dword [esi + 0x10]
sbb ecx, edi
jmp 0x458d79
push 0x28
call fcn.004ae294
mov esi, eax
add esp, 4
mov dword [esp + 0x20], esi
mov byte [esp + 0xb8], 0x14
mov ebx, 1
cmp esi, edi
je 0x45929a
mov ecx, dword [esp + 0x18]
fldz
push edi
push edi
sub esp, 0xc
mov eax, esp
fstp qword [esp + 4]
mov dword [eax], ecx
mov eax, dword [esp + 0x2c]
mov dword [esp + 0x3c], esp
cmp eax, edi
je 0x459257
add dword [eax + 4], ebx
push ebp
call fcn.0043fbd0
fstp qword [esp + 0x50]
mov edx, dword [esp + 0x2c]
fldz
add esp, 4
fstp qword [esp + 4]
mov eax, esp
mov dword [eax], edx
mov eax, dword [esp + 0x28]
mov dword [esp + 0x3c], esp
cmp eax, edi
je 0x459281
add dword [eax + 4], ebx
push ebp
call fcn.0043fbd0
fsubr qword [esp + 0x50]
add esp, 8
mov ecx, esi
fstp qword [esp]
call fcn.0042bb40
jmp 0x45929c
xor eax, eax
mov esi, dword [esp + 0xc0]
mov dword [esi], eax
cmp eax, edi
je 0x4592ac
add dword [eax + 4], ebx
mov dword [esp + 0x1c], ebx
jmp 0x458bf4
push 0x28
call fcn.004ae294
mov esi, eax
add esp, 4
mov dword [esp + 0x20], esi
mov byte [esp + 0xb8], 0x15
mov ebx, 1
cmp esi, edi
je 0x45929a
mov ecx, dword [esp + 0x18]
fldz
push edi
push edi
sub esp, 0xc
mov eax, esp
fstp qword [esp + 4]
mov dword [eax], ecx
mov eax, dword [esp + 0x2c]
mov dword [esp + 0x3c], esp
cmp eax, edi
je 0x4592f8
add dword [eax + 4], ebx
push ebp
call fcn.0043fbd0
fstp qword [esp + 0x50]
mov edx, dword [esp + 0x2c]
fldz
add esp, 4
fstp qword [esp + 4]
mov eax, esp
mov dword [eax], edx
mov eax, dword [esp + 0x28]
mov dword [esp + 0x3c], esp
cmp eax, edi
je 0x459322
add dword [eax + 4], ebx
push ebp
call fcn.0043fbd0
fmul qword [esp + 0x50]
add esp, 8
mov ecx, esi
fstp qword [esp]
call fcn.0042bb40
jmp 0x45929c
cmp dword [esp + 0x18], edi
jne 0x45936f
push 0x28
call fcn.004ae294
add esp, 4
cmp eax, edi
je 0x459368
fldz
push edi
push edi
sub esp, 8
mov ecx, eax
fstp qword [esp]
call fcn.0042bb40
jmp 0x458bdc
xor eax, eax
jmp 0x458bdc
mov ecx, dword [esp + 0x14]
cmp ecx, edi
jne 0x45939b
push 0x28
call fcn.004ae294
add esp, 4
cmp eax, edi
je 0x459368
fldz
push edi
push edi
sub esp, 8
mov ecx, eax
fstp qword [esp]
call fcn.0042bb40
jmp 0x458bdc
mov eax, dword [ecx]
mov edx, dword [eax + 0x2c]
push ebp
call edx
fst qword [esp + 0x38]
fldz
fucompp
fnstsw ax
test ah, 0x44
jp 0x4593d6
push 0x28
call fcn.004ae294
add esp, 4
cmp eax, edi
je 0x459368
fldz
push edi
push edi
sub esp, 8
mov ecx, eax
fstp qword [esp]
call fcn.0042bb40
jmp 0x458bdc
mov ecx, dword [esp + 0x18]
mov eax, dword [ecx]
mov edx, dword [eax + 0x2c]
push ebp
call edx
fdiv qword [esp + 0x38]
push 0x28
fstp qword [esp + 0x3c]
call fcn.004ae294
add esp, 4
cmp eax, edi
je 0x459368
fld qword [esp + 0x38]
push edi
push edi
sub esp, 8
mov ecx, eax
fstp qword [esp]
call fcn.0042bb40
jmp 0x458bdc
mov ecx, dword [esp + 0x14]
mov eax, dword [ecx]
mov edx, dword [eax + 0x2c]
push ebp
call edx
fst qword [esp + 0x2c]
fldz
push 0x28
fucompp
fnstsw ax
test ah, 0x44
jnp 0x459346
call fcn.004ae294
mov esi, eax
add esp, 4
mov dword [esp + 0x20], esi
mov byte [esp + 0xb8], 0x17
cmp esi, edi
je 0x459368
mov ecx, dword [esp + 0x18]
fldz
push edi
push edi
sub esp, 0xc
mov eax, esp
fstp qword [esp + 4]
mov dword [eax], ecx
mov eax, dword [esp + 0x2c]
mov dword [esp + 0x3c], esp
cmp eax, edi
je 0x459475
inc dword [eax + 4]
push ebp
call fcn.0043fbd0
fnstcw word [esp + 0x34]
movzx eax, word [esp + 0x34]
or eax, 0xc00
mov dword [esp + 0x38], eax
fldcw word [esp + 0x38]
fistp qword [esp + 0x50]
mov edx, dword [esp + 0x50]
fldcw word [esp + 0x34]
fld qword [esp + 0x44]
fnstcw word [esp + 0x34]
movzx eax, word [esp + 0x34]
or eax, 0xc00
mov dword [esp + 0x38], eax
mov eax, edx
fldcw word [esp + 0x38]
xor edx, edx
fistp qword [esp + 0x44]
mov ecx, dword [esp + 0x44]
div ecx
fldcw word [esp + 0x34]
mov dword [esp + 0x38], edx
fild dword [esp + 0x38]
test edx, edx
jge 0x4594db
fadd qword [0x519a30]
add esp, 8
mov ecx, esi
fstp qword [esp]
call fcn.0042bb40
jmp 0x458bdc
mov ecx, dword [esp + 0x18]
cmp ecx, edi
je 0x45959e
cmp dword [esp + 0x14], edi
je 0x45959e
mov edx, dword [ecx]
mov eax, dword [edx + 0x14]
call eax
mov ecx, dword [esp + 0x14]
mov edx, dword [ecx]
mov esi, eax
mov eax, dword [edx + 0x14]
call eax
cmp esi, 0x103
jne 0x45959e
cmp eax, esi
jne 0x45959e
mov ecx, dword [esp + 0x18]
push 0
push 0x65adcc
push 0x65a4e0
push 0
push ecx
call fcn.004d019b
mov edx, dword [esp + 0x28]
push 0
push 0x65adcc
push 0x65a4e0
push 0
push edx
mov ebx, eax
call fcn.004d019b
push 0x28
mov edi, eax
call fcn.004ae294
mov esi, eax
add esp, 0x2c
test esi, esi
je 0x458ccb
mov eax, dword [edi + 0x10]
mov ecx, dword [edi + 0xc]
push 0
push 0
push eax
push ecx
lea ecx, [ebx + 0xc]
call fcn.004380e0
movzx edx, al
mov dword [esp + 0x28], edx
sub esp, 8
fild dword [esp + 0x30]
mov ecx, esi
fstp qword [esp]
call fcn.0042bb40
test eax, eax
jmp 0x458bde
push 0x28
call fcn.004ae294
mov esi, eax
add esp, 4
mov dword [esp + 0x20], esi
mov byte [esp + 0xb8], 0x18
mov ebx, 1
cmp esi, edi
je 0x45929a
mov ecx, dword [esp + 0x18]
fldz
sub esp, 0xc
fstp qword [esp + 4]
mov eax, esp
mov dword [eax], ecx
mov eax, dword [esp + 0x24]
mov dword [esp + 0x34], esp
cmp eax, edi
je 0x4595e3
add dword [eax + 4], ebx
push ebp
call fcn.0043fbd0
fstp qword [esp + 0x3c]
mov edx, dword [esp + 0x24]
fldz
add esp, 4
fstp qword [esp + 4]
mov eax, esp
mov dword [eax], edx
mov eax, dword [esp + 0x20]
mov dword [esp + 0x34], esp
cmp eax, edi
je 0x45960d
add dword [eax + 4], ebx
push ebp
call fcn.0043fbd0
fcomp qword [esp + 0x3c]
add esp, 0x10
mov dword [esp + 0x20], ebx
fnstsw ax
test ah, 0x41
je 0x459629
mov dword [esp + 0x20], edi
fild dword [esp + 0x20]
push edi
push edi
sub esp, 8
mov ecx, esi
fstp qword [esp]
call fcn.0042bb40
jmp 0x45929c
mov ecx, dword [esp + 0x18]
cmp ecx, edi
je 0x4596f2
cmp dword [esp + 0x14], edi
je 0x4596f2
mov eax, dword [ecx]
mov edx, dword [eax + 0x14]
call edx
mov ecx, dword [esp + 0x14]
mov esi, eax
mov eax, dword [ecx]
mov edx, dword [eax + 0x14]
call edx
cmp esi, 0x103
jne 0x4596f2
cmp eax, esi
jne 0x4596f2
mov eax, dword [esp + 0x18]
push 0
push 0x65adcc
push 0x65a4e0
push 0
push eax
call fcn.004d019b
mov ecx, dword [esp + 0x28]
push 0
push 0x65adcc
push 0x65a4e0
push 0
push ecx
mov ebx, eax
call fcn.004d019b
push 0x28
mov edi, eax
call fcn.004ae294
mov esi, eax
add esp, 0x2c
test esi, esi
je 0x458ccb
mov edx, dword [edi + 0x10]
mov eax, dword [edi + 0xc]
push 0
push 0
push edx
push eax
lea ecx, [ebx + 0xc]
call fcn.00438100
movzx ecx, al
mov dword [esp + 0x28], ecx
sub esp, 8
fild dword [esp + 0x30]
mov ecx, esi
fstp qword [esp]
call fcn.0042bb40
test eax, eax
jmp 0x458bde
push 0x28
call fcn.004ae294
mov esi, eax
add esp, 4
mov dword [esp + 0x20], esi
mov byte [esp + 0xb8], 0x19
mov ebx, 1
cmp esi, edi
je 0x45929a
mov edx, dword [esp + 0x18]
fldz
sub esp, 0xc
fstp qword [esp + 4]
mov eax, esp
mov dword [eax], edx
mov eax, dword [esp + 0x24]
mov dword [esp + 0x34], esp
cmp eax, edi
je 0x459737
add dword [eax + 4], ebx
push ebp
call fcn.0043fbd0
fstp qword [esp + 0x3c]
mov ecx, dword [esp + 0x24]
fldz
add esp, 4
fstp qword [esp + 4]
mov eax, esp
mov dword [eax], ecx
mov eax, dword [esp + 0x20]
mov dword [esp + 0x34], esp
cmp eax, edi
je 0x459761
add dword [eax + 4], ebx
push ebp
call fcn.0043fbd0
fcomp qword [esp + 0x3c]
add esp, 0x10
mov dword [esp + 0x20], ebx
fnstsw ax
test ah, 5
jnp 0x45977d
mov dword [esp + 0x20], edi
fild dword [esp + 0x20]
push edi
push edi
sub esp, 8
mov ecx, esi
fstp qword [esp]
call fcn.0042bb40
jmp 0x45929c
push 0x28
call fcn.004ae294
mov esi, eax
add esp, 4
mov dword [esp + 0x20], esi
mov byte [esp + 0xb8], 0x16
mov ebx, 1
cmp esi, edi
je 0x459825
mov edx, dword [esp + 0x18]
fldz
push edi
push edi
sub esp, 0xc
mov eax, esp
fstp qword [esp + 4]
mov dword [eax], edx
mov eax, dword [esp + 0x2c]
mov dword [esp + 0x3c], esp
cmp eax, edi
je 0x4597d8
add dword [eax + 4], ebx
push ebp
call fcn.0043fbd0
fstp qword [esp + 0x44]
mov ecx, dword [esp + 0x2c]
fldz
add esp, 4
fstp qword [esp + 4]
mov eax, esp
mov dword [eax], ecx
mov eax, dword [esp + 0x28]
mov dword [esp + 0x3c], esp
cmp eax, edi
je 0x459802
add dword [eax + 4], ebx
push ebp
call fcn.0043fbd0
fld qword [esp + 0x44]
add esp, 0x10
fxch st(1)
call fcn.004d2150
sub esp, 8
mov ecx, esi
fstp qword [esp]
call fcn.0042bb40
jmp 0x459827
xor eax, eax
mov esi, dword [esp + 0xc0]
mov dword [esi], eax
cmp eax, edi
je 0x459837
add dword [eax + 4], ebx
mov eax, dword [esp + 0x14]
mov dword [esp + 0x1c], ebx
mov byte [esp + 0xb8], 3
cmp eax, edi
je 0x459862
dec dword [eax + 4]
mov ecx, eax
add eax, 4
cmp dword [eax], edi
jg 0x45985e
mov edx, dword [ecx]
mov eax, dword [edx]
push ebx
call eax
mov dword [esp + 0x14], edi
mov eax, dword [esp + 0x18]
mov byte [esp + 0xb8], 0
cmp eax, edi
je 0x45aaf5
dec dword [eax + 4]
mov ecx, eax
add eax, 4
cmp dword [eax], edi
jg 0x45aaf5
push ebx
jmp 0x45aaef
sub eax, 0x400
cmp eax, 5
ja case.default.0x45989a
jmp dword [eax*4 + 0x45ab50]
mov ecx, dword [esp + 0x18]
cmp ecx, edi
je 0x459952
cmp dword [esp + 0x14], edi
je 0x459952
mov edx, dword [ecx]
mov eax, dword [edx + 0x14]
call eax
mov ecx, dword [esp + 0x14]
mov edx, dword [ecx]
mov esi, eax
mov eax, dword [edx + 0x14]
call eax
cmp esi, 0x103
jne 0x459952
cmp eax, esi
jne 0x459952
mov ecx, dword [esp + 0x18]
push 0
push 0x65adcc
push 0x65a4e0
push 0
push ecx
call fcn.004d019b
mov edx, dword [esp + 0x28]
push 0
push 0x65adcc
push 0x65a4e0
push 0
push edx
mov ebx, eax
call fcn.004d019b
push 0x28
mov edi, eax
call fcn.004ae294
mov esi, eax
add esp, 0x2c
test esi, esi
je 0x458ccb
mov eax, dword [edi + 0x10]
mov ecx, dword [edi + 0xc]
push 0
push 0
push eax
push ecx
lea ecx, [ebx + 0xc]
call fcn.00438120
movzx edx, al
mov dword [esp + 0x28], edx
sub esp, 8
fild dword [esp + 0x30]
mov ecx, esi
fstp qword [esp]
call fcn.0042bb40
test eax, eax
jmp 0x458bde
push 0x28
call fcn.004ae294
mov esi, eax
add esp, 4
mov dword [esp + 0x20], esi
mov byte [esp + 0xb8], 0x1a
mov ebx, 1
cmp esi, edi
je 0x45929a
mov ecx, dword [esp + 0x18]
fldz
sub esp, 0xc
fstp qword [esp + 4]
mov eax, esp
mov dword [eax], ecx
mov eax, dword [esp + 0x24]
mov dword [esp + 0x34], esp
cmp eax, edi
je 0x459997
add dword [eax + 4], ebx
push ebp
call fcn.0043fbd0
fstp qword [esp + 0x3c]
mov edx, dword [esp + 0x24]
fldz
add esp, 4
fstp qword [esp + 4]
mov eax, esp
mov dword [eax], edx
mov eax, dword [esp + 0x20]
mov dword [esp + 0x34], esp
cmp eax, edi
je 0x4599c1
add dword [eax + 4], ebx
push ebp
call fcn.0043fbd0
fcomp qword [esp + 0x3c]
add esp, 0x10
mov dword [esp + 0x20], ebx
fnstsw ax
test ah, 1
je 0x4599dd
mov dword [esp + 0x20], edi
fild dword [esp + 0x20]
push edi
push edi
sub esp, 8
mov ecx, esi
fstp qword [esp]
call fcn.0042bb40
jmp 0x45929c
mov ecx, dword [esp + 0x18]
cmp ecx, edi
je 0x459aa6
cmp dword [esp + 0x14], edi
je 0x459aa6
mov eax, dword [ecx]
mov edx, dword [eax + 0x14]
call edx
mov ecx, dword [esp + 0x14]
mov esi, eax
mov eax, dword [ecx]
mov edx, dword [eax + 0x14]
call edx
cmp esi, 0x103
jne 0x459aa6
cmp eax, esi
jne 0x459aa6
mov eax, dword [esp + 0x18]
push 0
push 0x65adcc
push 0x65a4e0
push 0
push eax
call fcn.004d019b
mov ecx, dword [esp + 0x28]
push 0
push 0x65adcc
push 0x65a4e0
push 0
push ecx
mov ebx, eax
call fcn.004d019b
push 0x28
mov edi, eax
call fcn.004ae294
mov esi, eax
add esp, 0x2c
test esi, esi
je 0x458ccb
mov edx, dword [edi + 0x10]
mov eax, dword [edi + 0xc]
push 0
push 0
push edx
push eax
lea ecx, [ebx + 0xc]
call fcn.0041a0d0
movzx ecx, al
mov dword [esp + 0x28], ecx
sub esp, 8
fild dword [esp + 0x30]
mov ecx, esi
fstp qword [esp]
call fcn.0042bb40
test eax, eax
jmp 0x458bde
push 0x28
call fcn.004ae294
mov esi, eax
add esp, 4
mov dword [esp + 0x20], esi
mov byte [esp + 0xb8], 0x1b
mov ebx, 1
cmp esi, edi
je 0x45929a
mov edx, dword [esp + 0x18]
fldz
sub esp, 0xc
fstp qword [esp + 4]
mov eax, esp
mov dword [eax], edx
mov eax, dword [esp + 0x24]
mov dword [esp + 0x34], esp
cmp eax, edi
je 0x459aeb
add dword [eax + 4], ebx
push ebp
call fcn.0043fbd0
fstp qword [esp + 0x3c]
mov ecx, dword [esp + 0x24]
fldz
add esp, 4
fstp qword [esp + 4]
mov eax, esp
mov dword [eax], ecx
mov eax, dword [esp + 0x20]
mov dword [esp + 0x34], esp
cmp eax, edi
je 0x459b15
add dword [eax + 4], ebx
push ebp
call fcn.0043fbd0
fcomp qword [esp + 0x3c]
add esp, 0x10
mov dword [esp + 0x20], ebx
fnstsw ax
test ah, 0x41
jnp 0x459b31
mov dword [esp + 0x20], edi
fild dword [esp + 0x20]
push edi
push edi
sub esp, 8
mov ecx, esi
fstp qword [esp]
call fcn.0042bb40
jmp 0x45929c
push 0x28
call fcn.004ae294
mov esi, eax
add esp, 4
mov dword [esp + 0x20], esi
mov byte [esp + 0xb8], 0x1c
mov ebx, 1
cmp esi, edi
je 0x45929a
mov edx, dword [esp + 0x18]
push ecx
mov eax, esp
mov dword [eax], edx
mov eax, dword [esp + 0x1c]
mov dword [esp + 0x2c], esp
cmp eax, edi
je 0x459b86
add dword [eax + 4], ebx
push ebp
call fcn.0043fc60
add esp, 8
cmp eax, edi
je 0x459bbc
push ecx
mov ecx, dword [esp + 0x18]
mov eax, esp
mov dword [eax], ecx
mov eax, dword [esp + 0x18]
mov dword [esp + 0x2c], esp
cmp eax, edi
je 0x459bab
add dword [eax + 4], ebx
push ebp
call fcn.0043fc60
add esp, 8
mov dword [esp + 0x20], ebx
cmp eax, edi
jne 0x459bc0
mov dword [esp + 0x20], edi
fild dword [esp + 0x20]
push edi
push edi
sub esp, 8
mov ecx, esi
fstp qword [esp]
call fcn.0042bb40
jmp 0x45929c
push 0x28
call fcn.004ae294
mov esi, eax
add esp, 4
mov dword [esp + 0x20], esi
mov byte [esp + 0xb8], 0x1d
mov ebx, 1
cmp esi, edi
je 0x45929a
mov edx, dword [esp + 0x18]
push ecx
mov eax, esp
mov dword [eax], edx
mov eax, dword [esp + 0x1c]
mov dword [esp + 0x2c], esp
cmp eax, edi
je 0x459c15
add dword [eax + 4], ebx
push ebp
call fcn.0043fc60
add esp, 8
cmp eax, edi
jne 0x459c4b
push ecx
mov ecx, dword [esp + 0x18]
mov eax, esp
mov dword [eax], ecx
mov eax, dword [esp + 0x18]
mov dword [esp + 0x2c], esp
cmp eax, edi
je 0x459c3a
add dword [eax + 4], ebx
push ebp
call fcn.0043fc60
add esp, 8
mov dword [esp + 0x20], edi
cmp eax, edi
je 0x459c4f
mov dword [esp + 0x20], ebx
fild dword [esp + 0x20]
push edi
push edi
sub esp, 8
mov ecx, esi
fstp qword [esp]
call fcn.0042bb40
jmp 0x45929c
mov ecx, dword [esp + 0x18]
cmp ecx, edi
je 0x459fa0
mov edx, dword [ecx]
mov eax, dword [edx + 0x14]
call eax
mov esi, eax
cmp esi, 0x101
je 0x459efd
cmp esi, 0x804
je 0x459efd
cmp esi, 0x102
jne 0x459da2
push 0x28
call fcn.004ae294
mov esi, eax
add esp, 4
mov dword [esp + 0x20], esi
mov byte [esp + 0xb8], 0x1f
cmp esi, edi
je 0x459d45
push edi
push edi
push ecx
mov ecx, dword [esp + 0x20]
mov eax, esp
mov dword [eax], ecx
mov eax, dword [esp + 0x20]
mov dword [esp + 0x34], esp
cmp eax, edi
je 0x459cda
inc dword [eax + 4]
lea edx, [esp + 0x94]
push edx
call fcn.00458950
add esp, 8
push eax
push ecx
mov ecx, dword [esp + 0x28]
mov eax, esp
mov dword [eax], ecx
mov eax, dword [esp + 0x28]
mov byte [esp + 0xc8], 0x20
mov dword [esp + 0x2c], 2
mov dword [esp + 0x38], esp
cmp eax, edi
je 0x459d13
inc dword [eax + 4]
lea edx, [esp + 0xa4]
push edx
call fcn.00458950
add esp, 8
push eax
mov ebx, 6
call fcn.004059c0
movzx eax, al
mov dword [esp + 0x30], eax
mov ecx, esi
fild dword [esp + 0x30]
fstp qword [esp]
call fcn.0042bb40
jmp 0x459d47
xor eax, eax
mov esi, dword [esp + 0xc0]
mov dword [esi], eax
cmp eax, edi
je 0x459d57
inc dword [eax + 4]
or ebx, 1
mov dword [esp + 0x1c], ebx
test bl, 4
je 0x459d76
and ebx, 0xfffffffb
lea ecx, [esp + 0x94]
mov dword [esp + 0x1c], ebx
call fcn.004051e0
mov dword [esp + 0xb8], 4
test bl, 2
je 0x458bf4
and ebx, 0xfffffffd
lea ecx, [esp + 0x88]
mov dword [esp + 0x1c], ebx
call fcn.004051e0
jmp 0x458bf4
mov ecx, dword [esp + 0x14]
cmp ecx, edi
je 0x459e04
mov edx, dword [ecx]
mov eax, dword [edx + 0x14]
call eax
cmp eax, esi
jne 0x459e04
push 0x28
call fcn.004ae294
mov esi, eax
add esp, 4
mov dword [esp + 0x20], esi
mov byte [esp + 0xb8], 0x22
cmp esi, edi
je 0x459368
mov ecx, dword [esp + 0x18]
mov edx, dword [ecx]
mov eax, dword [esp + 0x14]
mov edx, dword [edx + 0x48]
push edi
push edi
push eax
call edx
movzx eax, al
mov dword [esp + 0x28], eax
sub esp, 8
fild dword [esp + 0x30]
mov ecx, esi
fstp qword [esp]
call fcn.0042bb40
jmp 0x458bdc
push 0x28
call fcn.004ae294
mov esi, eax
add esp, 4
mov dword [esp + 0x20], esi
mov byte [esp + 0xb8], 0x23
cmp esi, edi
je 0x459ea6
push edi
push edi
push ecx
mov ecx, dword [esp + 0x20]
mov eax, esp
mov dword [eax], ecx
mov eax, dword [esp + 0x20]
mov dword [esp + 0x34], esp
cmp eax, edi
je 0x459e3e
inc dword [eax + 4]
lea edx, [esp + 0x84]
push edx
call fcn.00458950
add esp, 8
push eax
push ecx
mov ecx, dword [esp + 0x28]
mov eax, esp
mov dword [eax], ecx
mov eax, dword [esp + 0x28]
mov byte [esp + 0xc8], 0x24
mov dword [esp + 0x2c], 8
mov dword [esp + 0x38], esp
cmp eax, edi
je 0x459e77
inc dword [eax + 4]
lea edx, [esp + 0x60]
push edx
call fcn.00458950
add esp, 8
push eax
mov ebx, 0x18
call fcn.004059c0
movzx eax, al
mov dword [esp + 0x30], eax
mov ecx, esi
fild dword [esp + 0x30]
fstp qword [esp]
call fcn.0042bb40
jmp 0x459ea8
xor eax, eax
mov esi, dword [esp + 0xc0]
mov dword [esi], eax
cmp eax, edi
je 0x459eb8
inc dword [eax + 4]
or ebx, 1
mov dword [esp + 0x1c], ebx
test bl, 0x10
je 0x459ed4
and ebx, 0xffffffef
lea ecx, [esp + 0x50]
mov dword [esp + 0x1c], ebx
call fcn.004051e0
mov dword [esp + 0xb8], 4
test bl, 8
je 0x458bf4
and ebx, 0xfffffff7
lea ecx, [esp + 0x78]
mov dword [esp + 0x1c], ebx
call fcn.004051e0
jmp 0x458bf4
push 0x28
call fcn.004ae294
mov esi, eax
add esp, 4
mov dword [esp + 0x20], esi
mov byte [esp + 0xb8], 0x1e
mov ebx, 1
cmp esi, edi
je 0x45929a
mov ecx, dword [esp + 0x18]
fldz
sub esp, 0xc
fstp qword [esp + 4]
mov eax, esp
mov dword [eax], ecx
mov eax, dword [esp + 0x24]
mov dword [esp + 0x34], esp
cmp eax, edi
je 0x459f42
add dword [eax + 4], ebx
push ebp
call fcn.0043fbd0
fstp qword [esp + 0x3c]
mov edx, dword [esp + 0x24]
fldz
add esp, 4
fstp qword [esp + 4]
mov eax, esp
mov dword [eax], edx
mov eax, dword [esp + 0x20]
mov dword [esp + 0x34], esp
cmp eax, edi
je 0x459f6c
add dword [eax + 4], ebx
push ebp
call fcn.0043fbd0
fcomp qword [esp + 0x3c]
add esp, 0x10
mov dword [esp + 0x20], ebx
fnstsw ax
test ah, 0x44
jnp 0x459f88
mov dword [esp + 0x20], edi
fild dword [esp + 0x20]
push edi
push edi
sub esp, 8
mov ecx, esi
fstp qword [esp]
call fcn.0042bb40
jmp 0x45929c
mov ecx, dword [esp + 0x14]
cmp ecx, edi
je 0x45a275
mov eax, dword [ecx]
mov edx, dword [eax + 0x14]
call edx
cmp eax, 0x101
je 0x45a1d2
cmp eax, 0x804
je 0x45a1d2
push 0x28
cmp eax, 0x102
jne 0x45a0d0
call fcn.004ae294
mov esi, eax
add esp, 4
mov dword [esp + 0x20], esi
mov byte [esp + 0xb8], 0x27
cmp esi, edi
je 0x45a076
push edi
push edi
push ecx
mov ecx, dword [esp + 0x20]
mov eax, esp
mov dword [eax], ecx
mov eax, dword [esp + 0x20]
mov dword [esp + 0x34], esp
cmp eax, edi
je 0x45a00e
inc dword [eax + 4]
lea edx, [esp + 0xa4]
push edx
call fcn.00458950
add esp, 8
push eax
push ecx
mov ecx, dword [esp + 0x28]
mov eax, esp
mov dword [eax], ecx
mov eax, dword [esp + 0x28]
mov byte [esp + 0xc8], 0x28
mov dword [esp + 0x2c], 0x20
mov dword [esp + 0x38], esp
cmp eax, edi
je 0x45a047
inc dword [eax + 4]
lea edx, [esp + 0x68]
push edx
call fcn.00458950
add esp, 8
push eax
mov ebx, 0x60
call fcn.004059c0
movzx eax, al
mov dword [esp + 0x30], eax
mov ecx, esi
fild dword [esp + 0x30]
fstp qword [esp]
call fcn.0042bb40
jmp 0x45a078
xor eax, eax
mov esi, dword [esp + 0xc0]
mov dword [esi], eax
cmp eax, edi
je 0x45a088
inc dword [eax + 4]
or ebx, 1
mov dword [esp + 0x1c], ebx
test bl, 0x40
je 0x45a0a4
and ebx, 0xffffffbf
lea ecx, [esp + 0x58]
mov dword [esp + 0x1c], ebx
call fcn.004051e0
mov dword [esp + 0xb8], 4
test bl, 0x20
je 0x458bf4
and ebx, 0xffffffdf
lea ecx, [esp + 0x98]
mov dword [esp + 0x1c], ebx
call fcn.004051e0
jmp 0x458bf4
call fcn.004ae294
mov esi, eax
add esp, 4
mov dword [esp + 0x20], esi
mov byte [esp + 0xb8], 0x2a
cmp esi, edi
je 0x45a170
push edi
push edi
push ecx
mov ecx, dword [esp + 0x20]
mov eax, esp
mov dword [eax], ecx
mov eax, dword [esp + 0x20]
mov dword [esp + 0x34], esp
cmp eax, edi
je 0x45a108
inc dword [eax + 4]
lea edx, [esp + 0x8c]
push edx
call fcn.00458950
add esp, 8
push eax
push ecx
mov ecx, dword [esp + 0x28]
mov eax, esp
mov dword [eax], ecx
mov eax, dword [esp + 0x28]
mov byte [esp + 0xc8], 0x2b
mov dword [esp + 0x2c], 0x80
mov dword [esp + 0x38], esp
cmp eax, edi
je 0x45a141
inc dword [eax + 4]
lea edx, [esp + 0x54]
push edx
call fcn.00458950
add esp, 8
push eax
mov ebx, 0x180
call fcn.004059c0
movzx eax, al
mov dword [esp + 0x30], eax
mov ecx, esi
fild dword [esp + 0x30]
fstp qword [esp]
call fcn.0042bb40
jmp 0x45a172
xor eax, eax
mov esi, dword [esp + 0xc0]
mov dword [esi], eax
cmp eax, edi
je 0x45a182
inc dword [eax + 4]
or ebx, 1
mov dword [esp + 0x1c], ebx
test ebx, 0x100
je 0x45a1a4
and ebx, 0xfffffeff
lea ecx, [esp + 0x44]
mov dword [esp + 0x1c], ebx
call fcn.004051e0
mov dword [esp + 0xb8], 4
test bl, bl
jns 0x458bf4
and ebx, 0xffffff7f
lea ecx, [esp + 0x80]
mov dword [esp + 0x1c], ebx
call fcn.004051e0
jmp 0x458bf4
push 0x28
call fcn.004ae294
mov esi, eax
add esp, 4
mov dword [esp + 0x20], esi
mov byte [esp + 0xb8], 0x26
mov ebx, 1
cmp esi, edi
je 0x45929a
mov ecx, dword [esp + 0x18]
fldz
sub esp, 0xc
fstp qword [esp + 4]
mov eax, esp
mov dword [eax], ecx
mov eax, dword [esp + 0x24]
mov dword [esp + 0x34], esp
cmp eax, edi
je 0x45a217
add dword [eax + 4], ebx
push ebp
call fcn.0043fbd0
fstp qword [esp + 0x3c]
mov edx, dword [esp + 0x24]
fldz
add esp, 4
fstp qword [esp + 4]
mov eax, esp
mov dword [eax], edx
mov eax, dword [esp + 0x20]
mov dword [esp + 0x34], esp
cmp eax, edi
je 0x45a241
add dword [eax + 4], ebx
push ebp
call fcn.0043fbd0
fcomp qword [esp + 0x3c]
add esp, 0x10
mov dword [esp + 0x20], ebx
fnstsw ax
test ah, 0x44
jnp 0x45a25d
mov dword [esp + 0x20], edi
fild dword [esp + 0x20]
push edi
push edi
sub esp, 8
mov ecx, esi
fstp qword [esp]
call fcn.0042bb40
jmp 0x45929c
push 0x28
call fcn.004ae294
mov esi, eax
add esp, 4
mov dword [esp + 0x20], esi
mov byte [esp + 0xb8], 0x2d
cmp esi, edi
je 0x45a317
push edi
push edi
push ecx
mov ecx, dword [esp + 0x20]
mov eax, esp
mov dword [eax], ecx
mov eax, dword [esp + 0x20]
mov dword [esp + 0x34], esp
cmp eax, edi
je 0x45a2af
inc dword [eax + 4]
lea edx, [esp + 0x9c]
push edx
call fcn.00458950
add esp, 8
push eax
push ecx
mov ecx, dword [esp + 0x28]
mov eax, esp
mov dword [eax], ecx
mov eax, dword [esp + 0x28]
mov byte [esp + 0xc8], 0x2e
mov dword [esp + 0x2c], 0x200
mov dword [esp + 0x38], esp
cmp eax, edi
je 0x45a2e8
inc dword [eax + 4]
lea edx, [esp + 0x78]
push edx
call fcn.00458950
add esp, 8
push eax
mov ebx, 0x600
call fcn.004059c0
movzx eax, al
mov dword [esp + 0x30], eax
mov ecx, esi
fild dword [esp + 0x30]
fstp qword [esp]
call fcn.0042bb40
jmp 0x45a319
xor eax, eax
mov esi, dword [esp + 0xc0]
mov dword [esi], eax
cmp eax, edi
je 0x45a329
inc dword [eax + 4]
or ebx, 1
mov dword [esp + 0x1c], ebx
test ebx, 0x400
je 0x45a34b
and ebx, 0xfffffbff
lea ecx, [esp + 0x68]
mov dword [esp + 0x1c], ebx
call fcn.004051e0
mov dword [esp + 0xb8], 4
test ebx, 0x200
je 0x458bf4
and ebx, 0xfffffdff
lea ecx, [esp + 0x90]
mov dword [esp + 0x1c], ebx
call fcn.004051e0
jmp 0x458bf4
mov ecx, dword [esp + 0x18]
cmp ecx, edi
je 0x45a6c2
mov edx, dword [ecx]
mov eax, dword [edx + 0x14]
call eax
mov esi, eax
cmp esi, 0x101
je 0x45a61f
cmp esi, 0x804
je 0x45a61f
cmp esi, 0x102
jne 0x45a4bb
push 0x28
call fcn.004ae294
mov esi, eax
add esp, 4
mov dword [esp + 0x20], esi
mov byte [esp + 0xb8], 0x31
cmp esi, edi
je 0x45a458
push edi
push edi
push ecx
mov ecx, dword [esp + 0x20]
mov eax, esp
mov dword [eax], ecx
mov eax, dword [esp + 0x20]
mov dword [esp + 0x34], esp
cmp eax, edi
je 0x45a3f0
inc dword [eax + 4]
lea edx, [esp + 0x54]
push edx
call fcn.00458950
add esp, 8
push eax
push ecx
mov ecx, dword [esp + 0x28]
mov eax, esp
mov dword [eax], ecx
mov eax, dword [esp + 0x28]
mov byte [esp + 0xc8], 0x32
mov dword [esp + 0x2c], 0x800
mov dword [esp + 0x38], esp
cmp eax, edi
je 0x45a426
inc dword [eax + 4]
lea edx, [esp + 0x80]
push edx
call fcn.00458950
add esp, 8
push eax
mov ebx, 0x1800
call fcn.004209f0
movzx eax, al
mov dword [esp + 0x30], eax
mov ecx, esi
fild dword [esp + 0x30]
fstp qword [esp]
call fcn.0042bb40
jmp 0x45a45a
xor eax, eax
mov esi, dword [esp + 0xc0]
mov dword [esi], eax
cmp eax, edi
je 0x45a46a
inc dword [eax + 4]
or ebx, 1
mov dword [esp + 0x1c], ebx
test ebx, 0x1000
je 0x45a48c
and ebx, 0xffffefff
lea ecx, [esp + 0x70]
mov dword [esp + 0x1c], ebx
call fcn.004051e0
mov dword [esp + 0xb8], 4
test ebx, 0x800
je 0x458bf4
and ebx, 0xfffff7ff
lea ecx, [esp + 0x48]
mov dword [esp + 0x1c], ebx
call fcn.004051e0
jmp 0x458bf4
mov ecx, dword [esp + 0x14]
cmp ecx, edi
je 0x45a521
mov edx, dword [ecx]
mov eax, dword [edx + 0x14]
call eax
cmp eax, esi
jne 0x45a521
push 0x28
call fcn.004ae294
mov esi, eax
add esp, 4
mov dword [esp + 0x20], esi
mov byte [esp + 0xb8], 0x34
cmp esi, edi
je 0x459368
mov ecx, dword [esp + 0x18]
mov edx, dword [ecx]
mov eax, dword [esp + 0x14]
mov edx, dword [edx + 0x48]
push edi
push edi
push eax
call edx
xor ecx, ecx
test al, al
sete cl
sub esp, 8
mov dword [esp + 0x30], ecx
fild dword [esp + 0x30]
mov ecx, esi
fstp qword [esp]
call fcn.0042bb40
jmp 0x458bdc
push 0x28
call fcn.004ae294
mov esi, eax
add esp, 4
mov dword [esp + 0x20], esi
mov byte [esp + 0xb8], 0x35
cmp esi, edi
je 0x45a5bc
mov edx, dword [esp + 0x14]
push edi
push edi
push ecx
mov eax, esp
mov dword [eax], edx
mov eax, dword [esp + 0x20]
mov dword [esp + 0x34], esp
cmp eax, edi
je 0x45a557
inc dword [eax + 4]
lea eax, [esp + 0x60]
push eax
call fcn.00458950
add esp, 8
push eax
push ecx
mov ecx, dword [esp + 0x28]
mov eax, esp
mov dword [eax], ecx
mov eax, dword [esp + 0x28]
mov byte [esp + 0xc8], 0x36
mov dword [esp + 0x2c], 0x2000
mov dword [esp + 0x38], esp
cmp eax, edi
je 0x45a58d
inc dword [eax + 4]
lea edx, [esp + 0x5c]
push edx
call fcn.00458950
add esp, 8
push eax
mov ebx, 0x6000
call fcn.004209f0
movzx eax, al
mov dword [esp + 0x30], eax
mov ecx, esi
fild dword [esp + 0x30]
fstp qword [esp]
call fcn.0042bb40
jmp 0x45a5be
xor eax, eax
mov esi, dword [esp + 0xc0]
mov dword [esi], eax
cmp eax, edi
je 0x45a5ce
inc dword [eax + 4]
or ebx, 1
mov dword [esp + 0x1c], ebx
test ebx, 0x4000
je 0x45a5f0
and ebx, 0xffffbfff
lea ecx, [esp + 0x4c]
mov dword [esp + 0x1c], ebx
call fcn.004051e0
mov dword [esp + 0xb8], 4
test ebx, 0x2000
je 0x458bf4
and ebx, 0xffffdfff
lea ecx, [esp + 0x54]
mov dword [esp + 0x1c], ebx
call fcn.004051e0
jmp 0x458bf4
push 0x28
call fcn.004ae294
mov esi, eax
add esp, 4
mov dword [esp + 0x20], esi
mov byte [esp + 0xb8], 0x30
mov ebx, 1
cmp esi, edi
je 0x45929a
mov ecx, dword [esp + 0x18]
fldz
sub esp, 0xc
fstp qword [esp + 4]
mov eax, esp
mov dword [eax], ecx
mov eax, dword [esp + 0x24]
mov dword [esp + 0x34], esp
cmp eax, edi
je 0x45a664
add dword [eax + 4], ebx
push ebp
call fcn.0043fbd0
fstp qword [esp + 0x3c]
mov edx, dword [esp + 0x24]
fldz
add esp, 4
fstp qword [esp + 4]
mov eax, esp
mov dword [eax], edx
mov eax, dword [esp + 0x20]
mov dword [esp + 0x34], esp
cmp eax, edi
je 0x45a68e
add dword [eax + 4], ebx
push ebp
call fcn.0043fbd0
fcomp qword [esp + 0x3c]
add esp, 0x10
mov dword [esp + 0x20], ebx
fnstsw ax
test ah, 0x44
jp 0x45a6aa
mov dword [esp + 0x20], edi
fild dword [esp + 0x20]
push edi
push edi
sub esp, 8
mov ecx, esi
fstp qword [esp]
call fcn.0042bb40
jmp 0x45929c
mov ecx, dword [esp + 0x14]
cmp ecx, edi
je 0x45a99a
mov eax, dword [ecx]
mov edx, dword [eax + 0x14]
call edx
cmp eax, 0x101
je 0x45a8f7
cmp eax, 0x804
je 0x45a8f7
push 0x28
cmp eax, 0x102
jne 0x45a7f4
call fcn.004ae294
mov esi, eax
add esp, 4
mov dword [esp + 0x20], esi
mov byte [esp + 0xb8], 0x39
cmp esi, edi
je 0x45a791
push edi
push edi
push ecx
mov ecx, dword [esp + 0x20]
mov eax, esp
mov dword [eax], ecx
mov eax, dword [esp + 0x20]
mov dword [esp + 0x34], esp
cmp eax, edi
je 0x45a72c
inc dword [eax + 4]
lea edx, [esp + 0x70]
push edx
call fcn.00458950
add esp, 8
push eax
push ecx
mov ecx, dword [esp + 0x28]
mov eax, esp
mov dword [eax], ecx
mov eax, dword [esp + 0x28]
mov byte [esp + 0xc8], 0x3a
mov dword [esp + 0x2c], 0x8000
mov dword [esp + 0x38], esp
cmp eax, edi
je 0x45a762
inc dword [eax + 4]
lea edx, [esp + 0x6c]
push edx
call fcn.00458950
add esp, 8
push eax
mov ebx, 0x18000
call fcn.004209f0
movzx eax, al
mov dword [esp + 0x30], eax
mov ecx, esi
fild dword [esp + 0x30]
fstp qword [esp]
call fcn.0042bb40
jmp 0x45a793
xor eax, eax
mov esi, dword [esp + 0xc0]
mov dword [esi], eax
cmp eax, edi
je 0x45a7a3
inc dword [eax + 4]
or ebx, 1
mov dword [esp + 0x1c], ebx
test ebx, 0x10000
je 0x45a7c5
and ebx, 0xfffeffff
lea ecx, [esp + 0x5c]
mov dword [esp + 0x1c], ebx
call fcn.004051e0
mov dword [esp + 0xb8], 4
test ebx, 0x8000
je 0x458bf4
and ebx, 0xffff7fff
lea ecx, [esp + 0x64]
mov dword [esp + 0x1c], ebx
call fcn.004051e0
jmp 0x458bf4
call fcn.004ae294
mov esi, eax
add esp, 4
mov dword [esp + 0x20], esi
mov byte [esp + 0xb8], 0x3c
cmp esi, edi
je 0x45a894
push edi
push edi
push ecx
mov ecx, dword [esp + 0x20]
mov eax, esp
mov dword [eax], ecx
mov eax, dword [esp + 0x20]
mov dword [esp + 0x34], esp
cmp eax, edi
je 0x45a82c
inc dword [eax + 4]
lea edx, [esp + 0x80]
push edx
call fcn.00458950
add esp, 8
push eax
push ecx
mov ecx, dword [esp + 0x28]
mov eax, esp
mov dword [eax], ecx
mov eax, dword [esp + 0x28]
mov byte [esp + 0xc8], 0x3d
mov dword [esp + 0x2c], 0x20000
mov dword [esp + 0x38], esp
cmp eax, edi
je 0x45a865
inc dword [eax + 4]
lea edx, [esp + 0x7c]
push edx
call fcn.00458950
add esp, 8
push eax
mov ebx, 0x60000
call fcn.004209f0
movzx eax, al
mov dword [esp + 0x30], eax
mov ecx, esi
fild dword [esp + 0x30]
fstp qword [esp]
call fcn.0042bb40
jmp 0x45a896
xor eax, eax
mov esi, dword [esp + 0xc0]
mov dword [esi], eax
cmp eax, edi
je 0x45a8a6
inc dword [eax + 4]
or ebx, 1
mov dword [esp + 0x1c], ebx
test ebx, 0x40000
je 0x45a8c8
and ebx, 0xfffbffff
lea ecx, [esp + 0x6c]
mov dword [esp + 0x1c], ebx
call fcn.004051e0
mov dword [esp + 0xb8], 4
test ebx, 0x20000
je 0x458bf4
and ebx, 0xfffdffff
lea ecx, [esp + 0x74]
mov dword [esp + 0x1c], ebx
call fcn.004051e0
jmp 0x458bf4
push 0x28
call fcn.004ae294
mov esi, eax
add esp, 4
mov dword [esp + 0x20], esi
mov byte [esp + 0xb8], 0x38
mov ebx, 1
cmp esi, edi
je 0x45929a
mov ecx, dword [esp + 0x18]
fldz
sub esp, 0xc
fstp qword [esp + 4]
mov eax, esp
mov dword [eax], ecx
mov eax, dword [esp + 0x24]
mov dword [esp + 0x34], esp
cmp eax, edi
je 0x45a93c
add dword [eax + 4], ebx
push ebp
call fcn.0043fbd0
fstp qword [esp + 0x3c]
mov edx, dword [esp + 0x24]
fldz
add esp, 4
fstp qword [esp + 4]
mov eax, esp
mov dword [eax], edx
mov eax, dword [esp + 0x20]
mov dword [esp + 0x34], esp
cmp eax, edi
je 0x45a966
add dword [eax + 4], ebx
push ebp
call fcn.0043fbd0
fcomp qword [esp + 0x3c]
add esp, 0x10
mov dword [esp + 0x20], ebx
fnstsw ax
test ah, 0x44
jp 0x45a982
mov dword [esp + 0x20], edi
fild dword [esp + 0x20]
push edi
push edi
sub esp, 8
mov ecx, esi
fstp qword [esp]
call fcn.0042bb40
jmp 0x45929c
push 0x28
call fcn.004ae294
mov esi, eax
add esp, 4
mov dword [esp + 0x20], esi
mov byte [esp + 0xb8], 0x3f
cmp esi, edi
je 0x45aa35
push edi
push edi
push ecx
mov ecx, dword [esp + 0x20]
mov eax, esp
mov dword [eax], ecx
mov eax, dword [esp + 0x20]
mov dword [esp + 0x34], esp
cmp eax, edi
je 0x45a9d0
inc dword [eax + 4]
lea edx, [esp + 0x40]
push edx
call fcn.00458950
add esp, 8
push eax
push ecx
mov ecx, dword [esp + 0x28]
mov eax, esp
mov dword [eax], ecx
mov eax, dword [esp + 0x28]
mov byte [esp + 0xc8], 0x40
mov dword [esp + 0x2c], 0x80000
mov dword [esp + 0x38], esp
cmp eax, edi
je 0x45aa06
inc dword [eax + 4]
lea edx, [esp + 0x50]
push edx
call fcn.00458950
add esp, 8
push eax
mov ebx, 0x180000
call fcn.004209f0
movzx eax, al
mov dword [esp + 0x30], eax
mov ecx, esi
fild dword [esp + 0x30]
fstp qword [esp]
call fcn.0042bb40
jmp 0x45aa37
xor eax, eax
mov esi, dword [esp + 0xc0]
mov dword [esi], eax
cmp eax, edi
je 0x45aa47
inc dword [eax + 4]
or ebx, 1
mov dword [esp + 0x1c], ebx
test ebx, 0x100000
je 0x45aa69
and ebx, 0xffefffff
lea ecx, [esp + 0x40]
mov dword [esp + 0x1c], ebx
call fcn.004051e0
mov dword [esp + 0xb8], 4
test ebx, 0x80000
je 0x458bf4
and ebx, 0xfff7ffff
lea ecx, [esp + 0x34]
mov dword [esp + 0x1c], ebx
call fcn.004051e0
jmp 0x458bf4
mov eax, dword [esp + 0x14]
mov esi, dword [esp + 0xc0]
mov dword [esi], edi
mov dword [esp + 0x1c], 1
mov byte [esp + 0xb8], 3
cmp eax, edi
je 0x45aad1
dec dword [eax + 4]
mov ecx, eax
add eax, 4
cmp dword [eax], edi
jg 0x45aacd
mov edx, dword [ecx]
mov eax, dword [edx]
push 1
call eax
mov dword [esp + 0x14], edi
mov eax, dword [esp + 0x18]
mov byte [esp + 0xb8], 0
cmp eax, edi
je 0x45aaf5
dec dword [eax + 4]
mov ecx, eax
add eax, 4
cmp dword [eax], edi
jg 0x45aaf5
push 1
mov edx, dword [ecx]
mov eax, dword [edx]
call eax
mov eax, esi
mov ecx, dword [esp + 0xb0]
mov dword fs:[0], ecx
pop ecx
pop edi
pop esi
pop ebp
pop ebx
add esp, 0xa8
ret 8