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

Disassembly:
sub esp, 0x64c
push ebx
mov ebx, dword [esp + 0x654]
mov ecx, dword [ebx + 0x10]
push ebp
push esi
push edi
cmp ecx, 0x2af8
jb 0x459d4d
push 0x4947f9
push 0x49b924
mov ecx, 0x4a7ce0
call fcn.0042cde0
pop edi
pop esi
pop ebp
pop ebx
add esp, 0x64c
ret 0x10
mov eax, dword [ebx + 0x14]
cmp ecx, eax
jb 0x459d7a
mov ecx, dword [ebx + 0x18]
lea eax, [eax + eax*4 + 0x1388]
add eax, eax
add eax, eax
push eax
push ecx
call fcn.004824d7
add esp, 8
test eax, eax
je 0x459d2c
add dword [ebx + 0x14], 0x3e8
mov dword [ebx + 0x18], eax
mov eax, dword [ebx + 0x10]
lea edx, [eax + eax*4]
mov eax, dword [ebx + 0x18]
lea ebp, [eax + edx*4]
xor eax, eax
mov dword [ebp], eax
mov dword [ebp + 4], eax
mov dword [ebp + 8], eax
mov dword [ebp + 0xc], eax
mov dword [ebp + 0x10], eax
mov al, byte [esp + 0x664]
cmp al, 0x14
jne 0x459db0
or byte [ebp + 5], 0x80
mov byte [esp + 0x664], 0x13
jmp 0x459db4
cmp al, 0x13
jne 0x459df1
mov al, 0xff
cmp byte [ebx + 0xb8], al
jne 0x459ddf
push 0x4947f9
push 0x49b938
mov ecx, 0x4a7ce0
call fcn.0042cde0
pop edi
pop esi
pop ebp
pop ebx
add esp, 0x64c
ret 0x10
mov byte [ebp + 6], al
mov cl, byte [ebx + 0xb8]
mov al, byte [esp + 0x664]
jmp 0x459e31
cmp al, 0x18
jne 0x459e22
cmp dword [ebx + 8], 0
je 0x459e1c
push 0x4947f9
push 0x49b950
mov ecx, 0x4a7ce0
call fcn.0042cde0
pop edi
pop esi
pop ebp
pop ebx
add esp, 0x64c
ret 0x10
mov byte [ebp + 6], 0xff
jmp 0x459e34
mov dl, byte [ebx + 0xb9]
mov byte [ebp + 6], dl
mov cl, byte [ebx + 0xba]
mov byte [ebp + 7], cl
cmp dword [ebx + 0x10], 0
mov esi, dword [0x49229c]
mov edi, 0x80000000
jne 0x459eb1
cmp dword [ebx + 0x78], edi
jne 0x459e73
mov edx, dword [ebx + 0x50]
mov eax, dword [0x4a7c2c]
imul edx, edx, 0x54
fild dword [edx + eax + 0x44]
fmul qword [0x49c640]
call fcn.0048f780
mov ecx, dword [0x4a7c84]
push 0x60
push ecx
push eax
call esi
mov dword [ebx + 0x78], eax
cmp dword [ebx + 0x7c], edi
jne 0x459ea1
mov edx, dword [ebx + 0x50]
mov eax, dword [0x4a7c2c]
imul edx, edx, 0x54
fild dword [edx + eax + 0x44]
fmul qword [0x49c660]
call fcn.0048f780
mov ecx, dword [0x4a7c84]
push 0x60
push ecx
push eax
call esi
mov dword [ebx + 0x7c], eax
mov edx, dword [ebx + 0x78]
mov al, byte [esp + 0x664]
mov dword [ebx + 0x80], edx
mov edi, ebp
lea esi, [esp + 0x70]
mov byte [ebp + 4], al
call fcn.0045fba0
movzx eax, byte [ebx + 0x45]
or dword [esp + 0x70], 0x10000000
mov byte [esp + 0x200], al
mov al, byte [esp + 0x664]
cmp al, 6
jne 0x459ef5
or dword [esp + 0x70], 0x4000
cmp byte [ebx + 0x44], 0
jne 0x459f13
or dword [esp + 0x70], 0x20000
jmp 0x459f13
cmp byte [ebx + 0x44], 0
je 0x459f03
or dword [esp + 0x70], 0x20000
cmp al, 2
je 0x459f30
cmp al, 0x10
je 0x459f30
cmp al, 0x11
je 0x459f30
cmp al, 0x12
je 0x459f30
cmp byte [ebp + 4], 0xa
mov byte [esp + 0x37], 1
je 0x459f24
mov ecx, dword [ebx + 0x54]
mov dword [ebp + 0x10], ecx
mov edx, dword [ebx + 0x54]
mov dword [esp + 0xcc], edx
jmp 0x459f40
mov byte [esp + 0x37], 0
cmp al, 0x12
jne 0x459f40
mov dword [ebp + 0x10], 0xff000000
movzx eax, al
mov dword [esp + 0x44], eax
add eax, 0xfffffffc
mov edi, 0x10000
cmp eax, 0x14
ja case.0x459f58.6
jmp dword [eax*4 + 0x45c96c]
or dword [esp + 0x70], 0x210000
jmp case.0x459f58.6
or dword [esp + 0x70], 0x210042
jmp case.0x459f58.6
or dword [esp + 0x70], 0x210080
or dword [esp + 0x78], 0x200
jmp case.0x459f58.6
or dword [esp + 0x80], 0x30
or dword [esp + 0x70], 0x10008
or dword [esp + 0x78], 0x200
mov dword [esp + 0x84], 1
jmp case.0x459f58.6
or dword [esp + 0x70], 0x10027
or dword [esp + 0x78], 0x200
jmp case.0x459f58.6
or dword [esp + 0x70], edi
or dword [esp + 0x78], 0x200
jmp case.0x459f58.6
or dword [esp + 0x70], edi
jmp case.0x459f58.6
or dword [esp + 0x70], 0x36
jmp case.0x459f58.6
or dword [esp + 0x70], 0x1000c
jmp case.0x459f58.6
or dword [esp + 0x70], 1
jmp case.0x459f58.6
or dword [esp + 0x70], 0x10200
mov byte [esp + 0x200], 0
jmp case.0x459f58.6
or dword [esp + 0x70], 0x4000000
jmp case.0x459f58.6
test dword [ebx + 0x3c], 0x40000
je 0x45a01e
or dword [esp + 0x70], 0x100
or dword [esp + 0x70], 0x800
mov ecx, dword [esp + 0x668]
push 0xffffffffffffffff
push ebp
lea eax, [esp + 0x78]
push eax
push ebx
call fcn.0045d4e0
test eax, eax
jne 0x45a04c
pop edi
pop esi
pop ebp
pop ebx
add esp, 0x64c
ret 0x10
mov cl, byte [esp + 0x664]
mov eax, dword [esp + 0xcc]
cmp cl, 0xa
je 0x45a062
mov eax, dword [ebp + 0x10]
cmp eax, 0xff000000
mov eax, dword [esp + 0xd0]
setne dl
mov byte [esp + 0x1fe], dl
cmp eax, 0xff000000
jne 0x45a091
cmp cl, 0xb
je 0x45a0b2
mov dword [esp + 0xd0], 0xffffffff
jmp 0x45a0b2
cmp eax, 0xffffffff
jne 0x45a0b2
mov ebx, dword [ebx + 0x5c]
cmp ebx, 0xff000000
je 0x45a0b2
cmp cl, 0x12
je 0x45a0b2
cmp cl, 0x18
je 0x45a0b2
mov dword [esp + 0xd0], ebx
mov esi, dword [esp + 0x74]
mov eax, 0x80000000
cmp dword [esp + 0x98], eax
jne 0x45a0ff
cmp dword [esp + 0x9c], eax
jne 0x45a0ff
fld dword [0x49c658]
fcomp dword [esp + 0xa0]
fnstsw ax
test ah, 5
jnp 0x45a0ff
mov eax, dword [esp + 0x66c]
mov edi, 0x49b968
call fcn.00408f10
mov edi, 0x10000
test eax, eax
jne 0x45a0ff
xor ecx, ecx
jmp 0x45a109
mov ecx, esi
not ecx
and ecx, 0x2000
mov eax, dword [esp + 0x7c]
not eax
and eax, dword [esp + 0x78]
mov ebx, esi
not ebx
and ebx, dword [esp + 0x70]
mov dword [esp + 0x24], eax
mov eax, dword [esp + 0x44]
or ebx, 0x40000000
add eax, 0xfffffffd
mov dword [esp + 0x14], ebx
cmp eax, 0x10
ja case.0x45a140.10
movzx eax, byte [eax + 0x45c9e8]
jmp dword [eax*4 + 0x45c9c0]
and ebx, 0xfffffff7
or ebx, 7
jmp 0x45a25e
test bl, 1
je 0x45a168
and ebx, 0xfffffff1
or ebx, 1
mov dword [esp + 0x14], ebx
or ebx, ecx
jmp 0x45a25e
and ebx, 0xfffffff0
or ebx, ecx
jmp 0x45a25e
mov edx, ebx
and edx, 6
cmp dl, 6
jne 0x45a18f
and ebx, 0xfffffff6
or ebx, 6
mov dword [esp + 0x14], ebx
or dword [esp + 0x14], ecx
jmp case.0x45a140.10
and ebx, 0xfffffff3
or ebx, 3
mov dword [esp + 0x14], ebx
or dword [esp + 0x14], ecx
jmp case.0x45a140.10
and ebx, 0xfffffff9
or ebx, 9
mov eax, ebx
test eax, 0x20000
je 0x45a1b7
test edi, esi
jne 0x45a1b7
or eax, edi
or eax, ecx
mov dword [esp + 0x14], eax
jmp case.0x45a140.10
or ebx, 3
jmp 0x45a25e
test bl, 1
je 0x45a1da
and ebx, 0xfffffff1
or ebx, 1
jmp 0x45a25e
and ebx, 0xfffffff2
or ebx, 2
jmp 0x45a25e
fld dword [0x49c658]
fcomp dword [esp + 0xa0]
fnstsw ax
test ah, 5
jnp 0x45a210
mov eax, dword [esp + 0x66c]
push 0xa
push eax
call fcn.00481f21
mov esi, dword [esp + 0x7c]
add esp, 8
test eax, eax
je 0x45a21d
mov ecx, esi
not ecx
and ecx, 4
or ebx, ecx
mov dword [esp + 0x14], ebx
test bl, 4
je case.0x45a140.10
not esi
and esi, 0x201040
or ebx, esi
jmp 0x45a25e
mov edx, dword [esp + 0x660]
or ebx, 0x4000000
cmp dword [edx + 0x60], 0
je 0x45a247
test byte [ebp + 5], 0x20
je 0x45a250
cmp dword [ebp + 0x10], 0xff000000
je 0x45a258
or ebx, 0x2000
jmp 0x45a25e
and ebx, 0xffffdfff
mov dword [esp + 0x14], ebx
cmp byte [esp + 0x664], 4
jne 0x45a3be
cmp dword [ebp + 0xc], 0
jne 0x45a3be
test byte [ebp + 5], 1
jne 0x45a3be
mov eax, dword [esp + 0x660]
mov eax, dword [eax]
cmp byte [eax], 0x31
jne 0x45a2a2
cmp byte [eax + 1], 0
jne 0x45a2a2
mov byte [esp + 0x258], 0
jmp 0x45a2ba
lea edx, [esp + 0x258]
sub edx, eax
jmp 0x45a2b0
mov cl, byte [eax]
mov byte [edx + eax], cl
inc eax
test cl, cl
jne 0x45a2b0
mov ecx, dword [esp + 0x66c]
push ecx
push 0x49b96c
mov eax, 0x400
lea ecx, [esp + 0x260]
call fcn.0046e570
push 0
push 0xffffffffffffffff
push 1
push 0x4947f9
lea edx, [esp + 0x270]
push 0x49b978
push edx
xor eax, eax
or ecx, 0xffffffff
call fcn.0046eca0
push 0
push 0xffffffffffffffff
push 1
push 0x4947f9
lea eax, [esp + 0x288]
push 0x499c40
push eax
xor eax, eax
or ecx, 0xffffffff
call fcn.0046eca0
push 0
push 0xffffffffffffffff
push 1
push 0x4947f9
lea ecx, [esp + 0x2a0]
push 0x494824
push ecx
xor eax, eax
or ecx, 0xffffffff
call fcn.0046eca0
add esp, 0x50
push 0
push 0xffffffffffffffff
push 1
push 0x4947f9
lea edx, [esp + 0x268]
push 0x498530
push edx
xor eax, eax
or ecx, 0xffffffff
call fcn.0046eca0
push 0
push 0xffffffffffffffff
push 1
push 0x4947f9
lea eax, [esp + 0x280]
push 0x49a14c
push eax
xor eax, eax
or ecx, 0xffffffff
call fcn.0046eca0
push 0
push 0xffffffffffffffff
push 1
push 0x4947f9
lea ecx, [esp + 0x298]
push 0x49b97c
push ecx
xor eax, eax
or ecx, 0xffffffff
call fcn.0046eca0
add esp, 0x48
lea edi, [esp + 0x258]
mov eax, 0x4a7ce0
call fcn.004190e0
mov dword [ebp + 0xc], eax
mov edi, dword [esp + 0x660]
mov bl, byte [ebp + 6]
mov ecx, edi
call fcn.00464020
mov ecx, dword [edi + 0x10]
mov dword [esp + 0x58], eax
test ecx, ecx
je 0x45a3ea
lea edx, [ecx + ecx*4]
mov ecx, dword [edi + 0x18]
lea edx, [ecx + edx*4 - 0x14]
mov dword [esp + 0x3c], edx
jmp 0x45a3f5
lea ecx, [esp + 0x20c]
mov dword [esp + 0x3c], ecx
mov ecx, 0x80000000
cmp dword [esp + 0x90], ecx
jne 0x45a4cc
cmp dword [esp + 0x94], ecx
jne 0x45a4cc
test eax, eax
je 0x45a454
mov al, byte [ebp + 7]
mov ecx, edi
call fcn.00464180
test eax, eax
jne 0x45a454
mov esi, dword [esp + 0x58]
mov ebx, edi
push ebx
lea edi, [esp + 0x64]
call fcn.004641b0
mov edx, dword [ebx + 0x78]
add edx, dword [esp + 0x60]
mov eax, dword [ebx + 0x7c]
add eax, dword [esp + 0x64]
mov dword [esp + 0x90], edx
mov dword [esp + 0x94], eax
jmp 0x45a479
mov edx, dword [edi + 0x8c]
add edx, dword [edi + 0x84]
mov ecx, dword [edi + 0x80]
add edx, dword [edi + 0x7c]
mov dword [esp + 0x90], ecx
mov dword [esp + 0x94], edx
mov ebx, edi
mov al, byte [esp + 0x664]
cmp al, 1
je 0x45a488
cmp al, 0x16
jne 0x45a4c5
cmp dword [ebx + 0x10], 0
je 0x45a4c5
mov ecx, dword [esp + 0x3c]
mov al, byte [ecx + 4]
cmp al, 1
je 0x45a49d
cmp al, 0x16
jne 0x45a4c5
mov al, byte [ecx + 6]
cmp al, byte [ebp + 6]
jne 0x45a4c5
mov cl, byte [ecx + 7]
cmp cl, byte [ebp + 7]
jne 0x45a4c5
mov edx, dword [0x4a7c84]
push 0x60
push edx
push 8
call dword [0x49229c]
add dword [esp + 0x94], eax
mov edi, dword [esp + 0x660]
mov cl, byte [esp + 0x664]
cmp cl, 0xe
je 0x45a4e7
cmp cl, 0xa
je 0x45a4e7
mov byte [esp + 0x19], 0
cmp cl, 0xb
jne 0x45a4ec
mov byte [esp + 0x19], 1
cmp byte [esp + 0x19], 0
fld1
sete bl
cmp dword [esp + 0x9c], 0x80000000
mov byte [esp + 0x22], bl
jne 0x45a65f
fcom dword [esp + 0xa0]
fnstsw ax
test ah, 0x41
jne 0x45a65f
mov eax, dword [esp + 0x44]
add eax, 0xfffffffd
cmp eax, 0x14
ja case.0x45a534.4
movzx eax, byte [eax + 0x45ca28]
jmp dword [eax*4 + 0x45c9fc]
mov eax, dword [esp + 0x14]
fstp st(0)
fld dword [0x49c654]
fstp dword [esp + 0xa0]
test al, 1
je 0x45a55a
test al, 2
je 0x45a680
cmp byte [0x4a84bb], 0
je 0x45a680
test eax, 0x400
jne 0x45a680
xor bl, bl
mov byte [esp + 0x22], bl
jmp 0x45a680
fstp st(0)
fld dword [0x49c650]
fstp dword [esp + 0xa0]
jmp 0x45a680
fstp st(0)
fld dword [0x49c64c]
fstp dword [esp + 0xa0]
jmp 0x45a680
mov ecx, dword [esp + 0x66c]
cmp byte [ecx], 0
jne case.0x45a534.4
test byte [esp + 0x14], 4
je case.0x45a534.13
fstp st(0)
fld dword [0x49c654]
fstp dword [esp + 0xa0]
jmp 0x45a680
test byte [esp + 0x14], 0x40
fstp st(0)
je 0x45a57f
mov edx, dword [edi + 0x50]
mov eax, dword [0x4a7c2c]
imul edx, edx, 0x54
mov eax, dword [edx + eax + 0x44]
mov ecx, dword [0x4a7c84]
push 0x60
add eax, eax
push ecx
push eax
call dword [0x49229c]
mov dword [esp + 0x9c], eax
jmp 0x45a680
mov eax, dword [esp + 0x14]
fstp st(0)
test al, 2
je 0x45a620
fld dword [0x49c650]
fstp dword [esp + 0xa0]
jmp 0x45a680
push eax
mov eax, dword [esp + 0xc0]
call fcn.00463870
mov dword [esp + 0x9c], eax
jmp 0x45a680
test byte [esp + 0x14], 4
fstp st(0)
je 0x45a5dd
fld dword [0x49c650]
fstp dword [esp + 0xa0]
jmp 0x45a680
fstp st(0)
fld dword [0x49c648]
fstp dword [esp + 0xa0]
jmp 0x45a680
fstp st(0)
cmp cl, 7
je 0x45a66b
cmp cl, 8
jne 0x45a680
cmp byte [0x4a84bb], 0
je 0x45a680
or dword [esp + 0x14], 0x400
jmp 0x45a680
fstp st(0)
fldz
xor esi, esi
fld dword [esp + 0xa0]
mov dword [esp + 0x28], esi
fcom st(1)
mov dword [esp + 0x40], esi
fnstsw ax
fstp st(1)
test ah, 0x41
jne 0x45a808
mov al, byte [esp + 0x664]
cmp al, 3
je 0x45a6b5
cmp al, 6
jbe 0x45a6c4
cmp al, 8
ja 0x45a6c4
fadd qword [0x49c5e8]
fstp dword [esp + 0xa0]
jmp 0x45a6c6
fstp st(0)
test bl, bl
je 0x45a7e8
mov edx, dword [edi + 4]
push edx
call dword [0x49252c]
mov ecx, dword [0x4a7c2c]
mov esi, eax
mov eax, dword [edi + 0x50]
imul eax, eax, 0x54
mov edx, dword [eax + ecx + 0x50]
push edx
push esi
mov dword [esp + 0x30], esi
call dword [0x4920dc]
mov dword [esp + 0x40], eax
lea eax, [esp + 0x220]
push eax
push esi
call dword [0x4920d4]
fld dword [esp + 0xa0]
fld st(0)
fld qword [0x49c608]
fadd st(1), st(0)
fxch st(1)
call fcn.0048f780
fild dword [esp + 0x220]
mov ebx, eax
lea ecx, [ebx - 1]
imul ecx, dword [esp + 0x230]
fmulp st(2)
mov dword [esp + 0x1c], ecx
fild dword [esp + 0x1c]
faddp st(2)
faddp st(1)
call fcn.0048f780
mov dword [esp + 0x9c], eax
mov eax, dword [esp + 0x44]
add eax, 0xfffffffd
cmp eax, 0x14
ja case.0x45a766.5
movzx edx, byte [eax + 0x45ca54]
jmp dword [edx*4 + 0x45ca40]
mov eax, dword [0x4a7c84]
push 0x60
push eax
push 8
call dword [0x49229c]
add dword [esp + 0x9c], eax
test dword [esp + 0x14], 0x100000
je case.0x45a766.5
push 3
call dword [0x4924cc]
add dword [esp + 0x9c], eax
jmp case.0x45a766.5
mov ecx, dword [edi + 0x50]
mov edx, dword [0x4a7c2c]
imul ecx, ecx, 0x54
mov eax, dword [ecx + edx + 0x44]
mov ecx, dword [0x4a7c84]
push 0x60
add eax, 2
push ecx
push eax
call dword [0x49229c]
add dword [esp + 0x9c], eax
jmp case.0x45a766.5
mov edx, dword [edi + 0x7c]
imul edx, ebx
add dword [esp + 0x9c], edx
jmp case.0x45a766.5
inc ebx
imul ebx, dword [edi + 0x7c]
add dword [esp + 0x9c], ebx
jmp case.0x45a766.5
cmp byte [esp + 0x19], 0
jne case.0x45a766.5
mov eax, dword [0x4a7c84]
push 0x60
push eax
push 0x1e
call dword [0x49229c]
mov dword [esp + 0x9c], eax
jmp case.0x45a766.5
fstp st(0)
mov eax, 0x80000000
mov byte [esp + 0x36], 0
cmp dword [esp + 0x9c], eax
je 0x45a82a
cmp dword [esp + 0x98], eax
jne case.0x45ac65.4
mov eax, dword [esp + 0x44]
xor ebx, ebx
dec eax
mov dword [esp + 0x38], ebx
mov dword [esp + 0x30], 0x400
cmp eax, 0x15
ja case.0x45a84d.2
movzx ecx, byte [eax + 0x45ca78]
jmp dword [ecx*4 + 0x45ca6c]
mov edx, dword [esp + 0x66c]
cmp byte [edx], bl
je case.0x45a84d.2
test esi, esi
jne 0x45a893
mov eax, dword [edi + 4]
push eax
call dword [0x49252c]
mov ecx, dword [edi + 0x50]
mov edx, dword [0x4a7c2c]
imul ecx, ecx, 0x54
mov esi, eax
mov eax, dword [ecx + edx + 0x50]
push eax
push esi
mov dword [esp + 0x30], esi
call dword [0x4920dc]
mov dword [esp + 0x40], eax
lea ecx, [esp + 0x220]
push ecx
push esi
call dword [0x4920d4]
mov ebx, dword [esp + 0x234]
add ebx, 4
test dword [esp + 0x14], 0x200000
mov dword [esp + 0x38], ebx
je 0x45a8c8
push 2
call dword [0x4924cc]
add ebx, eax
mov dword [esp + 0x38], ebx
mov dword [esp + 0x30], 0x2c40
test esi, esi
jne 0x45a900
mov edx, dword [edi + 4]
push edx
call dword [0x49252c]
mov ecx, dword [0x4a7c2c]
mov esi, eax
mov eax, dword [edi + 0x50]
imul eax, eax, 0x54
mov edx, dword [eax + ecx + 0x50]
push edx
push esi
mov dword [esp + 0x30], esi
call dword [0x4920dc]
mov dword [esp + 0x40], eax
mov al, byte [esp + 0x664]
cmp al, 1
jne 0x45a921
or dword [esp + 0x30], 0x40
test byte [esp + 0x14], 0x80
je 0x45a956
or dword [esp + 0x30], 0x800
jmp 0x45a956
cmp al, 5
je 0x45a929
cmp al, 6
jne 0x45a956
lea eax, [esp + 0x220]
push eax
push esi
call dword [0x4920d4]
push 0x47
call dword [0x4924cc]
add eax, dword [esp + 0x234]
lea ebx, [ebx + eax + 2]
mov al, byte [esp + 0x664]
mov dword [esp + 0x38], ebx
mov ecx, dword [esp + 0x98]
cmp ecx, 0x80000000
je 0x45a96a
or dword [esp + 0x30], 0x10
xor edx, edx
mov dword [esp + 0x20c], edx
mov dword [esp + 0x210], edx
cmp ecx, 0x80000000
jne 0x45a98b
mov dword [esp + 0x214], edx
jmp 0x45a994
sub ecx, ebx
mov dword [esp + 0x214], ecx
mov ecx, dword [esp + 0x9c]
mov edx, ecx
sub edx, 0x80000000
neg edx
sbb edx, edx
and edx, ecx
mov dword [esp + 0x218], edx
cmp al, 0x16
jne 0x45ab0e
test byte [esp + 0x14], 4
je 0x45a9c7
or dword [esp + 0x30], 0x800
mov eax, dword [esp + 0x66c]
lea edx, [eax + 1]
mov cl, byte [eax]
inc eax
test cl, cl
jne 0x45a9d1
sub eax, edx
inc eax
push eax
call fcn.00482079
mov ecx, eax
mov eax, dword [esp + 0x670]
add esp, 4
cmp byte [eax], 0
mov dword [esp + 0x1c], ecx
mov ebx, eax
mov dword [esp + 0x5c], ecx
je 0x45aacd
cmp byte [ebx], 0x3c
jne 0x45aab6
mov al, byte [ebx + 1]
call fcn.00408ee0
cmp al, 0x41
jne 0x45aab6
lea esi, [ebx + 2]
lea esp, [esp]
mov al, byte [esi]
cmp al, 0x20
je 0x45aa2a
cmp al, 9
jne 0x45aa2d
inc esi
jmp 0x45aa20
cmp byte [esi], 0x3e
je 0x45aa83
movzx eax, byte [esi]
test eax, 0xffffff80
jne 0x45aa51
push 0x107
push eax
call fcn.0048246e
add esp, 8
test eax, eax
je 0x45aa51
inc esi
jmp 0x45aa32
cmp byte [esi], 0x3d
jne 0x45aab6
cmp byte [esi + 1], 0x22
jne 0x45aab6
push 0x22
add esi, 2
push esi
call fcn.00481f21
add esp, 8
test eax, eax
je 0x45aab6
lea esi, [eax + 1]
mov al, byte [esi]
cmp al, 0x20
je 0x45aa7b
cmp al, 9
jne 0x45aa7e
inc esi
jmp 0x45aa71
cmp byte [esi], 0x3e
jne 0x45aa32
inc esi
je 0x45aab6
push 0x49b980
mov eax, esi
call fcn.0046e8b0
add esp, 4
test eax, eax
je 0x45aab6
mov ecx, esi
cmp esi, eax
jae 0x45aab1
mov esi, dword [esp + 0x5c]
mov dl, byte [ecx]
mov byte [esi], dl
inc ecx
inc esi
cmp ecx, eax
jb 0x45aaa3
mov dword [esp + 0x5c], esi
lea ebx, [eax + 3]
jmp 0x45aac3
mov eax, dword [esp + 0x5c]
mov cl, byte [ebx]
mov byte [eax], cl
inc eax
mov dword [esp + 0x5c], eax
inc ebx
cmp byte [ebx], 0
jne 0x45aa00
mov edx, dword [esp + 0x5c]
mov eax, dword [esp + 0x1c]
mov byte [edx], 0
cmp byte [eax], 0
jne 0x45aae2
mov eax, 0x49b988
mov ecx, dword [esp + 0x30]
push ecx
lea edx, [esp + 0x210]
push edx
push 0xffffffffffffffff
push eax
mov eax, dword [esp + 0x38]
push eax
call dword [0x492470]
mov ecx, dword [esp + 0x1c]
push ecx
mov esi, eax
call fcn.004823ab
add esp, 4
jmp 0x45ab38
mov eax, dword [esp + 0x66c]
cmp byte [eax], 0
jne 0x45ab1f
mov eax, 0x49b988
mov edx, dword [esp + 0x30]
push edx
lea ecx, [esp + 0x210]
push ecx
push 0xffffffffffffffff
push eax
push esi
call dword [0x492470]
mov esi, eax
mov ebx, dword [esp + 0x214]
mov eax, dword [esp + 0x9c]
sub ebx, dword [esp + 0x20c]
cmp eax, 0x80000000
je 0x45ab62
cmp esi, eax
jle 0x45abc6
cmp byte [esp + 0x664], 0xc
je 0x45abc6
mov al, byte [esp + 0x664]
mov dword [esp + 0x9c], esi
cmp al, 0xc
jne 0x45aba7
mov edx, dword [0x4a7c84]
push 0x60
push edx
push 8
call dword [0x49229c]
add dword [esp + 0x9c], eax
test dword [esp + 0x14], 0x100000
je 0x45abc6
push 3
call dword [0x4924cc]
add dword [esp + 0x9c], eax
jmp 0x45abc6
cmp al, 4
jne 0x45abc6
mov eax, dword [edi + 0x50]
mov ecx, dword [0x4a7c2c]
imul eax, eax, 0x54
mov edx, dword [eax + ecx + 0x44]
lea eax, [edx + esi + 2]
mov dword [esp + 0x9c], eax
mov eax, dword [esp + 0x98]
cmp eax, 0x80000000
je 0x45abd8
cmp ebx, eax
jle case.0x45a84d.2
add ebx, dword [esp + 0x38]
cmp byte [esp + 0x664], 4
mov byte [esp + 0x36], 1
mov dword [esp + 0x98], ebx
jne case.0x45a84d.2
push 0x2d
call dword [0x4924cc]
mov edx, dword [edi + 0x50]
mov ecx, dword [0x4a7c2c]
imul edx, edx, 0x54
mov edx, dword [edx + ecx + 0x44]
lea eax, [edx + eax*2]
add dword [esp + 0x98], eax
cmp dword [esp + 0x98], 0x80000000
jne case.0x45ac65.4
mov ecx, dword [edi + 0x50]
mov edx, dword [0x4a7c2c]
imul ecx, ecx, 0x54
mov ecx, dword [ecx + edx + 0x44]
mov esi, dword [0x49229c]
mov eax, ecx
shl eax, 4
sub eax, ecx
mov ecx, dword [0x4a7c84]
push 0x60
push ecx
push eax
call esi
mov ecx, dword [esp + 0x44]
add ecx, 0xfffffffd
cmp ecx, 0x14
ja case.0x45ac65.4
movzx edx, byte [ecx + 0x45cab0]
jmp dword [edx*4 + 0x45ca90]
mov dword [esp + 0x98], eax
jmp case.0x45ac65.4
add eax, eax
mov dword [esp + 0x98], eax
jmp case.0x45ac65.4
test byte [esp + 0x14], 0x40
je 0x45ac96
mov dword [esp + 0x98], eax
jmp case.0x45ac65.4
mov ecx, dword [edi + 0x50]
mov edx, dword [0x4a7c2c]
imul ecx, ecx, 0x54
mov eax, dword [ecx + edx + 0x44]
mov ecx, dword [0x4a7c84]
push 0x60
add eax, eax
push ecx
push eax
call esi
mov dword [esp + 0x98], eax
jmp case.0x45ac65.4
mov ecx, dword [esp + 0x14]
test cl, 2
je case.0x45ac65.7
mov eax, dword [esp + 0xbc]
push ecx
call fcn.00463870
mov dword [esp + 0x98], eax
jmp case.0x45ac65.4
test byte [esp + 0x14], 4
je case.0x45ac65.7
mov edx, dword [edi + 0x50]
mov eax, dword [0x4a7c2c]
imul edx, edx, 0x54
mov eax, dword [edx + eax + 0x44]
jmp 0x45aca6
mov edx, dword [edi + 0x78]
lea eax, [eax + edx*2]
mov dword [esp + 0x98], eax
jmp case.0x45ac65.4
mov ecx, dword [edi + 0x78]
lea ecx, [ecx + ecx*2]
lea edx, [ecx + eax*2]
mov dword [esp + 0x98], edx
cmp byte [esp + 0x664], 0xc
jne 0x45ae2e
test byte [esp + 0x14], 4
jne 0x45ae2e
fld1
fcomp dword [esp + 0xa0]
fnstsw ax
test ah, 0x41
jne 0x45ae2e
cmp dword [esp + 0x28], 0
jne 0x45ad71
mov eax, dword [edi + 4]
push eax
call dword [0x49252c]
mov ecx, dword [edi + 0x50]
mov edx, dword [0x4a7c2c]
imul ecx, ecx, 0x54
mov ecx, dword [ecx + edx + 0x50]
push ecx
push eax
mov dword [esp + 0x30], eax
call dword [0x4920dc]
mov dword [esp + 0x40], eax
mov eax, dword [esp + 0x28]
lea edx, [esp + 0x220]
push edx
push eax
call dword [0x4920d4]
mov ecx, dword [0x4a7c84]
push 0x60
push ecx
push 8
call dword [0x49229c]
mov esi, dword [esp + 0x9c]
mov ebx, dword [esp + 0x14]
sub esi, eax
sub esi, dword [esp + 0x220]
mov dword [esp + 0x1c], esi
test ebx, 0x100000
je 0x45adc3
push 3
call dword [0x4924cc]
sub esi, eax
mov dword [esp + 0x1c], esi
test esi, esi
jle 0x45ae25
mov edx, dword [esp + 0x230]
fild dword [esp + 0x1c]
add edx, dword [esp + 0x220]
mov dword [esp + 0x1c], edx
fidiv dword [esp + 0x1c]
fadd qword [0x49c5e8]
fstp dword [esp + 0xa0]
fld dword [0x49c658]
fcomp dword [esp + 0xa0]
fnstsw ax
test ah, 5
jp 0x45ae2e
mov eax, dword [esp + 0x74]
not eax
mov ecx, eax
and ecx, 4
or ebx, ecx
mov dword [esp + 0x14], ebx
test bl, 4
je 0x45ae2e
and eax, 0x201040
or ebx, eax
mov dword [esp + 0x14], ebx
jmp 0x45ae2e
fld1
fstp dword [esp + 0xa0]
cmp byte [esp + 0x200], 0
mov edx, dword [edi + 4]
mov esi, dword [edi + 0x10]
sete byte [esp + 0x35]
push edx
mov byte [esp + 0x1d], 0
add esi, 3
mov byte [esp + 0x1f], 0
call dword [0x492480]
test eax, eax
je 0x45ae6c
mov eax, dword [edi + 4]
push eax
call dword [0x4925c4]
mov byte [esp + 0x1a], 1
test eax, eax
je 0x45ae71
mov byte [esp + 0x1a], 0
cmp byte [ebp + 6], 0xff
mov byte [esp + 0x2f], 0
jae 0x45aec2
mov ebx, dword [esp + 0x58]
test ebx, ebx
je 0x45aeba
mov ecx, dword [ebx]
push 0xfffffffffffffff0
push ecx
call dword [0x492600]
test eax, 0x10000000
je 0x45aeba
mov edx, dword [ebx]
push 0
push 0
push 0x130b
push edx
call dword [0x4925fc]
movzx ecx, byte [ebp + 7]
cmp eax, ecx
jne 0x45aeba
mov dl, byte [esp + 0x1a]
mov byte [esp + 0x2f], dl
jmp 0x45aec2
and dword [esp + 0x14], 0xefffffff
mov eax, dword [esp + 0x44]
mov ebx, dword [0x49259c]
dec eax
cmp eax, 0x17
ja case.0x45aed6.20
jmp dword [eax*4 + 0x45cac8]
mov eax, dword [0x4a5c68]
mov ecx, dword [edi + 4]
mov edx, dword [esp + 0x9c]
push 0
push eax
mov eax, dword [esp + 0xa0]
push esi
push ecx
mov ecx, dword [esp + 0xa4]
push edx
mov edx, dword [esp + 0xa4]
push eax
mov eax, dword [esp + 0x2c]
push ecx
mov ecx, dword [esp + 0x688]
push edx
mov edx, dword [esp + 0x44]
push eax
push ecx
push 0x498620
push edx
call dword [0x492648]
mov dword [ebp], eax
jmp case.0x45aed6.20
mov eax, dword [0x4a5c68]
mov ecx, dword [edi + 4]
mov edx, dword [esp + 0x9c]
push 0
push eax
mov eax, dword [esp + 0xa0]
push esi
push ecx
mov ecx, dword [esp + 0xa4]
push edx
mov edx, dword [esp + 0xa4]
push eax
mov eax, dword [esp + 0x2c]
push ecx
mov ecx, dword [esp + 0x688]
push edx
mov edx, dword [esp + 0x44]
push eax
push ecx
push 0x49b98c
push edx
call dword [0x492648]
mov dword [ebp], eax
jmp case.0x45aed6.20
mov ecx, dword [esp + 0x98]
cmp ecx, 0x80000000
jne 0x45af99
xor ecx, ecx
mov dword [esp + 0x98], ecx
mov eax, dword [esp + 0x9c]
cmp eax, 0x80000000
jne 0x45afb0
xor eax, eax
mov dword [esp + 0x9c], eax
mov edx, dword [0x4a5c68]
push 0
push edx
mov edx, dword [edi + 4]
push esi
push edx
mov edx, dword [esp + 0x24]
push eax
mov eax, dword [esp + 0xa8]
push ecx
mov ecx, dword [esp + 0xa8]
push eax
mov eax, dword [esp + 0x688]
push ecx
mov ecx, dword [esp + 0x44]
push edx
push eax
push 0x498620
push ecx
call dword [0x492648]
mov dword [ebp], eax
test eax, eax
je case.0x45aed6.20
mov dl, byte [ebp + 5]
mov ecx, dword [esp + 0xe0]
shr dl, 1
and dl, 1
movzx eax, dl
push eax
mov eax, dword [esp + 0xa0]
push ecx
mov ecx, dword [esp + 0xa0]
lea edx, [esp + 0x24]
push edx
mov edx, dword [esp + 0x678]
push eax
push ecx
push edx
call fcn.0046fab0
add esp, 0x18
mov dword [ebp + 0x10], eax
test eax, eax
je case.0x45aed6.20
mov esi, dword [esp + 0x1c]
mov ecx, dword [ebp]
mov eax, esi
neg eax
sbb eax, eax
and eax, 0xfffffff5
add eax, 0xe
or eax, dword [esp + 0x14]
push eax
push 0xfffffffffffffff0
push ecx
call ebx
mov edx, dword [ebp + 0x10]
mov eax, dword [ebp]
push edx
push esi
push 0x172
push eax
call dword [0x4925fc]
test esi, esi
jne 0x45b07f
and byte [ebp + 5], 0x7f
mov byte [esp + 0x19], 1
jmp case.0x45aed6.20
or byte [ebp + 5], 0x80
mov byte [esp + 0x19], 1
jmp case.0x45aed6.20
mov ecx, dword [0x4a5c68]
mov edx, dword [edi + 4]
mov eax, dword [esp + 0x9c]
push 0
push ecx
mov ecx, dword [esp + 0xa0]
push esi
push edx
mov edx, dword [esp + 0xa4]
push eax
mov eax, dword [esp + 0xa4]
push ecx
mov ecx, dword [esp + 0x2c]
push edx
mov edx, dword [esp + 0x688]
push eax
mov eax, dword [esp + 0x44]
push ecx
push edx
push 0x49b994
push eax
call dword [0x492648]
mov dword [ebp], eax
jmp case.0x45aed6.20
mov ecx, dword [0x4a5c68]
mov edx, dword [edi + 4]
mov eax, dword [esp + 0x9c]
push 0
push ecx
mov ecx, dword [esp + 0xa0]
push esi
push edx
mov edx, dword [esp + 0xa4]
push eax
mov eax, dword [esp + 0xa4]
push ecx
mov ecx, dword [esp + 0x2c]
push edx
mov edx, dword [esp + 0x688]
push eax
mov eax, dword [esp + 0x44]
push ecx
push edx
push 0x49b994
push eax
call dword [0x492648]
mov dword [ebp], eax
test eax, eax
je case.0x45aed6.20
test byte [esp + 0x14], 1
je case.0x45aed6.20
mov eax, dword [edi + 0x1c]
cmp eax, dword [edi + 0x10]
jae 0x45b17f
mov edx, dword [edi + 0x18]
push 1
lea ecx, [eax + eax*4]
mov eax, dword [edx + ecx*4]
push 0xfffffffffffffff0
push eax
call dword [0x492600]
mov edx, dword [edi + 0x18]
mov esi, dword [0x4925fc]
and eax, 0xfffe
push eax
mov eax, dword [edi + 0x1c]
lea ecx, [eax + eax*4]
mov eax, dword [edx + ecx*4]
push 0xf4
push eax
call esi
jmp 0x45b185
mov esi, dword [0x4925fc]
mov eax, dword [edi + 0x10]
mov ecx, dword [edi + 4]
push 0
mov dword [edi + 0x1c], eax
add eax, 3
push eax
push 0x401
push ecx
call esi
movzx edx, word [esp + 0x14]
mov eax, dword [ebp]
push 1
push edx
push 0xf4
push eax
call esi
jmp case.0x45aed6.20
mov ecx, dword [0x4a5c68]
mov edx, dword [edi + 4]
mov eax, dword [esp + 0x9c]
push 0
push ecx
mov ecx, dword [esp + 0xa0]
push esi
push edx
mov edx, dword [esp + 0xa4]
push eax
mov eax, dword [esp + 0xa4]
push ecx
mov ecx, dword [esp + 0x2c]
push edx
mov edx, dword [esp + 0x688]
push eax
mov eax, dword [esp + 0x44]
push ecx
push edx
push 0x49b994
push eax
call dword [0x492648]
mov dword [ebp], eax
test eax, eax
je case.0x45aed6.20
mov ecx, dword [esp + 0xdc]
test ecx, ecx
je case.0x45aed6.20
push 0
push ecx
push 0xf1
push eax
call dword [0x4925fc]
jmp case.0x45aed6.20
cmp dword [esp + 0xd4], 0
je 0x45b242
cmp byte [ebp + 4], 8
jne 0x45b242
and dword [esp + 0x14], 0xffffffbf
mov ecx, dword [0x4a5c68]
mov edx, dword [edi + 4]
mov eax, dword [esp + 0x9c]
mov ebx, dword [esp + 0x14]
push 0
push ecx
mov ecx, dword [esp + 0xa0]
push esi
push edx
mov edx, dword [esp + 0xa4]
push eax
mov eax, dword [esp + 0xa4]
push ecx
mov ecx, dword [esp + 0x3c]
push edx
push eax
push ebx
push 0x4947f9
push 0x49b99c
push ecx
call dword [0x492648]
mov dword [ebp], eax
test eax, eax
je case.0x45aed6.20
mov ecx, dword [edi + 0x50]
movzx edx, byte [esp + 0x1a]
imul ecx, ecx, 0x54
mov esi, dword [0x4925fc]
push edx
mov edx, dword [0x4a7c2c]
mov ecx, dword [ecx + edx + 0x50]
push ecx
push 0x30
push eax
call esi
cmp byte [esp + 0x22], 0
mov byte [esp + 0x1b], 1
je 0x45b35c
mov edx, dword [ebp]
push 0
push 0
push 0x154
push edx
call esi
mov dword [esp + 0x38], eax
test bl, 1
je 0x45b2e9
mov esi, 4
test bl, 2
je 0x45b2ee
mov esi, 2
mov eax, dword [0x4a7c84]
mov ebx, dword [0x49229c]
push 0x60
push eax
push 8
call ebx
mov ecx, dword [esp + 0x38]
add eax, esi
lea eax, [eax + ecx*2]
mov ecx, dword [esp + 0x9c]
cmp ecx, eax
jge 0x45b31f
mov ecx, eax
mov dword [esp + 0x9c], ecx
jmp 0x45b363
fldz
fcomp dword [esp + 0xa0]
fnstsw ax
test ah, 5
jp 0x45b363
mov edx, dword [0x4a7c84]
push 0x60
push edx
push 8
call ebx
fild dword [esp + 0x38]
mov ebx, eax
fmul dword [esp + 0xa0]
call fcn.0048f780
lea ecx, [esi + eax]
add ecx, ebx
mov dword [esp + 0x9c], ecx
jmp 0x45b363
mov ecx, dword [esp + 0x9c]
mov eax, dword [esp + 0x98]
mov edx, dword [esp + 0x90]
push 1
push ecx
mov ecx, dword [esp + 0x9c]
push eax
mov eax, dword [ebp]
push ecx
push edx
push eax
call dword [0x4925f0]
mov byte [esp + 0x19], 1
jmp case.0x45aed6.20
mov ecx, dword [0x4a5c68]
mov edx, dword [edi + 4]
mov eax, dword [esp + 0x9c]
push 0
push ecx
mov ecx, dword [esp + 0xa0]
push esi
push edx
mov edx, dword [esp + 0xa4]
push eax
mov eax, dword [esp + 0xa4]
push ecx
mov ecx, dword [esp + 0x2c]
push edx
mov edx, dword [esp + 0x40]
push eax
push ecx
push 0x4947f9
push 0x49b9a8
push edx
call dword [0x492648]
mov dword [ebp], eax
test eax, eax
je case.0x45aed6.20
mov ecx, dword [esp + 0x1ac]
test ecx, ecx
je 0x45b405
lea edx, [esp + 0xe4]
push edx
push ecx
push 0x192
push eax
call dword [0x4925fc]
mov ecx, dword [edi + 0x50]
movzx eax, byte [esp + 0x1a]
imul ecx, ecx, 0x54
mov edx, dword [0x4a7c2c]
mov esi, dword [0x4925fc]
push eax
mov eax, dword [ecx + edx + 0x50]
mov ecx, dword [ebp]
push eax
push 0x30
push ecx
call esi
mov edx, dword [ebp]
push 0
push 0
push 0x1a1
push edx
mov byte [esp + 0x2b], 1
call esi
mov ebx, eax
mov eax, dword [0x4a7c84]
push 0x60
push eax
push 8
mov dword [esp + 0x44], ebx
call dword [0x49229c]
lea esi, [ebx + eax]
mov ebx, dword [esp + 0x14]
and ebx, 0x100000
je 0x45b46d
push 3
call dword [0x4924cc]
add esi, eax
mov ecx, dword [esp + 0x9c]
cmp ecx, esi
jge 0x45b47c
mov ecx, esi
jmp 0x45b4ce
fldz
fcomp dword [esp + 0xa0]
fnstsw ax
test ah, 5
jp 0x45b4d5
mov ecx, dword [0x4a7c84]
push 0x60
push ecx
push 8
call dword [0x49229c]
fild dword [esp + 0x38]
mov esi, eax
fmul dword [esp + 0xa0]
call fcn.0048f780
lea ecx, [esi + eax]
mov dword [esp + 0x9c], ecx
test ebx, ebx
je 0x45b4d5
push 3
call dword [0x4924cc]
mov ecx, dword [esp + 0x9c]
add ecx, eax
mov dword [esp + 0x9c], ecx
mov edx, dword [esp + 0x98]
mov eax, dword [esp + 0x94]
push 1
push ecx
mov ecx, dword [esp + 0x98]
push edx
mov edx, dword [ebp]
push eax
push ecx
push edx
call dword [0x4925f0]
mov byte [esp + 0x19], 1
jmp case.0x45aed6.20
mov eax, dword [esp + 0x84]
cmp eax, 4
je 0x45b51d
mov ecx, dword [esp + 0x14]
and ecx, 0xfffffffc
or ecx, eax
mov dword [esp + 0x14], ecx
mov eax, dword [esp + 0x9c]
cmp eax, 0x80000000
jne 0x45b530
mov eax, 0xc8
mov edx, dword [0x4a5c68]
mov ecx, dword [edi + 4]
push 0
push edx
mov edx, dword [esp + 0xa0]
push esi
push ecx
mov ecx, dword [esp + 0xa0]
push eax
mov eax, dword [esp + 0xa8]
push edx
mov edx, dword [esp + 0x2c]
push eax
mov eax, dword [esp + 0x40]
push ecx
push edx
push 0x4947f9
push 0x494814
push eax
call dword [0x492648]
mov esi, eax
mov dword [ebp], esi
test esi, esi
je case.0x45aed6.20
push 0x3f8
call fcn.00481109
add esp, 4
mov dword [ebp + 0x10], eax
test eax, eax
jne 0x45b5a5
push esi
call dword [0x4924b0]
mov dword [ebp], 0
jmp case.0x45aed6.20
push 0x3f8
mov dword [edi + 0x48], ebp
mov ecx, dword [ebp + 0x10]
push 0
push ecx
call fcn.0048a290
mov edx, dword [ebp + 0x10]
mov dword [edx], 0xffffffff
mov eax, dword [ebp + 0x10]
mov cl, byte [esp + 0x20d]
mov byte [eax + 5], cl
mov eax, dword [esp + 0x64]
add esp, 0xc
test eax, eax
je 0x45b5dd
or byte [eax + 5], 0x80
cmp dword [esp + 0x84], 4
mov ebx, dword [0x4925fc]
jne 0x45b5fc
mov edx, dword [ebp]
push 0
push 4
push 0x108e
push edx
call ebx
mov eax, dword [esp + 0x80]
test eax, eax
je 0x45b615
push eax
mov eax, dword [ebp]
push 0
push 0x1036
push eax
call ebx
lea eax, [esp + 0x70]
mov edi, ebp
call fcn.004639e0
cmp dword [esp + 0x9c], 0x80000000
jne 0x45c24c
mov esi, dword [esp + 0x660]
mov edx, dword [esi + 0x50]
movzx ecx, byte [esp + 0x1a]
imul edx, edx, 0x54
mov eax, dword [0x4a7c2c]
push ecx
mov ecx, dword [edx + eax + 0x50]
mov edx, dword [ebp]
push ecx
push 0x30
push edx
call ebx
mov eax, dword [esp + 0x84]
dec eax
mov byte [esp + 0x1b], 1
je 0x45b7be
sub eax, 3
je 0x45b790
mov edi, dword [esp + 0x28]
test edi, edi
jne 0x45b6a6
mov eax, dword [esi + 4]
push eax
call dword [0x49252c]
mov ecx, dword [esi + 0x50]
mov edx, dword [0x4a7c2c]
imul ecx, ecx, 0x54
mov edi, eax
mov eax, dword [ecx + edx + 0x50]
push eax
push edi
mov dword [esp + 0x30], edi
call dword [0x4920dc]
mov dword [esp + 0x40], eax
lea ecx, [esp + 0x220]
push ecx
push edi
call dword [0x4920d4]
cmp dword [esp + 0x84], 0
jne 0x45b754
mov edx, dword [ebp]
push 0
push 0
push 0x1033
push edx
call ebx
mov dword [esp + 0x1c], eax
fild dword [esp + 0x1c]
test eax, eax
jns 0x45b6e4
fadd dword [0x49c630]
fld dword [esp + 0xa0]
push 0xc
fsub qword [0x49c5e8]
fnstcw word [esp + 0x26]
movzx eax, word [esp + 0x26]
fmulp st(1)
or eax, 0xc00
mov dword [esp + 0x20], eax
fldcw word [esp + 0x20]
fistp qword [esp + 0x64]
mov eax, dword [esp + 0x64]
shr eax, 0x10
mov dword [esp + 0x20], eax
fldcw word [esp + 0x26]
fild dword [esp + 0x20]
fstp qword [esp + 0x64]
call dword [0x4924cc]
mov dword [esp + 0x1c], eax
fild dword [esp + 0x1c]
fmul dword [esp + 0xa0]
fadd qword [esp + 0x60]
call fcn.0048f780
mov ecx, dword [esp + 0x220]
lea eax, [eax + ecx + 0x10]
jmp 0x45b7fc
push 0x32
call dword [0x4924cc]
mov ecx, dword [esp + 0x220]
mov dword [esp + 0x1c], eax
cmp eax, ecx
jg 0x45b76f
mov dword [esp + 0x1c], ecx
fild dword [esp + 0x1c]
fld dword [esp + 0xa0]
fld st(0)
fmulp st(2)
fsub qword [0x49c5e8]
faddp st(1)
call fcn.0048f780
add eax, 0xb
jmp 0x45b7fc
mov edx, dword [ebp]
push 0
push 0
push 0x1033
push edx
call ebx
shr eax, 0x10
sub eax, 3
mov dword [esp + 0x1c], eax
fild dword [esp + 0x1c]
fmul dword [esp + 0xa0]
call fcn.0048f780
add eax, 7
jmp 0x45b7fc
fld dword [esp + 0xa0]
mov ecx, dword [ebp]
fnstcw word [esp + 0x22]
push 0xffffffffffffffff
movzx eax, word [esp + 0x26]
or eax, 0xc00
mov dword [esp + 0x20], eax
fldcw word [esp + 0x20]
fistp qword [esp + 0x64]
mov eax, dword [esp + 0x64]
dec eax
push eax
push 0x1040
fldcw word [esp + 0x2e]
push ecx
call ebx
shr eax, 0x10
add eax, 4
mov edx, dword [esp + 0x98]
mov ecx, dword [esp + 0x90]
push 1
push eax
push edx
mov dword [esp + 0xa8], eax
mov eax, dword [esp + 0xa0]
mov edx, dword [ebp]
push eax
push ecx
push edx
call dword [0x4925f0]
mov edi, esi
jmp case.0x45aed6.20
mov eax, dword [esp + 0x9c]
cmp eax, 0x80000000
jne 0x45b842
mov eax, 0xc8
mov ecx, dword [0x4a5c68]
mov edx, dword [edi + 4]
push 0
push ecx
mov ecx, dword [esp + 0x9c]
push esi
push edx
mov edx, dword [esp + 0xa0]
push eax
mov eax, dword [esp + 0xac]
push eax
mov eax, dword [esp + 0x2c]
push ecx
mov ecx, dword [esp + 0x40]
push edx
push eax
push 0x4947f9
push 0x494804
push ecx
call dword [0x492648]
mov dword [ebp], eax
test eax, eax
je case.0x45aed6.20
cmp dword [esp + 0xdc], 0
mov dword [edi + 0x4c], ebp
je 0x45b8ae
mov edx, dword [esp + 0x14]
mov eax, dword [ebp]
or edx, 0x100
push edx
push 0xfffffffffffffff0
push eax
call ebx
lea edi, [esp + 0x70]
mov esi, ebp
call fcn.00463a90
mov eax, dword [esp + 0x88]
mov edi, dword [0x4925fc]
test eax, eax
je 0x45b8d8
mov ecx, dword [ebp]
push eax
push 0
push 0x1109
push ecx
call edi
cmp dword [esp + 0x9c], 0x80000000
jne 0x45c24c
mov esi, dword [esp + 0x660]
mov eax, dword [esi + 0x50]
movzx edx, byte [esp + 0x1a]
imul eax, eax, 0x54
mov ecx, dword [0x4a7c2c]
push edx
mov edx, dword [eax + ecx + 0x50]
mov eax, dword [ebp]
push edx
push 0x30
push eax
call edi
mov ecx, dword [ebp]
push 0
push 0
push 0x111c
push ecx
mov byte [esp + 0x2b], 1
call edi
mov dword [esp + 0x9c], eax
cmp eax, 2
jge 0x45b947
mov edx, dword [esi + 0x50]
mov eax, dword [0x4a7c2c]
imul edx, edx, 0x54
mov ecx, dword [edx + eax + 0x44]
add ecx, ecx
mov dword [esp + 0x9c], ecx
fild dword [esp + 0x9c]
fmul dword [esp + 0xa0]
call fcn.0048f780
mov edx, dword [esp + 0x98]
mov ecx, dword [esp + 0x90]
push 1
add eax, 4
push eax
push edx
mov dword [esp + 0xa8], eax
mov eax, dword [esp + 0xa0]
mov edx, dword [ebp]
push eax
push ecx
push edx
call dword [0x4925f0]
mov edi, esi
jmp case.0x45aed6.20
mov eax, dword [esp + 0x14]
test al, 4
jne 0x45b9bb
cmp dword [esp + 0xd4], 0
jge 0x45b9a9
and eax, 0xffefff7f
jmp 0x45b9b7
mov ecx, dword [esp + 0x74]
not ecx
and ecx, 0x80
or eax, ecx
mov dword [esp + 0x14], eax
mov ecx, dword [esp + 0x66c]
cmp byte [ecx], 0
je 0x45b9df
test al, 4
je 0x45b9df
mov edi, ecx
call fcn.0046f1a0
mov edi, dword [esp + 0x660]
mov dword [esp + 0x3c], eax
jmp 0x45b9e5
mov dword [esp + 0x3c], ecx
mov eax, ecx
test eax, eax
jne 0x45b9f0
mov eax, dword [esp + 0x66c]
mov edx, dword [0x4a5c68]
mov ecx, dword [edi + 4]
mov ebx, dword [esp + 0x14]
push 0
push edx
mov edx, dword [esp + 0xa4]
push esi
push ecx
mov ecx, dword [esp + 0xa8]
push edx
mov edx, dword [esp + 0xa8]
push ecx
mov ecx, dword [esp + 0xa8]
push edx
mov edx, dword [esp + 0x40]
push ecx
push ebx
push eax
push 0x4966a4
push edx
call dword [0x492648]
mov dword [ebp], eax
test eax, eax
je 0x45baa8
test bl, 0x20
je 0x45ba61
mov cl, byte [esp + 0x1fc]
test cl, cl
je 0x45ba61
mov esi, dword [0x4925fc]
push 0
movsx ecx, cl
push ecx
push 0xcc
push eax
call esi
jmp 0x45ba67
mov esi, dword [0x4925fc]
mov eax, dword [esp + 0xd4]
test eax, eax
jns 0x45ba7b
xor eax, eax
mov dword [esp + 0xd4], eax
mov edx, dword [ebp]
push 0
push eax
push 0xc5
push edx
call esi
mov eax, dword [esp + 0x1ac]
test eax, eax
je 0x45baa8
mov edx, dword [ebp]
lea ecx, [esp + 0xe4]
push ecx
push eax
push 0xcb
push edx
call esi
mov eax, dword [esp + 0x3c]
test eax, eax
je case.0x45aed6.20
cmp eax, dword [esp + 0x66c]
je case.0x45aed6.20
push eax
call fcn.00480f68
add esp, 4
jmp case.0x45aed6.20
mov eax, dword [esp + 0x66c]
cmp byte [eax], 0
mov byte [esp + 0x22], 0
je 0x45bb2b
mov ebx, eax
push 0x4998f8
push ebx
call fcn.00480f51
add esp, 8
test eax, eax
jne 0x45bb04
mov ecx, dword [esp + 0x14]
and ecx, 0xfffffff6
or ecx, 4
mov dword [esp + 0x14], ecx
jmp 0x45bb2b
push 0x49657c
push ebx
call fcn.00480f51
add esp, 8
test eax, eax
jne 0x45bb26
mov edx, dword [esp + 0x14]
and edx, 0xfffffffb
or edx, 9
mov dword [esp + 0x14], edx
jmp 0x45bb2b
mov byte [esp + 0x22], 1
mov eax, 2
cmp dword [esp + 0xa4], eax
jne 0x45bb3d
or dword [esp + 0x14], eax
mov eax, dword [0x4a5c68]
mov ecx, dword [edi + 4]
mov edx, dword [esp + 0x9c]
push 0
push eax
mov eax, dword [esp + 0xa0]
push esi
push ecx
mov ecx, dword [esp + 0xa4]
push edx
mov edx, dword [esp + 0xa4]
push eax
mov eax, dword [esp + 0x2c]
push ecx
mov ecx, dword [esp + 0x40]
push edx
push eax
push 0x4947f9
push 0x49b9b0
push ecx
call dword [0x492648]
mov dword [ebp], eax
test eax, eax
je case.0x45aed6.20
cmp byte [esp + 0x22], 0
mov esi, dword [0x4925fc]
je 0x45bbae
mov edx, dword [esp + 0x66c]
push edx
push 0
push 0x1005
push eax
call esi
mov eax, dword [esp + 0x1f4]
test eax, eax
je 0x45bbcd
mov edx, dword [ebp]
lea ecx, [esp + 0x1d0]
push ecx
push eax
push 0x1004
push edx
call esi
mov eax, dword [esp + 0xa4]
test eax, eax
je 0x45bbf4
xor edx, edx
cmp eax, 1
mov eax, dword [ebp]
setne dl
lea ecx, [esp + 0x1b0]
push ecx
push edx
push 0x1002
push eax
call esi
mov eax, dword [ebp + 0x10]
cmp eax, 0xff000000
je case.0x45aed6.20
mov ecx, dword [ebp]
push eax
push 1
push 0x1006
push ecx
call esi
jmp case.0x45aed6.20
cmp dword [esp + 0x1f0], 0
jne 0x45bc4a
mov edx, dword [esp + 0x66c]
cmp byte [edx], 0
je 0x45bc4a
lea eax, [esp + 0x1b0]
mov ecx, edx
call fcn.0046dfd0
mov dword [esp + 0x1f0], eax
cmp eax, 3
jne 0x45bc4a
or dword [esp + 0x14], 2
mov ecx, dword [esp + 0x9c]
cmp ecx, 0x80000000
jne 0x45bc5e
mov ecx, 0x64
mov eax, dword [esp + 0x98]
test eax, eax
jns 0x45bc6e
mov eax, 0x64
mov edx, dword [0x4a5c68]
push 0
push edx
mov edx, dword [edi + 4]
push esi
mov esi, dword [esp + 0x20]
push edx
mov edx, dword [esp + 0x34]
push ecx
mov ecx, dword [esp + 0xa4]
push eax
mov eax, dword [esp + 0xac]
push eax
push ecx
push esi
push 0x4947f9
push 0x49b9c4
push edx
call dword [0x492648]
mov dword [ebp], eax
test eax, eax
je 0x45c24c
and esi, 2
je 0x45bccb
push 0
push 0x16e
push 0x1004
push eax
call dword [0x4925fc]
mov eax, dword [esp + 0x1f4]
mov ebx, dword [0x4925fc]
test eax, eax
je 0x45bcf0
mov edx, dword [ebp]
lea ecx, [esp + 0x1d0]
push ecx
push eax
push 0x1012
push edx
call ebx
mov eax, dword [esp + 0x1f0]
test eax, eax
je 0x45bd66
test esi, esi
je 0x45bd51
cmp eax, 1
jne 0x45bd3c
mov eax, dword [esp + 0x1b0]
mov ecx, dword [esp + 0x1b4]
mov edx, dword [esp + 0x1b8]
mov dword [esp + 0x1c0], eax
mov eax, dword [esp + 0x1bc]
mov dword [esp + 0x1c4], ecx
mov dword [esp + 0x1c8], edx
mov dword [esp + 0x1cc], eax
mov edx, dword [ebp]
lea ecx, [esp + 0x1b0]
push ecx
push 0
push 0x1006
push edx
jmp 0x45bd64
mov ecx, dword [ebp]
lea eax, [esp + 0x1b0]
push eax
push 0
push 0x1002
push ecx
call ebx
mov eax, dword [ebp + 0x10]
cmp eax, 0xff000000
je 0x45bd7e
mov edx, dword [ebp]
push eax
push 1
push 0x100a
push edx
call ebx
mov ecx, dword [edi + 0x50]
movzx eax, byte [esp + 0x1a]
imul ecx, ecx, 0x54
mov edx, dword [0x4a7c2c]
push eax
mov eax, dword [ecx + edx + 0x50]
mov ecx, dword [ebp]
push eax
push 0x30
push ecx
call ebx
mov esi, 0x80000000
mov byte [esp + 0x1b], 1
cmp dword [esp + 0x98], esi
je 0x45bdbd
cmp dword [esp + 0x9c], esi
jne case.0x45aed6.20
mov eax, dword [ebp]
lea edx, [esp + 0x48]
push edx
push 0
push 0x1009
push eax
call ebx
test eax, eax
je 0x45c24c
cmp dword [esp + 0x98], 0
jge 0x45be2f
test byte [esp + 0x14], 0x10
je 0x45bdee
mov eax, dword [esp + 0x50]
jmp 0x45be07
mov ecx, dword [ebp]
push 0
push 0
push 0x1015
push ecx
call ebx
mov ecx, dword [esp + 0x50]
cmp eax, ecx
jge 0x45be07
mov eax, ecx
mov ecx, dword [esp + 0x98]
cmp ecx, esi
jne 0x45be1b
mov dword [esp + 0x98], eax
jmp 0x45be2f
add eax, 6
imul eax, ecx
mov edx, 0xfffffffa
sub edx, eax
mov dword [esp + 0x98], edx
mov ecx, dword [esp + 0x9c]
cmp ecx, esi
jne 0x45bf23
fldz
mov ecx, dword [esp + 0x54]
fld dword [esp + 0xa0]
mov dword [esp + 0x9c], ecx
fcom st(1)
fnstsw ax
fstp st(1)
test ah, 0x41
jne 0x45bf21
fld1
fucompp
fnstsw ax
test ah, 0x44
jnp 0x45bf23
mov esi, dword [esp + 0x28]
test esi, esi
jne 0x45bea4
mov eax, dword [edi + 4]
push eax
call dword [0x49252c]
mov ecx, dword [edi + 0x50]
mov edx, dword [0x4a7c2c]
imul ecx, ecx, 0x54
mov esi, eax
mov eax, dword [ecx + edx + 0x50]
push eax
push esi
mov dword [esp + 0x30], esi
call dword [0x4920dc]
mov dword [esp + 0x40], eax
lea ecx, [esp + 0x220]
push ecx
push esi
call dword [0x4920d4]
test byte [esp + 0x14], 0x10
mov esi, dword [esp + 0x220]
je 0x45bed3
mov edx, dword [esp + 0x9c]
lea eax, [edx + esi + 4]
mov dword [esp + 0x9c], eax
fild dword [esp + 0x9c]
fld dword [esp + 0xa0]
fld st(0)
fmulp st(2)
fxch st(1)
call fcn.0048f780
add esi, 0xfffffffe
mov dword [esp + 0x9c], eax
fild dword [esp + 0x9c]
mov dword [esp + 0x1c], esi
fild dword [esp + 0x1c]
fxch st(2)
fsub qword [0x49c5e8]
fmulp st(2)
fsubrp st(1)
call fcn.0048f780
mov ecx, eax
mov dword [esp + 0x9c], ecx
jmp 0x45bf23
fstp st(0)
mov edx, dword [esp + 0x94]
mov eax, dword [esp + 0x90]
push 1
push ecx
mov ecx, dword [esp + 0xa0]
push ecx
mov ecx, dword [ebp]
push edx
push eax
push ecx
call dword [0x4925f0]
jmp case.0x45aed6.20
mov edx, dword [0x4a5c68]
mov eax, dword [edi + 4]
mov ecx, dword [esp + 0x9c]
push 0
push edx
mov edx, dword [esp + 0xa0]
push esi
push eax
mov eax, dword [esp + 0xa4]
push ecx
mov ecx, dword [esp + 0xa4]
push edx
mov edx, dword [esp + 0x2c]
push eax
mov eax, dword [esp + 0x40]
push ecx
push edx
push 0x4947f9
push 0x49b9d4
push eax
call dword [0x492648]
mov dword [ebp], eax
test eax, eax
je 0x45c24c
mov eax, dword [esp + 0x66c]
cmp byte [eax], 0
je 0x45bfc6
push 0
call fcn.00463540
mov edx, dword [ebp]
movzx ecx, ax
push ecx
push 0x401
push edx
call dword [0x4925fc]
mov eax, dword [esp + 0xd4]
test eax, eax
jle 0x45c24c
push 6
push eax
mov eax, dword [ebp]
push 0x403
push eax
call dword [0x4925fc]
jmp case.0x45aed6.20
test byte [esp + 0x14], 0x10
je 0x45c1a8
cmp dword [edi + 8], 0
jne 0x45c013
mov eax, dword [esp + 0x58]
test eax, eax
je 0x45c1a8
test byte [eax + 5], 0x80
je 0x45c1a8
and dword [esp + 0x14], 0xffffffef
mov bl, 1
mov ecx, dword [0x4a5c68]
mov edx, dword [edi + 4]
mov eax, dword [esp + 0x9c]
push 0
push ecx
mov ecx, dword [esp + 0xa0]
push esi
push edx
mov edx, dword [esp + 0xa4]
push eax
mov eax, dword [esp + 0xa4]
push ecx
mov ecx, dword [esp + 0x2c]
push edx
mov edx, dword [esp + 0x40]
push eax
push ecx
push 0x4947f9
push str.I4ek
push edx
call dword [0x492648]
mov dword [ebp], eax
test eax, eax
je 0x45c24c
mov esi, dword [esp + 0x3c]
test bl, bl
je 0x45c086
mov ecx, dword [esi]
push 0
push ecx
push 0x469
push eax
call dword [0x4925fc]
cmp dword [edi + 0x10], 0
je 0x45c1f5
test byte [esp + 0x14], 0x10
jne 0x45c09f
test bl, bl
je 0x45c1f5
mov eax, dword [ebp]
mov ebx, dword [0x49263c]
lea edx, [esp + 0x48]
push edx
push eax
call ebx
mov edx, dword [edi + 4]
push 2
lea ecx, [esp + 0x4c]
push ecx
push edx
push 0
call dword [0x4923e8]
mov eax, dword [esp + 0x48]
mov edx, dword [esp + 0x50]
mov ecx, dword [esp + 0x4c]
sub edx, eax
mov dword [esp + 0x90], eax
mov eax, dword [esp + 0x54]
mov dword [esp + 0x94], ecx
sub eax, ecx
lea ecx, [esp + 0x60]
mov dword [esp + 0x98], edx
mov dword [esp + 0x9c], eax
mov edx, dword [esi]
push ecx
push edx
call ebx
mov ecx, dword [edi + 4]
push 2
lea eax, [esp + 0x64]
push eax
push ecx
push 0
call dword [0x4923e8]
cmp byte [edi + 0xbf], 0
mov bl, byte [esp + 0x14]
je 0x45c189
test bl, 4
je 0x45c15b
mov eax, dword [esp + 0x98]
mov edx, dword [esp + 0x9c]
mov ecx, dword [esp + 0x90]
add dword [esp + 0x50], eax
push 1
push edx
add ecx, eax
push eax
mov eax, dword [esp + 0xa0]
push eax
push ecx
mov dword [esp + 0xa4], ecx
mov ecx, dword [ebp]
push ecx
call dword [0x4925f0]
mov ecx, dword [esp + 0x64]
mov eax, dword [esp + 0x68]
mov edx, dword [esp + 0x6c]
add eax, dword [esp + 0x98]
push 1
sub edx, ecx
push edx
mov edx, dword [esp + 0x68]
mov dword [esp + 0x70], eax
sub eax, edx
push eax
mov eax, dword [esi]
push ecx
push edx
push eax
call dword [0x4925f0]
test bl, 4
je 0x45c1af
mov eax, dword [esp + 0x60]
mov ecx, dword [esp + 0x50]
sub ecx, eax
mov dword [esp + 0x90], eax
mov dword [esp + 0x98], ecx
jmp 0x45c1be
xor bl, bl
jmp 0x45c01a
mov edx, dword [esp + 0x68]
sub edx, dword [esp + 0x48]
mov dword [esp + 0x98], edx
cmp byte [esp + 0x1fd], 0
jne 0x45c212
cmp byte [esi + 4], 9
jne 0x45c1ff
mov byte [esp + 0x1fd], 1
test bl, 0x40
je 0x45c1e8
mov dword [esp + 0xac], 0x7fff
jmp 0x45c212
mov dword [esp + 0xa8], 0x7fff
jmp 0x45c212
cmp byte [esp + 0x1fd], 0
jne 0x45c212
mov byte [esp + 0x1fd], 1
mov dword [esp + 0xac], 0x64
lea ecx, [esp + 0x70]
mov eax, ebp
call fcn.00463820
mov esi, dword [esp + 0x66c]
call fcn.0040c870
mov edx, dword [ebp]
push eax
mov al, byte [ebp + 5]
and al, 0x80
movzx ecx, al
neg ecx
sbb ecx, ecx
and ecx, 0xa
push 0
add ecx, 0x467
push ecx
push edx
call dword [0x4925fc]
mov edi, dword [esp + 0x660]
mov esi, dword [esp + 0x28]
test esi, esi
je 0x45c276
mov eax, dword [esp + 0x40]
test eax, eax
je 0x45c26b
push eax
push esi
call dword [0x4920dc]
mov edx, dword [edi + 4]
push esi
push edx
call dword [0x492528]
cmp dword [ebp], 0
jne 0x45c5f9
push 0x4947f9
push 0x49ba50
mov ecx, 0x4a7ce0
call fcn.0042cde0
pop edi
pop esi
pop ebp
pop ebx
add esp, 0x64c
ret 0x10
mov eax, dword [0x4a5c68]
mov ecx, dword [edi + 4]
mov edx, dword [esp + 0x9c]
push 0
push eax
mov eax, dword [esp + 0xa0]
push esi
push ecx
mov ecx, dword [esp + 0xa4]
push edx
mov edx, dword [esp + 0xa4]
push eax
mov eax, dword [esp + 0x2c]
push ecx
mov ecx, dword [esp + 0x40]
push edx
push eax
push 0x4947f9
push 0x49b9f4
push ecx
call dword [0x492648]
mov dword [ebp], eax
test eax, eax
je 0x45c24c
lea eax, [esp + 0x70]
mov esi, ebp
call fcn.00463900
mov edx, dword [esp + 0x66c]
cmp byte [edx], 0
je 0x45c24c
mov esi, edx
call fcn.0040c870
test byte [ebp + 5], 0x80
je 0x45c323
push eax
mov edi, ebp
call fcn.004638c0
push eax
mov eax, dword [ebp]
push 1
push 0x405
push eax
jmp 0x45c246
mov ecx, dword [0x4a5c68]
mov edx, dword [edi + 4]
mov eax, dword [esp + 0x9c]
push 0
push ecx
mov ecx, dword [esp + 0xa0]
push esi
push edx
mov edx, dword [esp + 0xa4]
push eax
mov eax, dword [esp + 0xa4]
push ecx
mov ecx, dword [esp + 0x2c]
push edx
mov edx, dword [esp + 0x40]
push eax
push ecx
push 0x4947f9
push 0x499314
push edx
call dword [0x492648]
mov dword [ebp], eax
test eax, eax
je 0x45c24c
mov eax, dword [esp + 0x14]
push eax
push edi
lea eax, [esp + 0x78]
mov ecx, ebp
call fcn.00463ae0
mov ecx, dword [esp + 0x66c]
cmp byte [ecx], 0
je 0x45c3c4
push 0
mov esi, ecx
call fcn.0040c870
mov edx, dword [ebp]
push eax
push 0x402
push edx
call dword [0x4925fc]
mov edi, dword [esp + 0x660]
mov byte [esp + 0x35], 0
jmp case.0x45aed6.20
mov eax, dword [0x4a5c68]
mov ecx, dword [edi + 4]
mov edx, dword [esp + 0x9c]
push 0
push eax
mov eax, dword [esp + 0xa0]
push esi
push ecx
mov ecx, dword [esp + 0xa4]
push edx
mov edx, dword [esp + 0xa4]
push eax
mov eax, dword [esp + 0x2c]
push ecx
mov ecx, dword [esp + 0x40]
push edx
push eax
push 0x4947f9
push 0x49ba08
push ecx
call dword [0x492648]
mov dword [ebp], eax
test eax, eax
je 0x45c24c
mov al, byte [edi + 0xb8]
mov byte [edi + 0xb9], al
inc al
push 0x463130
mov byte [edi + 0xba], 0
mov byte [edi + 0xb8], al
mov edx, dword [ebp]
push 0xfffffffffffffffc
push edx
call ebx
mov dword [0x4a5c8c], eax
jmp case.0x45aed6.20
cmp byte [0x4a8d5d], 0
jne 0x45c497
push 0x49b65c
call dword [0x4921b4]
mov ebx, eax
test ebx, ebx
je 0x45c497
push 0x49ba18
push ebx
call dword [0x4922d8]
test eax, eax
je 0x45c487
call eax
test eax, eax
setne byte [0x4a8d5d]
cmp byte [0x4a8d5d], 0
jne 0x45c497
push ebx
call dword [0x492340]
mov eax, dword [0x4a5c68]
mov ecx, dword [edi + 4]
mov edx, dword [esp + 0x9c]
push 0
push eax
mov eax, dword [esp + 0xa0]
push esi
push ecx
mov ecx, dword [esp + 0xa4]
push edx
mov edx, dword [esp + 0xa4]
push eax
mov eax, dword [esp + 0x2c]
push ecx
mov ecx, dword [esp + 0x688]
push edx
mov edx, dword [esp + 0x44]
push eax
push ecx
push 0x49ba28
push edx
call dword [0x492648]
mov dword [ebp], eax
test eax, eax
je 0x45c24c
push eax
call fcn.00453de0
add esp, 4
test eax, eax
jne 0x45c50f
mov eax, dword [ebp]
push eax
call dword [0x4924b0]
mov dword [ebp], 0
jmp case.0x45aed6.20
mov ecx, dword [ebp + 8]
push eax
test ecx, ecx
je 0x45c523
mov eax, ecx
call fcn.004125f0
jmp case.0x45aed6.20
mov ecx, dword [eax]
mov edx, dword [ecx + 8]
call edx
jmp case.0x45aed6.20
mov ax, word [esp + 0x202]
test ax, ax
jne 0x45c55d
push 0x4947f9
push 0x49ba34
mov ecx, 0x4a7ce0
call fcn.0042cde0
pop edi
pop esi
pop ebp
pop ebx
add esp, 0x64c
ret 0x10
mov ecx, dword [0x4a5c68]
mov edx, dword [edi + 4]
push 0
push ecx
mov ecx, dword [esp + 0xa4]
push esi
push edx
mov edx, dword [esp + 0xa8]
push ecx
mov ecx, dword [esp + 0xa8]
push edx
mov edx, dword [esp + 0xa8]
push ecx
mov ecx, dword [esp + 0x30]
push edx
mov edx, dword [esp + 0x68c]
push ecx
mov ecx, dword [esp + 0x48]
movzx eax, ax
push edx
push eax
push ecx
call dword [0x492648]
mov dword [ebp], eax
jmp case.0x45aed6.20
mov edx, dword [edi + 4]
mov eax, dword [esp + 0x66c]
mov ecx, dword [esp + 0x14]
push esi
push edx
push eax
push ecx
call dword [0x492054]
mov dword [ebp], eax
test eax, eax
je case.0x45aed6.20
mov ecx, dword [esp + 0xd0]
mov dword [edi + 8], eax
cmp ecx, 0xffffffff
je case.0x45aed6.20
push ecx
push 0
push 0x2001
push eax
call dword [0x4925fc]
jmp case.0x45aed6.20
mov al, byte [esp + 0x36]
inc dword [edi + 0x10]
mov byte [edi + 0xbf], al
mov eax, dword [esp + 0x8c]
test eax, eax
je 0x45c61a
mov ecx, dword [ebp]
push eax
call fcn.00470890
cmp byte [ebp + 4], 6
jne 0x45c63e
mov eax, dword [esp + 0xdc]
test eax, eax
je 0x45c638
push eax
mov eax, dword [edi + 0x10]
dec eax
push ebp
mov ecx, edi
call fcn.00463770
mov byte [edi + 0x44], 1
jmp 0x45c642
mov byte [edi + 0x44], 0
test dword [esp + 0x74], 0x10000000
je 0x45c650
or byte [ebp + 5], 8
test dword [esp + 0x70], 0x8000000
je 0x45c65e
or byte [ebp + 5], 0x10
cmp byte [esp + 0x35], 0
jne 0x45c689
cmp dword [ebp + 0x10], 0xff000000
je 0x45c67d
mov al, byte [ebp + 4]
cmp al, 5
je 0x45c689
cmp al, 6
je 0x45c689
cmp al, 3
je 0x45c689
cmp byte [ebp + 4], 3
jne 0x45c695
test byte [ebp + 5], 0x40
je 0x45c695
mov ecx, dword [ebp]
push ecx
call fcn.004705d0
add esp, 4
cmp byte [esp + 0x1b], 0
jne 0x45c6c6
cmp byte [esp + 0x37], 0
je 0x45c6c6
mov eax, dword [edi + 0x50]
movzx edx, byte [esp + 0x1a]
imul eax, eax, 0x54
mov ecx, dword [0x4a7c2c]
push edx
mov edx, dword [eax + ecx + 0x50]
mov eax, dword [ebp]
push edx
push 0x30
push eax
call dword [0x4925fc]
cmp dword [esp + 0x1f8], 4
jne 0x45c6e0
mov ecx, dword [ebp]
push 0
push 0
push 0xb
push ecx
call dword [0x4925fc]
mov eax, dword [esp + 0x66c]
cmp byte [eax], 0
je 0x45c703
mov edx, dword [esp + 0xa4]
push edx
push edi
mov edi, ebp
call fcn.0045fc00
mov edi, dword [esp + 0x660]
cmp byte [ebp + 4], 0x13
jne 0x45c7b9
fldz
fcomp dword [esp + 0xa0]
fnstsw ax
test ah, 5
jp 0x45c7b9
mov ecx, dword [ebp]
lea eax, [esp + 0x48]
push eax
push ecx
call dword [0x492644]
mov al, byte [esp + 0x14]
test al, 2
je 0x45c939
test al, al
js 0x45c939
mov edx, dword [esp + 0x14]
mov eax, dword [ebp]
and edx, 0xfffffffd
push edx
push 0xfffffffffffffff0
push eax
mov bl, 1
call dword [0x49259c]
mov edx, dword [ebp]
lea ecx, [esp + 0x48]
push ecx
push 1
push 0x1328
push edx
call dword [0x4925fc]
test bl, bl
je 0x45c785
mov eax, dword [esp + 0x14]
mov ecx, dword [ebp]
push eax
push 0xfffffffffffffff0
push ecx
call dword [0x49259c]
mov eax, dword [esp + 0x54]
sub eax, dword [esp + 0x4c]
mov edx, dword [esp + 0x98]
mov ecx, dword [esp + 0x90]
push 1
push eax
push edx
mov dword [esp + 0xa8], eax
mov eax, dword [esp + 0xa0]
mov edx, dword [ebp]
push eax
push ecx
push edx
call dword [0x4925f0]
cmp byte [esp + 0x19], 0
je 0x45c828
mov ecx, dword [ebp]
lea eax, [esp + 0x48]
push eax
push ecx
call dword [0x49263c]
mov eax, dword [esp + 0x54]
mov ecx, dword [esp + 0x50]
sub eax, dword [esp + 0x4c]
sub ecx, dword [esp + 0x48]
cmp byte [esp + 0x664], 9
mov dword [esp + 0x9c], eax
mov dword [esp + 0x98], ecx
jne 0x45c828
test dword [esp + 0x14], 0x100000
je 0x45c828
mov eax, dword [esp + 0xd8]
test eax, eax
jns 0x45c816
lea eax, [ecx + ecx*2]
mov dword [esp + 0xd8], eax
mov edx, dword [ebp]
push 0
push eax
push 0x194
push edx
call dword [0x4925fc]
mov ebx, dword [esp + 0x58]
mov esi, dword [0x4925dc]
test ebx, ebx
je 0x45c889
cmp byte [esp + 0x2f], 0
je 0x45c870
mov ecx, dword [ebp]
lea eax, [esp + 0x48]
push eax
push ecx
call dword [0x49263c]
mov eax, dword [edi + 4]
push 2
lea edx, [esp + 0x4c]
push edx
push eax
push 0
call dword [0x4923e8]
mov edx, dword [edi + 4]
push 0
lea ecx, [esp + 0x4c]
push ecx
push edx
call dword [0x4925d8]
test byte [ebx + 5], 0x80
je 0x45c889
mov eax, dword [ebp]
mov ecx, dword [ebx]
push 0x13
push 0
push 0
push 0
push 0
push eax
push ecx
call esi
mov eax, dword [edi + 8]
test eax, eax
je 0x45c89f
push 0x13
push 0
push 0
push 0
push 0
push 1
push eax
call esi
cmp byte [esp + 0x664], 0x18
je 0x45c958
mov eax, dword [esp + 0x98]
mov edx, dword [esp + 0x90]
mov ecx, dword [esp + 0x9c]
mov esi, dword [esp + 0x94]
mov dword [edi + 0x88], eax
mov dword [edi + 0x8c], ecx
add eax, edx
add ecx, esi
mov dword [edi + 0x80], edx
mov dword [edi + 0x84], esi
cmp eax, dword [edi + 0x90]
jle 0x45c8f3
mov dword [edi + 0x90], eax
cmp ecx, dword [edi + 0x94]
jle 0x45c901
mov dword [edi + 0x94], ecx
cmp byte [esp + 0x1ff], 0
jne 0x45c940
mov ebx, dword [edi + 0x10]
cmp ebx, 1
je 0x45c940
cmp ebx, 2
jne 0x45c921
mov ebx, dword [edi + 0x18]
cmp byte [ebx + 4], 0x18
je 0x45c940
cmp eax, dword [edi + 0xa0]
jle 0x45c92f
mov dword [edi + 0xa0], eax
cmp ecx, dword [edi + 0xa4]
jle 0x45c958
jmp 0x45c952
xor bl, bl
jmp 0x45c75a
mov dword [edi + 0x98], edx
mov dword [edi + 0x9c], esi
mov dword [edi + 0xa0], eax
mov dword [edi + 0xa4], ecx
pop edi
pop esi
pop ebp
mov eax, 1
pop ebx
add esp, 0x64c
ret 0x10