Function at 0x4523f0
Capabilities:
Enumerate pe sections
Resolve function by parsing pe exports

Disassembly:
sub esp, 0x63c
push ebx
mov ebx, dword [esp + 0x644]
mov ecx, dword [ebx + 0xc]
push ebp
push esi
push edi
cmp ecx, 0x2af8
jb 0x45242d
push 0x49588a
push 0x495b90
mov ecx, 0x4a2c18
call fcn.00429900
pop edi
pop esi
pop ebp
pop ebx
add esp, 0x63c
ret 0x10
mov eax, dword [ebx + 0x10]
cmp ecx, eax
jb 0x45245a
mov ecx, dword [ebx + 0x14]
lea eax, [eax + eax*4 + 0x1388]
add eax, eax
add eax, eax
push eax
push ecx
call fcn.004781b7
add esp, 8
test eax, eax
je 0x45240c
add dword [ebx + 0x10], 0x3e8
mov dword [ebx + 0x14], eax
mov eax, dword [ebx + 0xc]
lea edx, [eax + eax*4]
mov eax, dword [ebx + 0x14]
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 + 0x654]
cmp al, 0x14
jne 0x452490
or byte [ebp + 5], 0x80
mov byte [esp + 0x654], 0x13
jmp 0x452494
cmp al, 0x13
jne 0x4524cb
mov al, 0xff
cmp byte [ebx + 0x54], al
jne 0x4524bc
push 0x49588a
push 0x495bc4
mov ecx, 0x4a2c18
call fcn.00429900
pop edi
pop esi
pop ebp
pop ebx
add esp, 0x63c
ret 0x10
mov byte [ebp + 6], al
mov cl, byte [ebx + 0x54]
mov al, byte [esp + 0x654]
jmp 0x452505
cmp al, 0x15
jne 0x4524fc
cmp dword [ebx + 4], 0
je 0x4524f6
push 0x49588a
push 0x495bfc
mov ecx, 0x4a2c18
call fcn.00429900
pop edi
pop esi
pop ebp
pop ebx
add esp, 0x63c
ret 0x10
mov byte [ebp + 6], 0xff
jmp 0x452508
mov dl, byte [ebx + 0x55]
mov byte [ebp + 6], dl
mov cl, byte [ebx + 0x56]
mov byte [ebp + 7], cl
cmp dword [ebx + 0xc], 0
mov edi, 0x80000000
jne 0x452563
mov esi, dword [0x4a2b5c]
cmp dword [ebx + 0x78], edi
jne 0x452536
mov edx, dword [ebx + 0x48]
imul edx, edx, 0x54
fild dword [edx + esi + 0x44]
fmul qword [0x497c08]
call fcn.00489fa0
mov dword [ebx + 0x78], eax
cmp dword [ebx + 0x7c], edi
jne 0x452553
mov eax, dword [ebx + 0x48]
imul eax, eax, 0x54
fild dword [eax + esi + 0x44]
fmul qword [0x497c30]
call fcn.00489fa0
mov dword [ebx + 0x7c], eax
mov ecx, dword [ebx + 0x78]
mov al, byte [esp + 0x654]
mov dword [ebx + 0x80], ecx
mov edi, ebp
lea esi, [esp + 0x60]
mov byte [ebp + 4], al
call fcn.00457710
mov al, byte [esp + 0x654]
or dword [esp + 0x60], 0x10000000
mov dl, byte [ebx + 0x3d]
mov byte [esp + 0x1f0], dl
cmp al, 6
jne 0x4525a6
or dword [esp + 0x60], 0x4000
cmp byte [ebx + 0x3c], 0
jne 0x4525c4
or dword [esp + 0x60], 0x20000
jmp 0x4525c4
cmp byte [ebx + 0x3c], 0
je 0x4525b4
or dword [esp + 0x60], 0x20000
cmp al, 2
je 0x4525e1
cmp al, 0x10
je 0x4525e1
cmp al, 0x11
je 0x4525e1
cmp al, 0x12
je 0x4525e1
cmp byte [ebp + 4], 0xa
mov byte [esp + 0x2e], 1
je 0x4525d5
mov ecx, dword [ebx + 0x58]
mov dword [ebp + 0x10], ecx
mov edx, dword [ebx + 0x58]
mov dword [esp + 0xbc], edx
jmp 0x4525f1
mov byte [esp + 0x2e], 0
cmp al, 0x12
jne 0x4525f1
mov dword [ebp + 0x10], 0xff000000
movzx eax, al
mov dword [esp + 0x38], eax
add eax, 0xfffffffc
mov ecx, 0x10000
cmp eax, 0x11
ja case.0x452609.6
jmp dword [eax*4 + 0x454bc4]
or dword [esp + 0x60], 0x210000
jmp case.0x452609.6
or dword [esp + 0x60], 0x210042
jmp case.0x452609.6
or dword [esp + 0x60], 0x210080
or dword [esp + 0x68], 0x200
jmp case.0x452609.6
or dword [esp + 0x70], 0x30
or dword [esp + 0x60], 0x10008
or dword [esp + 0x68], 0x200
mov dword [esp + 0x74], 1
jmp case.0x452609.6
or dword [esp + 0x60], 0x10027
or dword [esp + 0x68], 0x200
jmp case.0x452609.6
or dword [esp + 0x60], ecx
or dword [esp + 0x68], 0x200
jmp case.0x452609.6
or dword [esp + 0x60], 0x36
jmp case.0x452609.6
or dword [esp + 0x60], 0x1000c
jmp case.0x452609.6
or dword [esp + 0x60], ecx
jmp case.0x452609.6
or dword [esp + 0x60], 1
jmp case.0x452609.6
or dword [esp + 0x60], 0x10200
mov byte [esp + 0x1f0], 0
jmp case.0x452609.6
test dword [ebx + 0x34], 0x40000
je 0x4526bf
or dword [esp + 0x60], 0x100
or dword [esp + 0x60], 0x800
mov ecx, dword [esp + 0x658]
push 0xffffffffffffffff
push ebp
lea eax, [esp + 0x68]
push eax
push ebx
call fcn.00455500
test eax, eax
jne 0x4526ed
pop edi
pop esi
pop ebp
pop ebx
add esp, 0x63c
ret 0x10
mov cl, byte [esp + 0x654]
mov eax, dword [esp + 0xbc]
cmp cl, 0xa
je 0x452703
mov eax, dword [ebp + 0x10]
cmp eax, 0xff000000
mov eax, dword [esp + 0xc0]
setne dl
mov byte [esp + 0x1ee], dl
cmp eax, 0xff000000
jne 0x45272d
mov dword [esp + 0xc0], 0xffffffff
jmp 0x45274e
cmp eax, 0xffffffff
jne 0x45274e
mov ebx, dword [ebx + 0x64]
cmp ebx, 0xff000000
je 0x45274e
cmp cl, 0x12
je 0x45274e
cmp cl, 0x15
je 0x45274e
mov dword [esp + 0xc0], ebx
mov esi, dword [esp + 0x64]
mov eax, 0x80000000
cmp dword [esp + 0x88], eax
jne 0x452796
cmp dword [esp + 0x8c], eax
jne 0x452796
fld dword [0x497c28]
fcomp dword [esp + 0x90]
fnstsw ax
test ah, 5
jnp 0x452796
mov eax, dword [esp + 0x65c]
mov edi, 0x495c34
call fcn.00408bf0
test eax, eax
jne 0x452796
xor ecx, ecx
jmp 0x4527a0
mov ecx, esi
not ecx
and ecx, 0x2000
mov eax, dword [esp + 0x6c]
not eax
and eax, dword [esp + 0x68]
mov ebx, esi
not ebx
and ebx, dword [esp + 0x60]
mov dword [esp + 0x24], eax
mov eax, dword [esp + 0x38]
or ebx, 0x40000000
add eax, 0xfffffffd
mov dword [esp + 0x10], ebx
cmp eax, 0x10
ja case.0x4527d7.10
movzx eax, byte [eax + 0x454c34]
jmp dword [eax*4 + 0x454c0c]
and ebx, 0xfffffff7
or ebx, 7
jmp 0x4528fc
test bl, 1
je 0x4527ff
and ebx, 0xfffffff1
or ebx, 1
mov dword [esp + 0x10], ebx
or ebx, ecx
jmp 0x4528fc
and ebx, 0xfffffff0
or ebx, ecx
jmp 0x4528fc
mov edx, ebx
and edx, 6
cmp dl, 6
jne 0x452826
and ebx, 0xfffffff6
or ebx, 6
mov dword [esp + 0x10], ebx
or dword [esp + 0x10], ecx
jmp case.0x4527d7.10
and ebx, 0xfffffff3
or ebx, 3
mov dword [esp + 0x10], ebx
or dword [esp + 0x10], ecx
jmp case.0x4527d7.10
and ebx, 0xfffffff9
or ebx, 9
mov eax, ebx
test eax, 0x20000
je 0x452855
test esi, 0x10000
jne 0x452855
or eax, 0x10000
or eax, ecx
mov dword [esp + 0x10], eax
jmp case.0x4527d7.10
or ebx, 3
jmp 0x4528fc
test bl, 1
je 0x452878
and ebx, 0xfffffff1
or ebx, 1
jmp 0x4528fc
and ebx, 0xfffffff2
or ebx, 2
jmp 0x4528fc
fld dword [0x497c28]
fcomp dword [esp + 0x90]
fnstsw ax
test ah, 5
jnp 0x4528ae
mov eax, dword [esp + 0x65c]
push 0xa
push eax
call fcn.00477c01
mov esi, dword [esp + 0x6c]
add esp, 8
test eax, eax
je 0x4528bb
mov ecx, esi
not ecx
and ecx, 4
or ebx, ecx
mov dword [esp + 0x10], ebx
test bl, 4
je case.0x4527d7.10
not esi
and esi, 0x201040
or ebx, esi
jmp 0x4528fc
mov edx, dword [esp + 0x650]
or ebx, 0x4000000
cmp dword [edx + 0x60], 0
je 0x4528e5
test byte [ebp + 5], 0x20
je 0x4528ee
cmp dword [ebp + 0x10], 0xff000000
je 0x4528f6
or ebx, 0x2000
jmp 0x4528fc
and ebx, 0xffffdfff
mov dword [esp + 0x10], ebx
cmp byte [esp + 0x654], 4
jne 0x452a52
cmp dword [ebp + 0xc], 0
jne 0x452a52
test byte [ebp + 5], 1
jne 0x452a52
mov eax, dword [esp + 0x650]
mov eax, dword [eax + 8]
test eax, eax
je 0x452946
push 0xa
lea ecx, [esp + 0x24c]
push ecx
inc eax
push eax
call fcn.00476952
add esp, 0xc
jmp 0x45294e
mov byte [esp + 0x248], 0
mov edx, dword [esp + 0x65c]
push edx
push 0x495c38
mov eax, 0x400
lea ecx, [esp + 0x250]
call fcn.00464030
push 0
push 0xffffffffffffffff
push 1
push 0x49588a
lea eax, [esp + 0x260]
push 0x495c44
push eax
xor eax, eax
or ecx, 0xffffffff
call fcn.00464760
push 0
push 0xffffffffffffffff
push 1
push 0x49588a
lea ecx, [esp + 0x278]
push 0x495110
push ecx
xor eax, eax
or ecx, 0xffffffff
call fcn.00464760
push 0
push 0xffffffffffffffff
push 1
push 0x49588a
lea edx, [esp + 0x290]
push 0x490074
push edx
xor eax, eax
or ecx, 0xffffffff
call fcn.00464760
add esp, 0x50
push 0
push 0xffffffffffffffff
push 1
push 0x49588a
lea eax, [esp + 0x258]
push 0x493b2c
push eax
xor eax, eax
or ecx, 0xffffffff
call fcn.00464760
push 0
push 0xffffffffffffffff
push 1
push 0x49588a
lea ecx, [esp + 0x270]
push 0x4956b8
push ecx
xor eax, eax
or ecx, 0xffffffff
call fcn.00464760
push 0
push 0xffffffffffffffff
push 1
push 0x49588a
lea edx, [esp + 0x288]
push 0x495c48
push edx
xor eax, eax
or ecx, 0xffffffff
call fcn.00464760
add esp, 0x48
lea edi, [esp + 0x248]
mov eax, 0x4a2c18
call fcn.00418380
mov dword [ebp + 0xc], eax
mov esi, dword [esp + 0x650]
mov bl, byte [ebp + 6]
mov ecx, esi
call fcn.0045b600
mov ecx, dword [esi + 0xc]
mov dword [esp + 0x4c], eax
test ecx, ecx
je 0x452a7e
mov edx, dword [esi + 0x14]
lea ecx, [ecx + ecx*4]
lea ecx, [edx + ecx*4 - 0x14]
mov dword [esp + 0x1c], ecx
jmp 0x452a89
lea edx, [esp + 0x1fc]
mov dword [esp + 0x1c], edx
mov ecx, 0x80000000
cmp dword [esp + 0x80], ecx
jne 0x452b4a
cmp dword [esp + 0x84], ecx
jne 0x452b4a
test eax, eax
je 0x452ae1
mov al, byte [ebp + 7]
mov ecx, esi
call fcn.0045b760
test eax, eax
jne 0x452ae1
mov ebx, esi
mov esi, dword [esp + 0x4c]
push ebx
lea edi, [esp + 0x54]
call fcn.0045b790
mov eax, dword [ebx + 0x78]
add eax, dword [esp + 0x50]
mov dword [esp + 0x80], eax
mov eax, dword [ebx + 0x7c]
add eax, dword [esp + 0x54]
jmp 0x452afd
mov eax, dword [esi + 0x8c]
add eax, dword [esi + 0x84]
mov ecx, dword [esi + 0x80]
add eax, dword [esi + 0x7c]
mov dword [esp + 0x80], ecx
cmp byte [esp + 0x654], 1
mov dword [esp + 0x84], eax
jne 0x452b4a
mov edx, dword [esp + 0x650]
cmp dword [edx + 0xc], 0
je 0x452b3f
mov ecx, dword [esp + 0x1c]
cmp byte [ecx + 4], 1
jne 0x452b3f
mov dl, byte [ecx + 6]
cmp dl, byte [ebp + 6]
jne 0x452b3f
mov cl, byte [ecx + 7]
cmp cl, byte [ebp + 7]
jne 0x452b3f
add eax, 8
mov dword [esp + 0x84], eax
mov al, byte [esp + 0x654]
xor dl, dl
jmp 0x452b5f
mov al, byte [esp + 0x654]
cmp al, 0xe
je 0x452b5d
cmp al, 0xa
je 0x452b5d
cmp al, 0xb
jne 0x452b46
mov dl, 1
mov ecx, dword [0x4a2b5c]
fld1
test dl, dl
sete bl
cmp dword [esp + 0x8c], 0x80000000
mov byte [esp + 0x18], bl
jne 0x452d04
fcom dword [esp + 0x90]
fnstsw ax
test ah, 0x41
jne 0x452cfd
mov eax, dword [esp + 0x38]
add eax, 0xfffffffd
cmp eax, 0x10
ja case.0x452ba3.4
jmp dword [eax*4 + 0x454c48]
mov eax, dword [esp + 0x10]
fstp st(0)
fld dword [0x497c24]
fstp dword [esp + 0x90]
test al, 1
je 0x452bc9
test al, 2
je 0x452d23
cmp byte [0x4a32eb], 0
je 0x452d23
test eax, 0x400
jne 0x452d23
xor bl, bl
mov byte [esp + 0x18], bl
jmp 0x452d23
fstp st(0)
fld dword [0x497c24]
fstp dword [esp + 0x90]
jmp 0x452d23
fstp st(0)
fld dword [0x497c20]
fstp dword [esp + 0x90]
jmp 0x452d23
fstp st(0)
fld dword [0x497c1c]
fstp dword [esp + 0x90]
jmp 0x452d23
mov eax, dword [esp + 0x65c]
cmp byte [eax], 0
jne case.0x452ba3.4
test byte [esp + 0x10], 4
mov esi, dword [esp + 0x650]
je 0x452cce
fstp st(0)
fld dword [0x497c24]
fstp dword [esp + 0x90]
jmp 0x452d2a
test byte [esp + 0x10], 0x40
fstp st(0)
mov esi, dword [esp + 0x650]
je 0x452cc8
mov eax, dword [esi + 0x48]
imul eax, eax, 0x54
mov ecx, dword [eax + ecx + 0x44]
add ecx, ecx
mov dword [esp + 0x8c], ecx
jmp 0x452d2a
mov eax, dword [esp + 0x10]
fstp st(0)
test al, 2
je 0x452ca2
fld dword [0x497c20]
fstp dword [esp + 0x90]
jmp 0x452d23
push eax
mov eax, dword [esp + 0xb0]
call fcn.0045ae80
mov dword [esp + 0x8c], eax
jmp 0x452d23
test byte [esp + 0x10], 4
fstp st(0)
mov esi, dword [esp + 0x650]
je 0x452cd7
fld dword [0x497c20]
fstp dword [esp + 0x90]
jmp 0x452d2a
mov eax, dword [esi + 0x48]
imul eax, eax, 0x54
mov eax, dword [eax + ecx + 0x44]
add eax, eax
mov dword [esp + 0x8c], eax
jmp 0x452d2a
fstp st(0)
fld dword [0x497c18]
fstp dword [esp + 0x90]
jmp 0x452d23
mov al, byte [esp + 0x654]
fstp st(0)
cmp al, 7
je 0x452d0e
cmp al, 8
jne 0x452d23
cmp byte [0x4a32eb], 0
je 0x452d23
or dword [esp + 0x10], 0x400
jmp 0x452d23
fstp st(0)
mov esi, dword [esp + 0x650]
fldz
xor edi, edi
fld dword [esp + 0x90]
mov dword [esp + 0x30], edi
fcom st(1)
mov dword [esp + 0x34], edi
fnstsw ax
fstp st(1)
test ah, 0x41
jne 0x452e89
mov al, byte [esp + 0x654]
cmp al, 3
je 0x452d5f
cmp al, 6
jbe 0x452d6e
cmp al, 8
ja 0x452d6e
fadd qword [0x497b98]
fstp dword [esp + 0x90]
jmp 0x452d70
fstp st(0)
test bl, bl
je 0x452e78
mov ecx, dword [esi]
push ecx
call dword [fcn.0048d48c]
mov edx, dword [esi + 0x48]
imul edx, edx, 0x54
mov edi, eax
mov eax, dword [0x4a2b5c]
mov ecx, dword [edx + eax + 0x50]
push ecx
push edi
mov dword [esp + 0x38], edi
call dword [fcn.0048d0d8]
lea edx, [esp + 0x210]
push edx
push edi
mov dword [esp + 0x3c], eax
call dword [0x48d0d0]
fld dword [esp + 0x90]
fld st(0)
fld qword [0x497bb8]
fadd st(1), st(0)
fxch st(1)
call fcn.00489fa0
fild dword [esp + 0x210]
mov ebx, eax
lea eax, [ebx - 1]
imul eax, dword [esp + 0x220]
fmulp st(2)
mov dword [esp + 0x28], eax
fild dword [esp + 0x28]
faddp st(2)
faddp st(1)
call fcn.00489fa0
mov ecx, dword [esp + 0x38]
add ecx, 0xfffffffd
mov dword [esp + 0x8c], eax
cmp ecx, 0x10
ja case.0x452e0e.5
movzx ecx, byte [ecx + 0x454ca0]
jmp dword [ecx*4 + 0x454c8c]
add eax, 8
test dword [esp + 0x10], 0x100000
mov dword [esp + 0x8c], eax
je case.0x452e0e.5
push 3
call dword [fcn.0048d4cc]
add dword [esp + 0x8c], eax
jmp case.0x452e0e.5
mov edx, dword [esi + 0x48]
mov ecx, dword [0x4a2b5c]
imul edx, edx, 0x54
mov edx, dword [edx + ecx + 0x44]
lea eax, [eax + edx + 2]
mov dword [esp + 0x8c], eax
jmp case.0x452e0e.5
mov ecx, dword [esi + 0x7c]
imul ecx, ebx
add eax, ecx
mov dword [esp + 0x8c], eax
jmp case.0x452e0e.5
inc ebx
imul ebx, dword [esi + 0x7c]
add eax, ebx
mov dword [esp + 0x8c], eax
jmp case.0x452e0e.5
test dl, dl
jne case.0x452e0e.5
mov dword [esp + 0x8c], 0x1e
jmp case.0x452e0e.5
fstp st(0)
mov eax, 0x80000000
mov byte [esp + 0x2f], 0
cmp dword [esp + 0x8c], eax
je 0x452eab
cmp dword [esp + 0x88], eax
jne case.0x453153.4
mov eax, dword [esp + 0x38]
dec eax
mov dword [esp + 0x28], 0
mov ebx, 0x400
cmp eax, 0xb
ja case.0x452ecd.2
movzx edx, byte [eax + 0x454cc0]
jmp dword [edx*4 + 0x454cb4]
mov eax, dword [esp + 0x65c]
cmp byte [eax], 0
je case.0x452ecd.2
test edi, edi
jne 0x452f12
mov ecx, dword [esi]
push ecx
call dword [fcn.0048d48c]
mov edx, dword [esi + 0x48]
imul edx, edx, 0x54
mov edi, eax
mov eax, dword [0x4a2b5c]
mov ecx, dword [edx + eax + 0x50]
push ecx
push edi
mov dword [esp + 0x38], edi
call dword [fcn.0048d0d8]
mov dword [esp + 0x34], eax
lea edx, [esp + 0x210]
push edx
push edi
call dword [0x48d0d0]
mov eax, dword [esp + 0x224]
add eax, 4
test dword [esp + 0x10], 0x200000
mov dword [esp + 0x28], eax
je 0x452f45
push 2
call dword [fcn.0048d4cc]
add dword [esp + 0x28], eax
mov ebx, 0x2c40
test edi, edi
jne 0x452f78
mov ecx, dword [esi]
push ecx
call dword [fcn.0048d48c]
mov edx, dword [esi + 0x48]
imul edx, edx, 0x54
mov edi, eax
mov eax, dword [0x4a2b5c]
mov ecx, dword [edx + eax + 0x50]
push ecx
push edi
mov dword [esp + 0x38], edi
call dword [fcn.0048d0d8]
mov dword [esp + 0x34], eax
mov al, byte [esp + 0x654]
cmp al, 1
jne 0x452f95
or ebx, 0x40
test byte [esp + 0x10], 0x80
je 0x452fc7
or ebx, 0x800
jmp 0x452fc7
cmp al, 5
je 0x452f9d
cmp al, 6
jne 0x452fc7
lea edx, [esp + 0x210]
push edx
push edi
call dword [0x48d0d0]
push 0x47
call dword [fcn.0048d4cc]
add eax, dword [esp + 0x224]
mov ecx, dword [esp + 0x28]
lea edx, [ecx + eax + 2]
mov dword [esp + 0x28], edx
mov eax, dword [esp + 0x88]
cmp eax, 0x80000000
je 0x452fd8
or ebx, 0x10
xor ecx, ecx
mov dword [esp + 0x1fc], ecx
mov dword [esp + 0x200], ecx
cmp eax, 0x80000000
jne 0x452ff8
mov dword [esp + 0x204], ecx
jmp 0x453003
sub eax, dword [esp + 0x28]
mov dword [esp + 0x204], eax
mov eax, dword [esp + 0x8c]
mov ecx, eax
sub ecx, 0x80000000
neg ecx
sbb ecx, ecx
and ecx, eax
mov eax, dword [esp + 0x65c]
cmp byte [eax], 0
mov dword [esp + 0x208], ecx
jne 0x453030
mov eax, 0x495c4c
push ebx
lea edx, [esp + 0x200]
push edx
push 0xffffffffffffffff
push eax
push edi
call dword [0x48d464]
mov ebx, dword [esp + 0x204]
mov ecx, dword [esp + 0x8c]
sub ebx, dword [esp + 0x1fc]
cmp ecx, 0x80000000
je 0x45306e
cmp eax, ecx
jle 0x4530c6
cmp byte [esp + 0x654], 0xc
je 0x4530c6
mov cl, byte [esp + 0x654]
mov dword [esp + 0x8c], eax
cmp cl, 0xc
jne 0x4530a6
add eax, 8
test dword [esp + 0x10], 0x100000
mov dword [esp + 0x8c], eax
je 0x4530c6
push 3
call dword [fcn.0048d4cc]
add dword [esp + 0x8c], eax
jmp 0x4530c6
cmp cl, 4
jne 0x4530c6
mov ecx, dword [esi + 0x48]
mov edx, dword [0x4a2b5c]
imul ecx, ecx, 0x54
mov ecx, dword [ecx + edx + 0x44]
lea edx, [ecx + eax + 2]
mov dword [esp + 0x8c], edx
mov eax, dword [esp + 0x88]
cmp eax, 0x80000000
je 0x4530d8
cmp ebx, eax
jle case.0x452ecd.2
add ebx, dword [esp + 0x28]
cmp byte [esp + 0x654], 4
mov byte [esp + 0x2f], 1
mov dword [esp + 0x88], ebx
jne case.0x452ecd.2
push 0x2d
call dword [fcn.0048d4cc]
mov ecx, dword [esi + 0x48]
mov edx, dword [0x4a2b5c]
imul ecx, ecx, 0x54
mov ecx, dword [ecx + edx + 0x44]
lea edx, [ecx + eax*2]
add dword [esp + 0x88], edx
cmp dword [esp + 0x88], 0x80000000
jne case.0x453153.4
mov eax, dword [esi + 0x48]
mov ecx, dword [0x4a2b5c]
imul eax, eax, 0x54
mov ecx, dword [eax + ecx + 0x44]
mov edx, dword [esp + 0x38]
mov eax, ecx
shl eax, 4
add edx, 0xfffffffd
sub eax, ecx
cmp edx, 0x10
ja case.0x453153.4
movzx edx, byte [edx + 0x454cec]
jmp dword [edx*4 + 0x454ccc]
mov dword [esp + 0x88], eax
jmp case.0x453153.4
add eax, eax
mov dword [esp + 0x88], eax
jmp case.0x453153.4
test byte [esp + 0x10], 0x40
je 0x45317e
mov dword [esp + 0x88], eax
jmp case.0x453153.4
add ecx, ecx
mov dword [esp + 0x88], ecx
jmp case.0x453153.4
mov ecx, dword [esp + 0x10]
test cl, 2
je case.0x453153.7
mov eax, dword [esp + 0xac]
push ecx
call fcn.0045ae80
mov dword [esp + 0x88], eax
jmp case.0x453153.4
test byte [esp + 0x10], 4
je case.0x453153.7
lea edx, [ecx + ecx]
jmp 0x4531c5
mov ecx, dword [esi + 0x78]
lea edx, [eax + ecx*2]
jmp 0x4531c5
mov ecx, dword [esi + 0x78]
lea ecx, [ecx + ecx*2]
lea edx, [ecx + eax*2]
mov dword [esp + 0x88], edx
cmp byte [esp + 0x654], 0xc
jne 0x4532d1
test byte [esp + 0x10], 4
jne 0x4532d1
fld1
fcomp dword [esp + 0x90]
fnstsw ax
test ah, 0x41
jne 0x4532d1
test edi, edi
jne 0x453228
mov eax, dword [esi]
push eax
call dword [fcn.0048d48c]
mov ecx, dword [esi + 0x48]
mov edx, dword [0x4a2b5c]
imul ecx, ecx, 0x54
mov edi, eax
mov eax, dword [ecx + edx + 0x50]
push eax
push edi
mov dword [esp + 0x38], edi
call dword [fcn.0048d0d8]
mov dword [esp + 0x34], eax
lea ecx, [esp + 0x210]
push ecx
push edi
call dword [0x48d0d0]
mov ebx, dword [esp + 0x8c]
sub ebx, dword [esp + 0x210]
sub ebx, 8
test dword [esp + 0x10], 0x100000
mov dword [esp + 0x28], ebx
je 0x453264
push 3
call dword [fcn.0048d4cc]
sub ebx, eax
mov dword [esp + 0x28], ebx
test ebx, ebx
jle 0x4532c8
mov edx, dword [esp + 0x220]
fild dword [esp + 0x28]
add edx, dword [esp + 0x210]
mov dword [esp + 0x28], edx
fidiv dword [esp + 0x28]
fadd qword [0x497b98]
fstp dword [esp + 0x90]
fld dword [0x497c28]
fcomp dword [esp + 0x90]
fnstsw ax
test ah, 5
jp 0x4532d1
mov eax, dword [esp + 0x64]
mov ecx, dword [esp + 0x10]
not eax
mov edx, eax
and edx, 4
or ecx, edx
mov dword [esp + 0x10], ecx
test cl, 4
je 0x4532d1
and eax, 0x201040
or dword [esp + 0x10], eax
jmp 0x4532d1
fld1
fstp dword [esp + 0x90]
cmp byte [esp + 0x1f0], 0
mov eax, dword [esi]
mov ebx, dword [esi + 0xc]
sete byte [esp + 0x2c]
push eax
mov byte [esp + 0x27], 0
add ebx, 3
mov byte [esp + 0x1f], 0
call dword [fcn.0048d558]
test eax, eax
je 0x45330d
mov ecx, dword [esi]
push ecx
call dword [fcn.0048d594]
mov byte [esp + 0x17], 1
test eax, eax
je 0x453312
mov byte [esp + 0x17], 0
cmp byte [ebp + 6], 0xff
mov byte [esp + 0x2d], 0
jae 0x453363
mov edi, dword [esp + 0x4c]
test edi, edi
je 0x45335b
mov edx, dword [edi]
push 0xfffffffffffffff0
push edx
call dword [fcn.0048d5e8]
test eax, 0x10000000
je 0x45335b
mov eax, dword [edi]
push 0
push 0
push 0x130b
push eax
call dword [fcn.0048d5e4]
movzx ecx, byte [ebp + 7]
cmp eax, ecx
jne 0x45335b
mov dl, byte [esp + 0x17]
mov byte [esp + 0x2d], dl
jmp 0x453363
and dword [esp + 0x10], 0xefffffff
mov eax, dword [esp + 0x38]
mov edi, dword [fcn.0048d3e4]
dec eax
cmp eax, 0x14
ja case.0x453377.20
jmp dword [eax*4 + 0x454d00]
mov eax, dword [0x4a0a30]
mov ecx, dword [esi]
mov edx, dword [esp + 0x8c]
push 0
push eax
mov eax, dword [esp + 0x90]
push ebx
push ecx
mov ecx, dword [esp + 0x94]
push edx
mov edx, dword [esp + 0x94]
push eax
mov eax, dword [esp + 0x28]
push ecx
mov ecx, dword [esp + 0x678]
push edx
mov edx, dword [esp + 0x44]
push eax
push ecx
push 0x494740
push edx
call dword [fcn.0048d498]
mov dword [ebp], eax
jmp case.0x453377.20
mov ecx, dword [esp + 0x88]
cmp ecx, 0x80000000
jne 0x4533e7
xor ecx, ecx
mov dword [esp + 0x88], ecx
mov eax, dword [esp + 0x8c]
cmp eax, 0x80000000
jne 0x4533fe
xor eax, eax
mov dword [esp + 0x8c], eax
mov edx, dword [0x4a0a30]
push 0
push edx
mov edx, dword [esi]
push ebx
push edx
mov edx, dword [esp + 0x20]
push eax
mov eax, dword [esp + 0x98]
push ecx
mov ecx, dword [esp + 0x98]
push eax
mov eax, dword [esp + 0x678]
push ecx
mov ecx, dword [esp + 0x44]
push edx
push eax
push 0x494740
push ecx
call dword [fcn.0048d498]
mov dword [ebp], eax
test eax, eax
je case.0x453377.20
mov dl, byte [ebp + 5]
mov ecx, dword [esp + 0xd0]
shr dl, 1
and dl, 1
movzx eax, dl
push eax
mov eax, dword [esp + 0x90]
push ecx
mov ecx, dword [esp + 0x90]
lea edx, [esp + 0x24]
push edx
mov edx, dword [esp + 0x668]
push eax
push ecx
push edx
call fcn.004654c0
add esp, 0x18
mov dword [ebp + 0x10], eax
test eax, eax
je case.0x453377.20
mov ebx, dword [esp + 0x1c]
mov ecx, dword [ebp]
mov eax, ebx
neg eax
sbb eax, eax
and eax, 0xfffffff5
add eax, 0xe
or eax, dword [esp + 0x10]
push eax
push 0xfffffffffffffff0
push ecx
call dword [fcn.0048d5d8]
mov edx, dword [ebp + 0x10]
mov eax, dword [ebp]
push edx
push ebx
push 0x172
push eax
call dword [fcn.0048d5e4]
test ebx, ebx
jne 0x4534d0
and byte [ebp + 5], 0x7f
mov byte [esp + 0x23], 1
jmp case.0x453377.20
or byte [ebp + 5], 0x80
mov byte [esp + 0x23], 1
jmp case.0x453377.20
mov ecx, dword [0x4a0a30]
mov edx, dword [esi]
mov eax, dword [esp + 0x8c]
push 0
push ecx
mov ecx, dword [esp + 0x90]
push ebx
push edx
mov edx, dword [esp + 0x94]
push eax
mov eax, dword [esp + 0x94]
push ecx
mov ecx, dword [esp + 0x28]
push edx
mov edx, dword [esp + 0x678]
push eax
mov eax, dword [esp + 0x44]
push ecx
push edx
push 0x495c50
push eax
call dword [fcn.0048d498]
mov dword [ebp], eax
jmp case.0x453377.20
mov ecx, dword [0x4a0a30]
mov edx, dword [esi]
mov eax, dword [esp + 0x8c]
push 0
push ecx
mov ecx, dword [esp + 0x90]
push ebx
push edx
mov edx, dword [esp + 0x94]
push eax
mov eax, dword [esp + 0x94]
push ecx
mov ecx, dword [esp + 0x28]
push edx
mov edx, dword [esp + 0x678]
push eax
mov eax, dword [esp + 0x44]
push ecx
push edx
push 0x495c50
push eax
call dword [fcn.0048d498]
mov dword [ebp], eax
test eax, eax
je case.0x453377.20
mov ebx, dword [esp + 0x10]
test bl, 1
je case.0x453377.20
mov eax, dword [esi + 0x18]
cmp eax, dword [esi + 0xc]
jae 0x4535d0
mov edx, dword [esi + 0x14]
push 1
lea ecx, [eax + eax*4]
mov eax, dword [edx + ecx*4]
push 0xfffffffffffffff0
push eax
call dword [fcn.0048d5e8]
mov edx, dword [esi + 0x14]
mov edi, dword [fcn.0048d5e4]
and eax, 0xfffe
push eax
mov eax, dword [esi + 0x18]
lea ecx, [eax + eax*4]
mov eax, dword [edx + ecx*4]
push 0xf4
push eax
call edi
jmp 0x4535d6
mov edi, dword [fcn.0048d5e4]
mov eax, dword [esi + 0xc]
mov ecx, dword [esi]
push 0
mov dword [esi + 0x18], eax
add eax, 3
push eax
push 0x401
push ecx
call edi
mov eax, dword [ebp]
push 1
movzx edx, bx
push edx
push 0xf4
push eax
call edi
jmp case.0x453377.20
mov ecx, dword [0x4a0a30]
mov edx, dword [esi]
mov eax, dword [esp + 0x8c]
push 0
push ecx
mov ecx, dword [esp + 0x90]
push ebx
push edx
mov edx, dword [esp + 0x94]
push eax
mov eax, dword [esp + 0x94]
push ecx
mov ecx, dword [esp + 0x28]
push edx
mov edx, dword [esp + 0x678]
push eax
mov eax, dword [esp + 0x44]
push ecx
push edx
push 0x495c50
push eax
call dword [fcn.0048d498]
mov dword [ebp], eax
test eax, eax
je case.0x453377.20
mov ecx, dword [esp + 0xcc]
test ecx, ecx
je case.0x453377.20
push 0
push ecx
push 0xf1
push eax
call dword [fcn.0048d5e4]
jmp case.0x453377.20
cmp dword [esp + 0xc4], 0
je 0x45368f
cmp byte [ebp + 4], 8
jne 0x45368f
and dword [esp + 0x10], 0xffffffbf
mov ecx, dword [0x4a0a30]
mov edx, dword [esi]
mov eax, dword [esp + 0x8c]
push 0
push ecx
mov ecx, dword [esp + 0x90]
push ebx
push edx
mov edx, dword [esp + 0x94]
push eax
mov eax, dword [esp + 0x94]
push ecx
mov ecx, dword [esp + 0x28]
push edx
mov edx, dword [esp + 0x40]
push eax
push ecx
push 0x49588a
push 0x495c58
push edx
call dword [fcn.0048d498]
mov dword [ebp], eax
test eax, eax
je case.0x453377.20
mov edx, dword [esi + 0x48]
movzx ecx, byte [esp + 0x17]
imul edx, edx, 0x54
mov edi, dword [fcn.0048d5e4]
push ecx
mov ecx, dword [0x4a2b5c]
mov edx, dword [edx + ecx + 0x50]
push edx
push 0x30
push eax
call edi
cmp byte [esp + 0x18], 0
mov byte [esp + 0x1b], 1
je 0x45377c
mov eax, dword [ebp]
push 0
push 0
push 0x154
push eax
call edi
mov cl, byte [esp + 0x10]
mov dword [esp + 0x1c], eax
test cl, 1
je 0x453735
mov ebx, 4
test cl, 2
je 0x45373a
mov ebx, 2
lea eax, [ebx + eax*2 + 8]
cmp dword [esp + 0x8c], eax
jge 0x453750
mov dword [esp + 0x8c], eax
jmp 0x45377c
fldz
fld dword [esp + 0x90]
fcom st(1)
fnstsw ax
fstp st(1)
test ah, 0x41
jne 0x45377a
fimul dword [esp + 0x1c]
call fcn.00489fa0
lea ecx, [eax + ebx + 8]
mov dword [esp + 0x8c], ecx
jmp 0x45377c
fstp st(0)
mov edx, dword [esp + 0x8c]
push 1
push edx
mov eax, dword [esp + 0x90]
mov ecx, dword [esp + 0x8c]
mov edx, dword [esp + 0x88]
push eax
mov eax, dword [ebp]
push ecx
push edx
push eax
call dword [fcn.0048d5c0]
mov byte [esp + 0x23], 1
jmp case.0x453377.20
mov ecx, dword [0x4a0a30]
mov edx, dword [esi]
mov eax, dword [esp + 0x8c]
push 0
push ecx
mov ecx, dword [esp + 0x90]
push ebx
push edx
mov edx, dword [esp + 0x94]
push eax
mov eax, dword [esp + 0x94]
push ecx
mov ecx, dword [esp + 0x28]
push edx
mov edx, dword [esp + 0x40]
push eax
push ecx
push 0x49588a
push 0x495c64
push edx
call dword [fcn.0048d498]
mov dword [ebp], eax
test eax, eax
je case.0x453377.20
mov ecx, dword [esp + 0x19c]
test ecx, ecx
je 0x453824
lea edx, [esp + 0xd4]
push edx
push ecx
push 0x192
push eax
call dword [fcn.0048d5e4]
mov ecx, dword [esi + 0x48]
movzx eax, byte [esp + 0x17]
imul ecx, ecx, 0x54
mov edx, dword [0x4a2b5c]
mov edi, dword [fcn.0048d5e4]
push eax
mov eax, dword [ecx + edx + 0x50]
mov ecx, dword [ebp]
push eax
push 0x30
push ecx
call edi
mov edx, dword [ebp]
push 0
push 0
push 0x1a1
push edx
mov byte [esp + 0x2b], 1
call edi
mov ebx, dword [esp + 0x10]
and ebx, 0x100000
mov dword [esp + 0x1c], eax
lea edi, [eax + 8]
je 0x45387a
push 3
call dword [fcn.0048d4cc]
add edi, eax
mov ecx, dword [esp + 0x8c]
cmp ecx, edi
jge 0x453896
mov ecx, edi
push 1
mov dword [esp + 0x90], ecx
push ecx
jmp 0x453786
fldz
fld dword [esp + 0x90]
fcom st(1)
fnstsw ax
fstp st(1)
test ah, 0x41
jne 0x4538e1
fimul dword [esp + 0x1c]
call fcn.00489fa0
lea ecx, [eax + 8]
mov dword [esp + 0x8c], ecx
test ebx, ebx
je 0x4538e3
push 3
call dword [fcn.0048d4cc]
mov ecx, dword [esp + 0x8c]
add ecx, eax
push 1
mov dword [esp + 0x90], ecx
push ecx
jmp 0x453786
fstp st(0)
push 1
push ecx
jmp 0x453786
mov eax, dword [esp + 0x74]
cmp eax, 4
je 0x453901
mov ecx, dword [esp + 0x10]
and ecx, 0xfffffffc
or ecx, eax
mov dword [esp + 0x10], ecx
mov eax, dword [esp + 0x8c]
cmp eax, 0x80000000
jne 0x453914
mov eax, 0xc8
mov edx, dword [0x4a0a30]
mov ecx, dword [esi]
push 0
push edx
mov edx, dword [esp + 0x90]
push ebx
push ecx
mov ecx, dword [esp + 0x90]
push eax
mov eax, dword [esp + 0x98]
push edx
mov edx, dword [esp + 0x28]
push eax
mov eax, dword [esp + 0x40]
push ecx
push edx
push 0x49588a
push 0x490064
push eax
call dword [fcn.0048d498]
mov ebx, eax
mov dword [ebp], ebx
test ebx, ebx
je case.0x453377.20
push 0x3f8
call fcn.00476de3
add esp, 4
mov dword [ebp + 0x10], eax
test eax, eax
jne 0x453988
push ebx
call dword [fcn.0048d4ac]
mov dword [ebp], 0
jmp case.0x453377.20
push 0x3f8
mov dword [esi + 0x4c], ebp
mov ecx, dword [ebp + 0x10]
push 0
push ecx
call fcn.004812e0
mov edx, dword [ebp + 0x10]
mov dword [edx], 0xffffffff
mov eax, dword [ebp + 0x10]
mov cl, byte [esp + 0x1fd]
mov byte [eax + 5], cl
mov eax, dword [esp + 0x58]
add esp, 0xc
test eax, eax
je 0x4539c0
or byte [eax + 5], 0x80
cmp dword [esp + 0x74], 4
jne 0x4539da
mov edx, dword [ebp]
push 0
push 4
push 0x108e
push edx
call dword [fcn.0048d5e4]
mov eax, dword [esp + 0x70]
test eax, eax
je 0x4539f4
push eax
mov eax, dword [ebp]
push 0
push 0x1036
push eax
call dword [fcn.0048d5e4]
lea eax, [esp + 0x60]
mov edi, ebp
call fcn.0045afd0
cmp dword [esp + 0x8c], 0x80000000
jne case.0x453377.20
mov edx, dword [esi + 0x48]
movzx ecx, byte [esp + 0x17]
imul edx, edx, 0x54
mov eax, dword [0x4a2b5c]
mov edi, dword [fcn.0048d5e4]
push ecx
mov ecx, dword [edx + eax + 0x50]
mov edx, dword [ebp]
push ecx
push 0x30
push edx
call edi
mov eax, dword [esp + 0x74]
dec eax
mov byte [esp + 0x1b], 1
je 0x453b95
sub eax, 3
je 0x453b67
mov ebx, dword [esp + 0x30]
test ebx, ebx
jne 0x453a80
mov eax, dword [esi]
push eax
call dword [fcn.0048d48c]
mov ecx, dword [esi + 0x48]
mov edx, dword [0x4a2b5c]
imul ecx, ecx, 0x54
mov ebx, eax
mov eax, dword [ecx + edx + 0x50]
push eax
push ebx
mov dword [esp + 0x38], ebx
call dword [fcn.0048d0d8]
mov dword [esp + 0x34], eax
lea ecx, [esp + 0x210]
push ecx
push ebx
call dword [0x48d0d0]
cmp dword [esp + 0x74], 0
jne 0x453b2b
mov edx, dword [ebp]
push 0
push 0
push 0x1033
push edx
call edi
mov dword [esp + 0x1c], eax
fild dword [esp + 0x1c]
test eax, eax
jns 0x453abb
fadd dword [0x497be0]
fld dword [esp + 0x90]
push 0xc
fsub qword [0x497b98]
fnstcw word [esp + 0x1c]
movzx eax, word [esp + 0x1c]
fmulp st(1)
or eax, 0xc00
mov dword [esp + 0x20], eax
fldcw word [esp + 0x20]
fistp qword [esp + 0x54]
mov eax, dword [esp + 0x54]
shr eax, 0x10
mov dword [esp + 0x20], eax
fldcw word [esp + 0x1c]
fild dword [esp + 0x20]
fstp qword [esp + 0x54]
call dword [fcn.0048d4cc]
mov dword [esp + 0x1c], eax
fild dword [esp + 0x1c]
fmul dword [esp + 0x90]
fadd qword [esp + 0x50]
call fcn.00489fa0
mov ecx, dword [esp + 0x210]
lea eax, [eax + ecx + 0x10]
jmp 0x453bd3
push 0x32
call dword [fcn.0048d4cc]
mov ecx, dword [esp + 0x210]
mov dword [esp + 0x1c], eax
cmp eax, ecx
jg 0x453b46
mov dword [esp + 0x1c], ecx
fild dword [esp + 0x1c]
fld dword [esp + 0x90]
fld st(0)
fmulp st(2)
fsub qword [0x497b98]
faddp st(1)
call fcn.00489fa0
add eax, 0xb
jmp 0x453bd3
mov edx, dword [ebp]
push 0
push 0
push 0x1033
push edx
call edi
shr eax, 0x10
sub eax, 3
mov dword [esp + 0x1c], eax
fild dword [esp + 0x1c]
fmul dword [esp + 0x90]
call fcn.00489fa0
add eax, 7
jmp 0x453bd3
fld dword [esp + 0x90]
mov ecx, dword [ebp]
fnstcw word [esp + 0x18]
push 0xffffffffffffffff
movzx eax, word [esp + 0x1c]
or eax, 0xc00
mov dword [esp + 0x20], eax
fldcw word [esp + 0x20]
fistp qword [esp + 0x54]
mov eax, dword [esp + 0x54]
dec eax
push eax
push 0x1040
fldcw word [esp + 0x24]
push ecx
call edi
shr eax, 0x10
add eax, 4
mov edx, dword [esp + 0x88]
mov ecx, dword [esp + 0x80]
push 1
push eax
push edx
mov dword [esp + 0x98], eax
mov eax, dword [esp + 0x90]
mov edx, dword [ebp]
push eax
push ecx
push edx
call dword [fcn.0048d5c0]
jmp case.0x453377.20
mov eax, dword [esp + 0x8c]
cmp eax, 0x80000000
jne 0x453c17
mov eax, 0xc8
mov ecx, dword [0x4a0a30]
mov edx, dword [esi]
push 0
push ecx
mov ecx, dword [esp + 0x8c]
push ebx
push edx
mov edx, dword [esp + 0x90]
push eax
mov eax, dword [esp + 0x9c]
push eax
mov eax, dword [esp + 0x28]
push ecx
mov ecx, dword [esp + 0x40]
push edx
push eax
push 0x49588a
push 0x490054
push ecx
call dword [fcn.0048d498]
mov dword [ebp], eax
test eax, eax
je case.0x453377.20
cmp dword [esp + 0xcc], 0
mov dword [esi + 0x50], ebp
je 0x453c86
mov edx, dword [esp + 0x10]
mov eax, dword [ebp]
or edx, 0x100
push edx
push 0xfffffffffffffff0
push eax
call dword [fcn.0048d5d8]
lea edi, [esp + 0x60]
mov esi, ebp
call fcn.0045b080
mov eax, dword [esp + 0x78]
mov esi, dword [fcn.0048d5e4]
test eax, eax
je 0x453cad
mov ecx, dword [ebp]
push eax
push 0
push 0x1109
push ecx
call esi
cmp dword [esp + 0x8c], 0x80000000
jne 0x45461b
mov edi, dword [esp + 0x650]
mov eax, dword [edi + 0x48]
movzx edx, byte [esp + 0x17]
imul eax, eax, 0x54
mov ecx, dword [0x4a2b5c]
push edx
mov edx, dword [eax + ecx + 0x50]
mov eax, dword [ebp]
push edx
push 0x30
push eax
call esi
mov ecx, dword [ebp]
push 0
push 0
push 0x111c
push ecx
mov byte [esp + 0x2b], 1
call esi
mov dword [esp + 0x8c], eax
cmp eax, 2
jge 0x453d1c
mov edx, dword [edi + 0x48]
mov eax, dword [0x4a2b5c]
imul edx, edx, 0x54
mov ecx, dword [edx + eax + 0x44]
add ecx, ecx
mov dword [esp + 0x8c], ecx
fild dword [esp + 0x8c]
fmul dword [esp + 0x90]
call fcn.00489fa0
mov edx, dword [esp + 0x88]
mov ecx, dword [esp + 0x80]
push 1
add eax, 4
push eax
push edx
mov dword [esp + 0x98], eax
mov eax, dword [esp + 0x90]
mov edx, dword [ebp]
push eax
push ecx
push edx
call dword [fcn.0048d5c0]
mov esi, edi
jmp case.0x453377.20
mov ecx, dword [esp + 0x10]
test cl, 4
jne 0x453d91
cmp dword [esp + 0xc4], 0
jge 0x453d80
and ecx, 0xffefff7f
jmp 0x453d8d
mov eax, dword [esp + 0x64]
not eax
and eax, 0x80
or ecx, eax
mov dword [esp + 0x10], ecx
mov eax, dword [esp + 0x65c]
cmp byte [eax], 0
je 0x453db4
test cl, 4
je 0x453db4
mov edi, eax
call fcn.00464c60
mov edi, eax
mov eax, dword [esp + 0x65c]
jmp 0x453db6
mov edi, eax
test edi, edi
je 0x453dbc
mov eax, edi
mov ecx, dword [0x4a0a30]
mov edx, dword [esi]
push 0
push ecx
mov ecx, dword [esp + 0x94]
push ebx
push edx
mov edx, dword [esp + 0x98]
push ecx
mov ecx, dword [esp + 0x98]
push edx
mov edx, dword [esp + 0x98]
push ecx
mov ecx, dword [esp + 0x2c]
push edx
mov edx, dword [esp + 0x44]
push ecx
push eax
push 0x49206c
push edx
call dword [fcn.0048d498]
mov dword [ebp], eax
test eax, eax
je 0x453e75
test byte [esp + 0x10], 0x20
je 0x453e2e
mov cl, byte [esp + 0x1ec]
test cl, cl
je 0x453e2e
mov ebx, dword [fcn.0048d5e4]
push 0
movsx ecx, cl
push ecx
push 0xcc
push eax
call ebx
jmp 0x453e34
mov ebx, dword [fcn.0048d5e4]
mov eax, dword [esp + 0xc4]
test eax, eax
jns 0x453e48
xor eax, eax
mov dword [esp + 0xc4], eax
mov edx, dword [ebp]
push 0
push eax
push 0xc5
push edx
call ebx
mov eax, dword [esp + 0x19c]
test eax, eax
je 0x453e75
mov edx, dword [ebp]
lea ecx, [esp + 0xd4]
push ecx
push eax
push 0xcb
push edx
call ebx
test edi, edi
je case.0x453377.20
cmp edi, dword [esp + 0x65c]
je case.0x453377.20
push edi
call fcn.004785bf
add esp, 4
jmp case.0x453377.20
mov eax, dword [esp + 0x65c]
cmp byte [eax], 0
mov byte [esp + 0x18], 0
je 0x453ef4
mov edi, eax
push 0x494dac
push edi
call fcn.00476cb6
add esp, 8
test eax, eax
jne 0x453ecd
mov ecx, dword [esp + 0x10]
and ecx, 0xfffffff6
or ecx, 4
mov dword [esp + 0x10], ecx
jmp 0x453ef4
push 0x491f78
push edi
call fcn.00476cb6
add esp, 8
test eax, eax
jne 0x453eef
mov edx, dword [esp + 0x10]
and edx, 0xfffffffb
or edx, 9
mov dword [esp + 0x10], edx
jmp 0x453ef4
mov byte [esp + 0x18], 1
mov eax, 2
cmp dword [esp + 0x94], eax
jne 0x453f06
or dword [esp + 0x10], eax
mov eax, dword [0x4a0a30]
mov ecx, dword [esi]
mov edx, dword [esp + 0x8c]
push 0
push eax
mov eax, dword [esp + 0x90]
push ebx
push ecx
mov ecx, dword [esp + 0x94]
push edx
mov edx, dword [esp + 0x94]
push eax
mov eax, dword [esp + 0x28]
push ecx
mov ecx, dword [esp + 0x40]
push edx
push eax
push 0x49588a
push 0x495c6c
push ecx
call dword [fcn.0048d498]
mov dword [ebp], eax
test eax, eax
je case.0x453377.20
cmp byte [esp + 0x18], 0
mov edi, dword [fcn.0048d5e4]
je 0x453f76
mov edx, dword [esp + 0x65c]
push edx
push 0
push 0x1005
push eax
call edi
mov eax, dword [esp + 0x1e4]
test eax, eax
je 0x453f95
mov edx, dword [ebp]
lea ecx, [esp + 0x1c0]
push ecx
push eax
push 0x1004
push edx
call edi
mov eax, dword [esp + 0x94]
test eax, eax
je 0x453fbc
xor edx, edx
cmp eax, 1
mov eax, dword [ebp]
setne dl
lea ecx, [esp + 0x1a0]
push ecx
push edx
push 0x1002
push eax
call edi
mov eax, dword [ebp + 0x10]
cmp eax, 0xff000000
je case.0x453377.20
mov ecx, dword [ebp]
push eax
push 1
push 0x1006
push ecx
call edi
jmp case.0x453377.20
cmp dword [esp + 0x1e0], 0
jne 0x454012
mov edx, dword [esp + 0x65c]
cmp byte [edx], 0
je 0x454012
lea eax, [esp + 0x1a0]
mov ecx, edx
call fcn.00463a90
mov dword [esp + 0x1e0], eax
cmp eax, 3
jne 0x454012
or dword [esp + 0x10], 2
mov ecx, dword [esp + 0x8c]
cmp ecx, 0x80000000
jne 0x454026
mov ecx, 0x64
mov eax, dword [esp + 0x88]
test eax, eax
jns 0x454036
mov eax, 0x64
mov edx, dword [0x4a0a30]
push 0
push edx
mov edx, dword [esi]
push ebx
push edx
mov edx, dword [esp + 0x20]
push ecx
mov ecx, dword [esp + 0x94]
push eax
mov eax, dword [esp + 0x9c]
push eax
mov eax, dword [esp + 0x40]
push ecx
push edx
push 0x49588a
push 0x495c80
push eax
call dword [fcn.0048d498]
mov dword [ebp], eax
test eax, eax
je 0x45461b
mov edi, dword [esp + 0x10]
and edi, 2
je 0x454096
push 0
push 0x16e
push 0x1004
push eax
call dword [fcn.0048d5e4]
mov eax, dword [esp + 0x1e4]
mov ebx, dword [fcn.0048d5e4]
test eax, eax
je 0x4540bb
mov edx, dword [ebp]
lea ecx, [esp + 0x1c0]
push ecx
push eax
push 0x1012
push edx
call ebx
mov eax, dword [esp + 0x1e0]
test eax, eax
je 0x454131
test edi, edi
je 0x45411c
cmp eax, 1
jne 0x454107
mov eax, dword [esp + 0x1a0]
mov ecx, dword [esp + 0x1a4]
mov edx, dword [esp + 0x1a8]
mov dword [esp + 0x1b0], eax
mov eax, dword [esp + 0x1ac]
mov dword [esp + 0x1b4], ecx
mov dword [esp + 0x1b8], edx
mov dword [esp + 0x1bc], eax
mov edx, dword [ebp]
lea ecx, [esp + 0x1a0]
push ecx
push 0
push 0x1006
push edx
jmp 0x45412f
mov ecx, dword [ebp]
lea eax, [esp + 0x1a0]
push eax
push 0
push 0x1002
push ecx
call ebx
mov eax, dword [ebp + 0x10]
cmp eax, 0xff000000
je 0x454149
mov edx, dword [ebp]
push eax
push 1
push 0x100a
push edx
call ebx
mov ecx, dword [esi + 0x48]
movzx eax, byte [esp + 0x17]
imul ecx, ecx, 0x54
mov edx, dword [0x4a2b5c]
push eax
mov eax, dword [ecx + edx + 0x50]
mov ecx, dword [ebp]
push eax
push 0x30
push ecx
call ebx
mov edi, 0x80000000
mov byte [esp + 0x1b], 1
cmp dword [esp + 0x88], edi
je 0x454188
cmp dword [esp + 0x8c], edi
jne case.0x453377.20
mov eax, dword [ebp]
lea edx, [esp + 0x3c]
push edx
push 0
push 0x1009
push eax
call ebx
test eax, eax
je 0x45461b
cmp dword [esp + 0x88], 0
jge 0x4541fa
test byte [esp + 0x10], 0x10
je 0x4541b9
mov eax, dword [esp + 0x44]
jmp 0x4541d2
mov ecx, dword [ebp]
push 0
push 0
push 0x1015
push ecx
call ebx
mov ecx, dword [esp + 0x44]
cmp eax, ecx
jge 0x4541d2
mov eax, ecx
mov ecx, dword [esp + 0x88]
cmp ecx, edi
jne 0x4541e6
mov dword [esp + 0x88], eax
jmp 0x4541fa
add eax, 6
imul eax, ecx
mov edx, 0xfffffffa
sub edx, eax
mov dword [esp + 0x88], edx
mov ecx, dword [esp + 0x8c]
cmp ecx, edi
jne 0x4542ed
fldz
mov ecx, dword [esp + 0x48]
fld dword [esp + 0x90]
mov dword [esp + 0x8c], ecx
fcom st(1)
fnstsw ax
fstp st(1)
test ah, 0x41
jne 0x4542eb
fld1
fucompp
fnstsw ax
test ah, 0x44
jnp 0x4542ed
mov edi, dword [esp + 0x30]
test edi, edi
jne 0x45426e
mov eax, dword [esi]
push eax
call dword [fcn.0048d48c]
mov ecx, dword [esi + 0x48]
mov edx, dword [0x4a2b5c]
imul ecx, ecx, 0x54
mov edi, eax
mov eax, dword [ecx + edx + 0x50]
push eax
push edi
mov dword [esp + 0x38], edi
call dword [fcn.0048d0d8]
mov dword [esp + 0x34], eax
lea ecx, [esp + 0x210]
push ecx
push edi
call dword [0x48d0d0]
test byte [esp + 0x10], 0x10
mov edi, dword [esp + 0x210]
je 0x45429d
mov edx, dword [esp + 0x8c]
lea eax, [edx + edi + 4]
mov dword [esp + 0x8c], eax
fild dword [esp + 0x8c]
fld dword [esp + 0x90]
fld st(0)
fmulp st(2)
fxch st(1)
call fcn.00489fa0
add edi, 0xfffffffe
mov dword [esp + 0x8c], eax
fild dword [esp + 0x8c]
mov dword [esp + 0x1c], edi
fild dword [esp + 0x1c]
fxch st(2)
fsub qword [0x497b98]
fmulp st(2)
fsubrp st(1)
call fcn.00489fa0
mov ecx, eax
mov dword [esp + 0x8c], ecx
jmp 0x4542ed
fstp st(0)
mov edx, dword [esp + 0x84]
mov eax, dword [esp + 0x80]
push 1
push ecx
mov ecx, dword [esp + 0x90]
push ecx
mov ecx, dword [ebp]
push edx
push eax
push ecx
call dword [fcn.0048d5c0]
jmp case.0x453377.20
mov edx, dword [0x4a0a30]
mov eax, dword [esi]
mov ecx, dword [esp + 0x8c]
push 0
push edx
mov edx, dword [esp + 0x90]
push ebx
push eax
mov eax, dword [esp + 0x94]
push ecx
mov ecx, dword [esp + 0x94]
push edx
mov edx, dword [esp + 0x28]
push eax
mov eax, dword [esp + 0x40]
push ecx
push edx
push 0x49588a
push 0x495c90
push eax
call dword [fcn.0048d498]
mov dword [ebp], eax
test eax, eax
je 0x45461b
mov eax, dword [esp + 0x65c]
cmp byte [eax], 0
je 0x45438f
push 0
call fcn.0045aaf0
mov edx, dword [ebp]
movzx ecx, ax
push ecx
push 0x401
push edx
call dword [fcn.0048d5e4]
mov eax, dword [esp + 0xc4]
test eax, eax
jle 0x45461b
push 6
push eax
mov eax, dword [ebp]
push 0x403
push eax
call dword [fcn.0048d5e4]
jmp case.0x453377.20
test byte [esp + 0x10], 0x10
je 0x454573
cmp dword [esi + 4], 0
jne 0x4543dc
mov eax, dword [esp + 0x4c]
test eax, eax
je 0x454573
test byte [eax + 5], 0x80
je 0x454573
and dword [esp + 0x10], 0xffffffef
mov byte [esp + 0x18], 1
mov ecx, dword [0x4a0a30]
mov edx, dword [esi]
mov eax, dword [esp + 0x8c]
push 0
push ecx
mov ecx, dword [esp + 0x90]
push ebx
push edx
mov edx, dword [esp + 0x94]
push eax
mov eax, dword [esp + 0x94]
push ecx
mov ecx, dword [esp + 0x28]
push edx
mov edx, dword [esp + 0x40]
push eax
push ecx
push 0x49588a
push 0x495ca0
push edx
call dword [fcn.0048d498]
mov dword [ebp], eax
test eax, eax
je 0x45461b
cmp byte [esp + 0x18], 0
mov ebx, dword [esp + 0x1c]
je 0x454454
mov ecx, dword [ebx]
push 0
push ecx
push 0x469
push eax
call dword [fcn.0048d5e4]
cmp dword [esi + 0xc], 0
je 0x4545c3
test byte [esp + 0x10], 0x10
jne 0x454470
cmp byte [esp + 0x18], 0
je 0x4545c3
mov eax, dword [ebp]
lea edx, [esp + 0x3c]
push edx
push eax
call dword [fcn.0048d454]
mov edx, dword [esi]
push 2
lea ecx, [esp + 0x40]
push ecx
push edx
push 0
call edi
mov eax, dword [esp + 0x3c]
mov edx, dword [esp + 0x44]
mov ecx, dword [esp + 0x40]
sub edx, eax
mov dword [esp + 0x80], eax
mov eax, dword [esp + 0x48]
mov dword [esp + 0x84], ecx
sub eax, ecx
lea ecx, [esp + 0x50]
mov dword [esp + 0x88], edx
mov dword [esp + 0x8c], eax
mov edx, dword [ebx]
push ecx
push edx
call dword [fcn.0048d454]
mov ecx, dword [esi]
push 2
lea eax, [esp + 0x54]
push eax
push ecx
push 0
call edi
cmp byte [esi + 0xbc], 0
je 0x454550
test byte [esp + 0x10], 4
je 0x454522
mov eax, dword [esp + 0x88]
mov edx, dword [esp + 0x8c]
mov ecx, dword [esp + 0x80]
add dword [esp + 0x44], eax
push 1
push edx
add ecx, eax
push eax
mov eax, dword [esp + 0x90]
push eax
push ecx
mov dword [esp + 0x94], ecx
mov ecx, dword [ebp]
push ecx
call dword [fcn.0048d5c0]
mov ecx, dword [esp + 0x54]
mov eax, dword [esp + 0x58]
mov edx, dword [esp + 0x5c]
add eax, dword [esp + 0x88]
push 1
sub edx, ecx
push edx
mov edx, dword [esp + 0x58]
mov dword [esp + 0x60], eax
sub eax, edx
push eax
mov eax, dword [ebx]
push ecx
push edx
push eax
call dword [fcn.0048d5c0]
mov cl, byte [esp + 0x10]
test cl, 4
je 0x45457d
mov eax, dword [esp + 0x50]
mov edx, dword [esp + 0x44]
sub edx, eax
mov dword [esp + 0x80], eax
mov dword [esp + 0x88], edx
jmp 0x45458c
mov byte [esp + 0x18], 0
jmp 0x4543e6
mov eax, dword [esp + 0x58]
sub eax, dword [esp + 0x3c]
mov dword [esp + 0x88], eax
cmp byte [esp + 0x1ed], 0
jne 0x4545e0
cmp byte [ebx + 4], 9
jne 0x4545cd
mov byte [esp + 0x1ed], 1
test cl, 0x40
je 0x4545b6
mov dword [esp + 0x9c], 0x7fff
jmp 0x4545e0
mov dword [esp + 0x98], 0x7fff
jmp 0x4545e0
cmp byte [esp + 0x1ed], 0
jne 0x4545e0
mov byte [esp + 0x1ed], 1
mov dword [esp + 0x9c], 0x64
lea ecx, [esp + 0x60]
mov eax, ebp
call fcn.0045ae30
mov esi, dword [esp + 0x65c]
call fcn.0040c2c0
mov cl, byte [ebp + 5]
and cl, 0x80
movzx edx, cl
neg edx
push eax
mov eax, dword [ebp]
sbb edx, edx
and edx, 0xa
push 0
add edx, 0x467
push edx
push eax
call dword [fcn.0048d5e4]
mov esi, dword [esp + 0x650]
mov edi, dword [esp + 0x30]
test edi, edi
je 0x454644
mov eax, dword [esp + 0x34]
test eax, eax
je 0x45463a
push eax
push edi
call dword [fcn.0048d0d8]
mov ecx, dword [esi]
push edi
push ecx
call dword [fcn.0048d5c4]
cmp dword [ebp], 0
jne 0x454860
push 0x49588a
push 0x495cd4
mov ecx, 0x4a2c18
call fcn.00429900
pop edi
pop esi
pop ebp
pop ebx
add esp, 0x63c
ret 0x10
mov ecx, dword [0x4a0a30]
mov edx, dword [esi]
mov eax, dword [esp + 0x8c]
push 0
push ecx
mov ecx, dword [esp + 0x90]
push ebx
push edx
mov edx, dword [esp + 0x94]
push eax
mov eax, dword [esp + 0x94]
push ecx
mov ecx, dword [esp + 0x28]
push edx
mov edx, dword [esp + 0x40]
push eax
push ecx
push 0x49588a
push 0x495cb0
push edx
call dword [fcn.0048d498]
mov dword [ebp], eax
test eax, eax
je 0x45461b
lea eax, [esp + 0x60]
mov esi, ebp
call fcn.0045aef0
mov eax, dword [esp + 0x65c]
cmp byte [eax], 0
je 0x45461b
mov esi, eax
call fcn.0040c2c0
test byte [ebp + 5], 0x80
je 0x4546f1
push eax
mov edi, ebp
call fcn.0045aeb0
mov ecx, dword [ebp]
push eax
push 1
push 0x405
push ecx
jmp 0x454615
mov edx, dword [0x4a0a30]
mov eax, dword [esi]
mov ecx, dword [esp + 0x8c]
push 0
push edx
mov edx, dword [esp + 0x90]
push ebx
push eax
mov eax, dword [esp + 0x94]
push ecx
mov ecx, dword [esp + 0x94]
push edx
mov edx, dword [esp + 0x28]
push eax
mov eax, dword [esp + 0x40]
push ecx
push edx
push 0x49588a
push 0x494748
push eax
call dword [fcn.0048d498]
mov dword [ebp], eax
test eax, eax
je 0x45461b
mov ecx, dword [esp + 0x10]
push ecx
push esi
lea eax, [esp + 0x68]
mov ecx, ebp
call fcn.0045b0d0
mov edx, dword [esp + 0x65c]
cmp byte [edx], 0
je 0x454791
push 0
mov esi, edx
call fcn.0040c2c0
push eax
mov eax, dword [ebp]
push 0x402
push eax
call dword [fcn.0048d5e4]
mov esi, dword [esp + 0x650]
mov byte [esp + 0x2c], 0
jmp case.0x453377.20
mov ecx, dword [0x4a0a30]
mov edx, dword [esi]
mov eax, dword [esp + 0x8c]
push 0
push ecx
mov ecx, dword [esp + 0x90]
push ebx
push edx
mov edx, dword [esp + 0x94]
push eax
mov eax, dword [esp + 0x94]
push ecx
mov ecx, dword [esp + 0x28]
push edx
mov edx, dword [esp + 0x40]
push eax
push ecx
push 0x49588a
push 0x495cc4
push edx
call dword [fcn.0048d498]
mov dword [ebp], eax
test eax, eax
je 0x45461b
mov al, byte [esi + 0x54]
mov byte [esi + 0x55], al
inc al
push 0x45a870
mov byte [esi + 0x56], 0
mov byte [esi + 0x54], al
mov eax, dword [ebp]
push 0xfffffffffffffffc
push eax
call dword [fcn.0048d5d8]
mov dword [0x4a0a54], eax
jmp case.0x453377.20
mov ecx, dword [esi]
mov edx, dword [esp + 0x65c]
mov eax, dword [esp + 0x10]
push ebx
push ecx
push edx
push eax
call dword [0x48d068]
mov dword [ebp], eax
test eax, eax
je case.0x453377.20
mov ecx, dword [esp + 0xc0]
mov dword [esi + 4], eax
cmp ecx, 0xffffffff
je case.0x453377.20
push ecx
push 0
push 0x2001
push eax
call dword [fcn.0048d5e4]
jmp case.0x453377.20
mov eax, dword [esp + 0x7c]
inc dword [esi + 0xc]
mov dl, byte [esp + 0x2f]
mov byte [esi + 0xbc], dl
test eax, eax
je 0x45487e
mov ecx, dword [ebp]
push eax
call fcn.00466150
cmp byte [ebp + 4], 6
jne 0x4548a2
mov eax, dword [esp + 0xcc]
test eax, eax
je 0x45489c
push eax
mov eax, dword [esi + 0xc]
dec eax
push ebp
mov ecx, esi
call fcn.0045ad80
mov byte [esi + 0x3c], 1
jmp 0x4548a6
mov byte [esi + 0x3c], 0
test dword [esp + 0x64], 0x10000000
je 0x4548b4
or byte [ebp + 5], 8
test dword [esp + 0x60], 0x8000000
je 0x4548c2
or byte [ebp + 5], 0x10
cmp byte [esp + 0x2c], 0
jne 0x4548ed
cmp dword [ebp + 0x10], 0xff000000
je 0x4548e1
mov al, byte [ebp + 4]
cmp al, 5
je 0x4548ed
cmp al, 6
je 0x4548ed
cmp al, 3
je 0x4548ed
cmp byte [ebp + 4], 3
jne 0x4548f9
test byte [ebp + 5], 0x40
je 0x4548f9
mov eax, dword [ebp]
push eax
call fcn.00465fe0
add esp, 4
cmp byte [esp + 0x1b], 0
jne 0x454929
cmp byte [esp + 0x2e], 0
je 0x454929
mov edx, dword [esi + 0x48]
movzx ecx, byte [esp + 0x17]
imul edx, edx, 0x54
mov eax, dword [0x4a2b5c]
push ecx
mov ecx, dword [edx + eax + 0x50]
mov edx, dword [ebp]
push ecx
push 0x30
push edx
call dword [fcn.0048d5e4]
cmp dword [esp + 0x1e8], 4
jne 0x454943
mov eax, dword [ebp]
push 0
push 0
push 0xb
push eax
call dword [fcn.0048d5e4]
mov ecx, dword [esp + 0x65c]
cmp byte [ecx], 0
je 0x454961
mov edx, dword [esp + 0x94]
push edx
push esi
mov eax, ecx
mov edi, ebp
call fcn.00457770
cmp byte [ebp + 4], 0x13
jne 0x454a13
fldz
fcomp dword [esp + 0x90]
fnstsw ax
test ah, 5
jp 0x454a13
mov ecx, dword [ebp]
lea eax, [esp + 0x3c]
push eax
push ecx
call dword [fcn.0048d458]
mov eax, dword [esp + 0x10]
test al, 2
je 0x454b91
test al, al
js 0x454b91
mov edx, dword [ebp]
and eax, 0xfffffffd
push eax
push 0xfffffffffffffff0
push edx
mov bl, 1
call dword [fcn.0048d5d8]
mov ecx, dword [ebp]
lea eax, [esp + 0x3c]
push eax
push 1
push 0x1328
push ecx
call dword [fcn.0048d5e4]
test bl, bl
je 0x4549df
mov edx, dword [esp + 0x10]
mov eax, dword [ebp]
push edx
push 0xfffffffffffffff0
push eax
call dword [fcn.0048d5d8]
mov eax, dword [esp + 0x48]
sub eax, dword [esp + 0x40]
mov ecx, dword [esp + 0x88]
mov edx, dword [esp + 0x84]
push 1
push eax
push ecx
mov dword [esp + 0x98], eax
mov eax, dword [esp + 0x8c]
mov ecx, dword [ebp]
push edx
push eax
push ecx
call dword [fcn.0048d5c0]
cmp byte [esp + 0x23], 0
je 0x454a82
mov eax, dword [ebp]
lea edx, [esp + 0x3c]
push edx
push eax
call dword [fcn.0048d454]
mov eax, dword [esp + 0x48]
mov ecx, dword [esp + 0x44]
sub eax, dword [esp + 0x40]
sub ecx, dword [esp + 0x3c]
cmp byte [esp + 0x654], 9
mov dword [esp + 0x8c], eax
mov dword [esp + 0x88], ecx
jne 0x454a82
test dword [esp + 0x10], 0x100000
je 0x454a82
mov eax, dword [esp + 0xc8]
test eax, eax
jns 0x454a70
lea eax, [ecx + ecx*2]
mov dword [esp + 0xc8], eax
mov ecx, dword [ebp]
push 0
push eax
push 0x194
push ecx
call dword [fcn.0048d5e4]
mov ebx, dword [esp + 0x4c]
mov edi, dword [fcn.0048d5ac]
test ebx, ebx
je 0x454ae1
cmp byte [esp + 0x2d], 0
je 0x454ac8
mov eax, dword [ebp]
lea edx, [esp + 0x3c]
push edx
push eax
call dword [fcn.0048d454]
mov edx, dword [esi]
push 2
lea ecx, [esp + 0x40]
push ecx
push edx
push 0
call dword [fcn.0048d3e4]
mov ecx, dword [esi]
push 0
lea eax, [esp + 0x40]
push eax
push ecx
call dword [fcn.0048d5a8]
test byte [ebx + 5], 0x80
je 0x454ae1
mov edx, dword [ebp]
mov eax, dword [ebx]
push 0x13
push 0
push 0
push 0
push 0
push edx
push eax
call edi
mov eax, dword [esi + 4]
test eax, eax
je 0x454af7
push 0x13
push 0
push 0
push 0
push 0
push 1
push eax
call edi
cmp byte [esp + 0x654], 0x15
je 0x454bb0
mov eax, dword [esp + 0x88]
mov edx, dword [esp + 0x80]
mov ecx, dword [esp + 0x8c]
mov edi, dword [esp + 0x84]
mov dword [esi + 0x88], eax
mov dword [esi + 0x8c], ecx
add eax, edx
add ecx, edi
mov dword [esi + 0x80], edx
mov dword [esi + 0x84], edi
cmp eax, dword [esi + 0x90]
jle 0x454b4b
mov dword [esi + 0x90], eax
cmp ecx, dword [esi + 0x94]
jle 0x454b59
mov dword [esi + 0x94], ecx
cmp byte [esp + 0x1ef], 0
jne 0x454b98
mov ebx, dword [esi + 0xc]
cmp ebx, 1
je 0x454b98
cmp ebx, 2
jne 0x454b79
mov ebx, dword [esi + 0x14]
cmp byte [ebx + 4], 0x15
je 0x454b98
cmp eax, dword [esi + 0xa0]
jle 0x454b87
mov dword [esi + 0xa0], eax
cmp ecx, dword [esi + 0xa4]
jle 0x454bb0
jmp 0x454baa
xor bl, bl
jmp 0x4549b4
mov dword [esi + 0x98], edx
mov dword [esi + 0x9c], edi
mov dword [esi + 0xa0], eax
mov dword [esi + 0xa4], ecx
pop edi
pop esi
pop ebp
mov eax, 1
pop ebx
add esp, 0x63c
ret 0x10