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

Disassembly:
push 0xffffffffffffffff
mov eax, dword fs:[0]
push 0x4b7d9e
push eax
mov eax, 0x1664
mov dword fs:[0], esp
call fcn.00487230
push ebx
push ebp
xor ebx, ebx
push esi
push edi
mov dword [esp + 0x28], ebx
mov edi, 0x465
cmp dword [0x5f7250], ebx
jne 0x416d9c
mov edi, dword [0x5ff4b8]
mov dword [esp + 0x64], edi
cmp dword [0x5f71ac], ebx
je 0x4170ee
mov eax, dword [0x5f71bc]
xor esi, esi
cmp eax, ebx
mov dword [esp + 0xac], edi
mov dword [esp + 0xb0], 0xe
mov dword [esp + 0xb4], 0x5f71bc
mov dword [esp + 0xb8], 0x5f71cc
mov dword [esp + 0xbc], ebx
jge 0x416df8
neg eax
mov dword [0x5f71cc], eax
mov dword [0x5f71bc], ebx
mov esi, 1
mov eax, dword [0x5f71c0]
cmp eax, ebx
jge 0x416e13
neg eax
mov dword [0x5f71d0], eax
mov dword [0x5f71c0], ebx
mov esi, 1
lea eax, [esp + 0x24]
push eax
lea ecx, [esp + 0x5c]
push ecx
mov eax, 0xe
call fcn.004514f0
mov eax, dword [0x5f71c4]
mov ecx, dword [esp + 0x60]
add esp, 8
cmp eax, ecx
jle 0x416e52
mov edx, ecx
sub edx, eax
add edx, 0x500
mov dword [0x5f71d4], edx
mov dword [0x5f71c4], ecx
mov esi, 1
mov edx, dword [0x5f71c8]
mov eax, dword [esp + 0x24]
cmp edx, eax
jle 0x416e7a
mov esi, eax
sub esi, edx
add esi, 0x2d0
mov dword [0x5f71d8], esi
mov dword [0x5f71c8], eax
mov esi, 1
cmp dword [0x5f71bc], ecx
jl 0x416e87
mov esi, 1
cmp dword [0x5f71c0], eax
jge 0x416e93
cmp esi, ebx
je 0x416ec4
mov esi, dword [0x902a34]
xor eax, eax
cmp dword [0x5f7204], 0xfffffffe
setne al
dec eax
and eax, 0xffffff
cmp edi, 0xffffffff
je 0x416eb7
mov esi, dword [edi*4 + 0x902a38]
cmp esi, ebx
je 0x416ec4
push eax
call fcn.00448fc0
add esp, 4
xor ebx, ebx
mov ebp, 0x61d49c
mov esi, 1
mov dword [esp + 0x58], ebx
mov dword [esp + 0x24], ebp
cmp dword [ebp + 0x10], 0
jne 0x416ee8
cmp dword [ebp + 0x1c], 0
je 0x4170c7
mov eax, dword [ebp]
add eax, ebx
mov edx, dword [eax*4 + 0x5ff4dc]
test edx, edx
je 0x4170c7
fld1
fcomp qword [ebp + 4]
fnstsw ax
test ah, 0x44
jnp 0x416fe9
test esi, esi
je 0x416f2c
lea ecx, [esi + esi*4]
lea eax, [esp + 0xac]
mov dword [esp + ecx*4 + 0xac], 0xfffffffe
call fcn.00449a60
xor esi, esi
mov edx, dword [ebp]
fld qword [ebp + 4]
add edx, ebx
fmul qword [0x4d68b0]
mov ecx, dword [edx*4 + 0x5ff4dc]
fnstcw word [esp + 0x24]
xor eax, eax
mov dword [esp + 0x30], eax
mov dword [esp + 0x2c], eax
lea eax, [ecx + ecx*2]
add eax, eax
add eax, eax
mov edx, dword [eax + eax + 0x61cb3c]
sub edx, dword [0x5f71bc]
add eax, eax
mov dword [esp + 0x48], edx
mov edx, dword [eax + 0x61cb40]
sub edx, dword [0x5f71c0]
mov dword [esp + 0x4c], edx
mov edx, dword [eax + 0x61cb34]
mov dword [esp + 0x5c], edx
mov edx, dword [eax + 0x61cb38]
mov dword [esp + 0x60], edx
xor edx, edx
cmp dword [eax + 0x61cb44], edx
movzx eax, word [esp + 0x24]
setne dl
or eax, 0xc00
mov dword [esp + 0x28], eax
add ecx, 0xe
fldcw word [esp + 0x28]
push edx
fistp dword [esp + 0x2c]
push 0
mov ax, word [esp + 0x30]
movzx edx, ax
push edx
fldcw word [esp + 0x30]
lea eax, [esp + 0x54]
push eax
mov edx, eax
push edx
push ecx
push edi
push edi
lea eax, [esp + 0x7c]
lea ecx, [esp + 0x4c]
call fcn.0044e390
add esp, 0x20
mov dword [esp + 0x28], 1
jmp 0x4170c7
lea ecx, [esi + esi*4]
lea eax, [edx + 0xe]
add ecx, ecx
add ecx, ecx
mov dword [esp + ecx + 0xb0], eax
mov dword [esp + ecx + 0xac], edi
lea edx, [edx + edx*2]
add edx, edx
mov eax, esi
shl eax, 4
lea edi, [esp + eax + 0x9ac]
mov dword [esp + 0x14], edi
mov dword [edi], 0
add edx, edx
mov edi, dword [edx + edx + 0x61cb38]
mov ebx, dword [edx + edx + 0x61cb3c]
sub ebx, dword [0x5f71bc]
add edx, edx
mov dword [esp + eax + 0x9b8], edi
mov edi, dword [edx + 0x61cb34]
mov dword [esp + eax + 0x9b4], edi
mov edi, dword [edx + 0x61cb40]
sub edi, dword [0x5f71c0]
lea ebp, [esp + eax + 0x100c]
mov dword [esp + eax + 0x1010], edi
mov dword [esp + 0x1c], ebp
mov dword [ebp], ebx
mov ebp, dword [edx + 0x61cb38]
add ebp, edi
mov edi, dword [edx + 0x61cb34]
add edi, ebx
mov ebx, dword [esp + 0x58]
mov dword [esp + eax + 0x1018], ebp
mov ebp, dword [esp + 0x24]
mov dword [esp + eax + 0x1014], edi
mov edi, dword [esp + 0x64]
mov dword [esp + eax + 0x9b0], 0
mov eax, dword [esp + 0x14]
mov dword [esp + ecx + 0xb4], eax
mov eax, dword [esp + 0x1c]
mov dword [esp + ecx + 0xb8], eax
xor eax, eax
cmp dword [edx + 0x61cb44], eax
setne al
inc esi
mov dword [esp + ecx + 0xbc], eax
add ebp, 0x28
add ebx, 0x12d
cmp ebp, 0x61e43c
mov dword [esp + 0x24], ebp
mov dword [esp + 0x58], ebx
jl 0x416ed8
test esi, esi
jne 0x41713d
cmp dword [esp + 0x28], esi
jne 0x417157
mov eax, dword [0x5ff4b8]
cmp eax, 0xffffffff
jne 0x41711a
mov esi, dword [0x902a34]
test esi, esi
je 0x417421
mov ecx, dword [0x5f71e4]
push ecx
call fcn.00448fc0
add esp, 4
jmp 0x417421
mov esi, dword [eax*4 + 0x902a38]
test esi, esi
je 0x417421
mov edx, dword [0x5f71e4]
push edx
call fcn.00448fc0
add esp, 4
jmp 0x417421
lea eax, [esi + esi*4]
mov dword [esp + eax*4 + 0xac], 0xfffffffe
lea eax, [esp + 0xac]
call fcn.00449a60
cmp dword [0x4f3ea4], 0
jne 0x417267
cmp dword [0x4f3ea8], 0
je 0x417267
cmp dword [0x5f7208], 0
je 0x417267
cmp dword [0x5f7204], 0
je 0x417267
cmp dword [0x5f7ae0], 0
je 0x4171aa
cmp dword [0x5f72a8], 0
je 0x4171aa
cmp dword [0x5f7254], 0
jne 0x417267
call dword [0x4b939c]
mov ecx, dword [0x4f3eb4]
sub eax, ecx
mov ecx, dword [0x5f7230]
cmp eax, ecx
jbe 0x417267
sub eax, ecx
mov dword [esp + 0x1c], eax
fild dword [esp + 0x1c]
test eax, eax
jge 0x4171da
fadd qword [0x4d68c8]
mov ecx, dword [0x5f722c]
fild dword [0x5f722c]
test ecx, ecx
jge 0x4171f0
fadd qword [0x4d68c8]
fdivp st(1)
mov ecx, 0xff
fmul qword [0x4d68b0]
fnstcw word [esp + 0x24]
movzx eax, word [esp + 0x24]
or eax, 0xc00
mov dword [esp + 0x1c], eax
fldcw word [esp + 0x1c]
fistp dword [esp + 0x1c]
mov dx, word [esp + 0x1c]
movzx eax, dx
fldcw word [esp + 0x24]
cmp ax, cx
jbe 0x41722c
mov eax, ecx
jmp 0x41722f
movzx eax, ax
cmp dword [0x5f7204], 0
jge 0x41723f
mov edx, ecx
sub edx, eax
movzx eax, dx
push 0
push 0
push eax
push 0x9135e0
push 0x9135e0
push edi
push 0x7df
push edi
mov eax, 0x4f22d8
mov ecx, 0x9135e0
call fcn.0044e390
add esp, 0x20
cmp dword [esp + 0x1684], 0
je 0x417421
mov eax, dword [0x5f71bc]
mov ecx, dword [0x5f71c0]
mov dword [esp + 0x5c], eax
lea edx, [esp + 0x14]
xor ebp, ebp
push edx
lea eax, [esp + 0x54]
push eax
lea eax, [ebp + 0xe]
mov dword [esp + 0x50], ebp
mov dword [esp + 0x54], ebp
mov dword [esp + 0x34], 0x500
mov dword [esp + 0x38], 0x2d0
mov dword [esp + 0x68], ecx
call fcn.004514f0
add esp, 8
cmp dword [0x5f71b0], ebp
je 0x4172d3
push 0x5ff4c8
push str._s.mos
lea ecx, [esp + 0x8ac]
push ecx
jmp 0x4172e5
push 0x5f71e8
push str._s.mos
lea edx, [esp + 0x8ac]
push edx
call fcn.00483a3c
add esp, 0xc
lea eax, [esp + 0x8a4]
call fcn.0043ac90
push 1
mov esi, eax
push 1
lea eax, [esp + 0x24]
push eax
lea ecx, [esp + 0xa0]
push ecx
push esi
lea eax, [esp + 0x8b8]
call fcn.004666e0
add esp, 0x14
test eax, eax
je 0x41740a
cmp dword [esp + 0x1c], 8
jne 0x41740a
mov eax, dword [esp + 0x98]
imul eax, dword [esp + 0x94]
add eax, 7
push eax
call fcn.004836a3
mov ebx, eax
add esp, 4
cmp ebx, ebp
je 0x41740a
test bl, 7
je 0x417365
shr eax, 3
lea ebp, [eax*8 + 8]
jmp 0x417367
mov ebp, ebx
push 0
push 1
lea edx, [esp + 0x9c]
push ebp
push edx
lea eax, [esp + 0x8b4]
mov edx, esi
call fcn.00466950
add esp, 0x10
test eax, eax
je 0x417401
mov eax, dword [esp + 0x14]
mov ecx, dword [esp + 0x50]
push eax
push ecx
push 0x7f7
call fcn.00449090
mov eax, dword [0x904a14]
add esp, 0xc
test eax, eax
je 0x4173b8
push 0xffffff
mov esi, eax
call fcn.00448fc0
add esp, 4
push 2
push ebp
xor esi, esi
push esi
lea edx, [esp + 0x54]
push edx
mov eax, edx
push eax
push 0x7f7
push edi
push edi
lea eax, [esp + 0x4c]
lea ecx, [esp + 0x7c]
call fcn.0044e390
mov eax, dword [0x904a14]
add esp, 0x20
cmp eax, esi
je 0x417401
mov ecx, dword [eax]
mov edx, dword [ecx + 8]
push eax
call edx
mov dword [0x904a14], esi
mov dword [0x7f266c], esi
mov byte [0x9014d4], 0
push ebx
call fcn.004835c6
add esp, 4
cmp dword [0x5f7250], 0
je 0x4176b8
mov dword [0x5f7258], 1
cmp dword [0x5f7250], 0
je 0x4176b8
cmp dword [0x5f7258], 0
je 0x41755c
mov eax, dword [0x5f71c0]
mov ecx, dword [0x5f71bc]
mov edi, dword [0x5f7264]
mov ebp, dword [0x5f726c]
mov esi, dword [0x5f7260]
mov ebx, dword [0x5f7268]
sub ebp, eax
sub edi, eax
sub ebx, ecx
lea eax, [esp + 0x50]
sub esi, ecx
push eax
lea ecx, [esp + 0x18]
push ecx
mov eax, 0x465
mov dword [esp + 0x3c], ebx
mov dword [esp + 0x40], ebp
call fcn.004514f0
xor edx, edx
add esp, 8
test esi, esi
setl dl
xor eax, eax
dec edx
and edx, esi
test edi, edi
setl al
mov dword [esp + 0x2c], edx
dec eax
and eax, edi
mov dword [esp + 0x30], eax
mov eax, dword [esp + 0x14]
cmp ebx, eax
jle 0x4174ad
mov dword [esp + 0x34], eax
mov eax, dword [esp + 0x50]
cmp ebp, eax
jle 0x4174b9
mov dword [esp + 0x38], eax
mov ecx, dword [0x912390]
mov edx, dword [0x903bcc]
mov eax, dword [0x903be8]
push 0
push ecx
push 0
push 0
push 0x5f7270
push edx
push eax
lea eax, [esp + 0x48]
call fcn.00452710
add esp, 0x1c
cmp dword [esp + 0x1684], 0
jne 0x4174f8
mov dword [0x5f7258], 0
cmp dword [0x5fd070], 0
je 0x41755c
cmp dword [0x5fd078], 0
jne 0x41753b
push 0xe1007
call fcn.004836a3
add esp, 4
mov dword [0x5fd078], eax
test eax, eax
je 0x41753b
test al, 7
je 0x417536
shr eax, 3
lea ecx, [eax*8 + 8]
mov dword [0x5fd07c], ecx
jmp 0x41753b
mov dword [0x5fd07c], eax
mov edx, dword [0x5fd06c]
mov eax, dword [0x5fd07c]
mov ecx, dword [0x5fd074]
push edx
push eax
push ecx
push 0x5f7260
call fcn.0043ab50
add esp, 0x10
cmp dword [0x5f71ac], 0
je 0x4176b8
xor esi, esi
cmp dword [0x5f7adc], esi
jne 0x41766f
cmp dword [0x5f7ae0], esi
je 0x41766f
cmp dword [0x5f72a8], esi
je 0x41766f
cmp dword [0x5f7254], esi
je 0x41766f
call dword [0x4b939c]
mov ecx, dword [0x5f7aec]
sub eax, ecx
mov ecx, dword [0x5f72e0]
cmp eax, ecx
jbe 0x417660
sub eax, ecx
mov dword [esp + 0x14], eax
fild dword [esp + 0x14]
test eax, eax
jge 0x4175cb
fadd qword [0x4d68c8]
mov edx, dword [0x5f72dc]
fild dword [0x5f72dc]
test edx, edx
jge 0x4175e1
fadd qword [0x4d68c8]
fdivp st(1)
mov ecx, 0xff
fmul qword [0x4d68b0]
fnstcw word [esp + 0x24]
movzx eax, word [esp + 0x24]
or eax, 0xc00
mov dword [esp + 0x14], eax
fldcw word [esp + 0x14]
fistp dword [esp + 0x14]
mov ax, word [esp + 0x14]
movzx eax, ax
fldcw word [esp + 0x24]
cmp ax, cx
jbe 0x41761d
mov eax, ecx
jmp 0x417620
movzx eax, ax
cmp dword [0x5f7254], esi
jge 0x41762f
mov edx, ecx
sub edx, eax
movzx eax, dx
push esi
push esi
push eax
mov eax, dword [0x5ff4b8]
push 0x9135e8
push 0x9135e8
push 0x46c
push 0x7df
push eax
mov eax, 0x4f22e0
mov ecx, 0x9135e8
call fcn.0044e390
add esp, 0x20
jmp 0x4176b8
mov ecx, dword [0x5ff4b8]
mov dword [esp + 0xac], ecx
jmp 0x41767c
mov edx, dword [0x5ff4b8]
mov dword [esp + 0xac], edx
mov eax, 0x5f71cc
mov dword [esp + 0xb4], eax
mov dword [esp + 0xb8], eax
lea eax, [esp + 0xac]
mov dword [esp + 0xb0], 0x46c
mov dword [esp + 0xbc], esi
mov dword [esp + 0xc0], 0xfffffffe
call fcn.00449a60
xor ebp, ebp
cmp dword [0x9130b0], ebp
je 0x4176d6
cmp word [0x6d8876], bp
jne 0x4176d6
mov eax, dword [0x5ff4b8]
push eax
call fcn.00459330
mov edx, dword [0x5ff4b8]
mov edi, 1
push 0xffffffffffffffff
mov dword [esp + 0x30], 5
mov dword [esp + 0x34], 4
mov dword [esp + 0x38], 3
mov dword [esp + 0x3c], 2
mov dword [esp + 0x40], edi
mov dword [esp + 0x44], ebp
call fcn.0043cce0
add esp, 4
call dword [0x4b939c]
lea ecx, [esp + 0x94]
push ecx
lea edx, [esp + 0x30]
mov ebx, eax
push edx
push ebx
mov dword [esp + 0x28], ebx
call fcn.0043a1a0
add esp, 0xc
test eax, eax
je 0x4178d2
push 0x2d0
push 0x500
push 0x7f7
mov dword [esp + 0x34], ebp
call fcn.00449090
mov eax, dword [0x5ff4b8]
mov dword [esp + 0x7c], eax
mov eax, 0x4f284c
mov dword [esp + 0x84], eax
mov dword [esp + 0x80], eax
add esp, 0xc
lea eax, [esp + 0x6c]
mov dword [esp + 0x6c], 0x7f7
mov dword [esp + 0x7c], ebp
mov dword [esp + 0x80], 0xfffffffe
call fcn.00449a60
xor esi, esi
jmp 0x4177a0
mov eax, dword [esp + esi + 0x2c]
cmp dword [esp + esi + 0x94], edi
je 0x4177bf
mov ecx, dword [0x5ff4b8]
push edi
push ebx
push eax
push ecx
call fcn.0043a290
add esp, 0x10
add esi, 4
cmp esi, 0x18
jl 0x4177a0
xor esi, esi
lea esp, [esp]
mov edi, dword [esp + esi + 0x94]
mov eax, dword [esp + esi + 0x2c]
cmp edi, 0xffffffff
je 0x4177f1
push 1
push ebx
push eax
push 0x7f7
call fcn.0043a290
add esp, 0x10
cmp edi, 1
jne 0x4177fa
mov dword [esp + 0x28], edi
add esi, 4
cmp esi, 0x18
jl 0x4177d0
mov ecx, dword [0x4f3eb4]
mov eax, ebx
sub eax, ecx
mov ecx, dword [esp + 0x28]
imul ecx, ecx, 0x150
mov edx, dword [ecx + 0x5f737c]
cmp edx, ebp
je 0x4178ac
sub eax, dword [ecx + 0x5f7380]
mov dword [esp + 0x14], eax
fild dword [esp + 0x14]
test eax, eax
jge 0x41783c
fadd qword [0x4d68c8]
mov dword [esp + 0x14], edx
fild dword [esp + 0x14]
test edx, edx
jge 0x41784e
fadd qword [0x4d68c8]
fdivp st(1)
fmul qword [0x4d68b0]
call fcn.004880e0
cmp eax, 0xff
jle 0x417867
mov eax, 0xff
xor edx, edx
cmp eax, ebp
setl dl
push ebp
push ebp
mov dword [esp + 0x1c], ebp
mov dword [esp + 0x20], ebp
mov dword [esp + 0x34], 0x500
mov dword [esp + 0x38], 0x2d0
dec edx
and eax, edx
push eax
lea eax, [esp + 0x20]
push eax
mov ecx, eax
mov eax, dword [0x5ff4b8]
push ecx
push 0x7f7
push eax
push eax
lea eax, [esp + 0x4c]
call fcn.0044e390
add esp, 0x20
mov eax, dword [0x904a14]
cmp eax, ebp
je 0x4178f1
mov edx, dword [eax]
push eax
mov eax, dword [edx + 8]
call eax
mov dword [0x904a14], ebp
mov dword [0x7f266c], ebp
mov byte [0x9014d4], 0
jmp 0x4178f1
xor esi, esi
mov eax, dword [esp + esi*4 + 0x2c]
mov ecx, dword [0x5ff4b8]
push ebp
push ebx
push eax
push ecx
call fcn.0043a290
add esi, edi
add esp, 0x10
cmp esi, 6
jl 0x4178d4
xor ebx, ebx
mov esi, 0x6da29c
mov edi, 0x5f731c
lea ecx, [ecx]
cmp dword [edi - 0x20], ebp
je 0x417956
cmp dword [esi - 0xc], ebp
je 0x417956
mov edx, dword [edi]
mov eax, dword [edi + 4]
add edx, dword [esi]
add eax, dword [esi + 4]
mov dword [esp + 0x48], edx
mov dword [esp + 0x4c], eax
mov dword [esp + 0x30], ebp
mov dword [esp + 0x2c], ebp
cmp dword [esi + 8], ebp
je 0x417956
mov ecx, dword [esi + 0xc]
push 2
push ecx
push ebp
lea edx, [esp + 0x54]
push edx
mov ecx, edx
push ecx
mov ecx, dword [0x5ff4b8]
lea edx, [ebx + 0x7e5]
push edx
push ecx
push ecx
lea eax, [esi - 8]
lea ecx, [esp + 0x4c]
call fcn.0044e390
add esp, 0x20
add edi, 0x150
inc ebx
add esi, 0x2c
cmp edi, 0x5f7afc
jl 0x417900
cmp dword [0x4fdc00], ebp
je 0x417b89
cmp dword [0x4fdc60], ebp
je 0x417b3e
mov eax, dword [0x4fdc28]
mov edi, dword [0x4fdc18]
mov ebx, dword [0x4fdc1c]
mov ecx, dword [0x4fdc2c]
mov dword [esp + 0x14], eax
mov eax, dword [0x4fdc20]
sub eax, edi
mov dword [esp + 0x50], eax
mov eax, dword [0x4fdc24]
sub eax, ebx
mov dword [esp + 0x18], ecx
mov dword [esp + 0x48], edi
mov dword [esp + 0x4c], ebx
mov dword [esp + 0x54], eax
cmp dword [0x4fdc84], ebp
je 0x417b0f
cmp dword [0x4fdca4], ebp
je 0x417b0f
mov eax, dword [esp + 0x1c]
mov ecx, dword [0x4fdc9c]
sub eax, ecx
mov esi, eax
mov edx, esi
mov dword [esp + 0x1c], edx
fild dword [esp + 0x1c]
test edx, edx
jge 0x4179f7
fadd qword [0x4d68c8]
mov eax, dword [0x4fdca8]
fild dword [0x4fdca8]
test eax, eax
jge 0x417a0c
fadd qword [0x4d68c8]
fdivp st(1)
fmul qword [0x4d68b0]
call fcn.004880e0
cmp eax, 0xff
jle 0x417a25
mov eax, 0xff
xor ecx, ecx
cmp eax, ebp
setl cl
dec ecx
and eax, ecx
mov ecx, dword [0x4fdca4]
cmp ecx, ebp
mov dword [esp + 0x28], eax
jge 0x417a48
mov edx, 0xff
sub edx, eax
mov dword [esp + 0x28], edx
cmp esi, dword [0x4fdca8]
jb 0x417a67
cmp ecx, 0xffffffff
jne 0x417a61
mov dword [0x4fdc00], ebp
mov dword [0x4fdc84], ebp
mov dword [0x4fdca4], ebp
mov eax, dword [esp + 0x50]
mov ecx, dword [esp + 0x54]
add eax, edi
add ecx, ebx
push 0x1c
mov dword [esp + 0x30], edi
mov dword [esp + 0x34], ebx
mov dword [esp + 0x38], eax
mov dword [esp + 0x3c], ecx
call fcn.00483793
add esp, 4
mov dword [esp + 0x1c], eax
mov dword [esp + 0x167c], ebp
cmp eax, ebp
je 0x417abd
mov edx, dword [0x4fdc48]
mov ecx, dword [0x4fdc64]
push edx
mov edx, dword [esp + 0x2c]
push ecx
push edx
push eax
lea eax, [esp + 0x3c]
call fcn.00440530
mov edi, eax
jmp 0x417abf
xor edi, edi
push 2
mov dword [esp + 0x1680], 0xffffffff
mov eax, dword [0x4fdc64]
push eax
mov eax, dword [0x5ff4b8]
push ebp
lea ecx, [esp + 0x20]
push ecx
mov edx, ecx
push edx
push 0x7f2
push eax
push eax
lea eax, [esp + 0x70]
lea ecx, [esp + 0x68]
call fcn.0044e390
add esp, 0x20
cmp edi, ebp
je 0x417b89
call fcn.00440620
push edi
call fcn.0048376d
add esp, 4
jmp 0x417b89
mov eax, dword [0x4fdc64]
push 2
push eax
mov eax, dword [0x5ff4b8]
push ebp
lea ecx, [esp + 0x20]
push ecx
mov edx, ecx
push edx
push 0x7f2
push eax
push eax
lea eax, [esp + 0x70]
lea ecx, [esp + 0x68]
call fcn.0044e390
add esp, 0x20
jmp 0x417b89
mov eax, dword [0x5ff4b8]
mov dword [esp + 0xac], eax
lea eax, [esp + 0xac]
mov dword [esp + 0xb0], 0x7f2
mov dword [esp + 0xb4], 0x4fdc18
mov dword [esp + 0xb8], 0x4fdc28
mov dword [esp + 0xbc], ebp
mov dword [esp + 0xc0], 0xfffffffe
call fcn.00449a60
mov ax, word [0x6d88a6]
mov dword [0x6da39c], ebp
mov dword [0x4f9e88], 1
cmp ax, bp
je case.default.0x417bcb
cwde
dec eax
mov dword [esp + 0x2c], ebp
mov dword [esp + 0x30], ebp
mov dword [esp + 0x34], 0x500
mov dword [esp + 0x38], 0x2d0
cmp eax, 6
ja case.default.0x417bcb
jmp dword [eax*4 + 0x418038]
mov ecx, dword [0x5ff4b8]
push ecx
lea esi, [esp + 0x30]
call fcn.00451560
add esp, 4
jmp case.default.0x417bcb
mov eax, dword [0x5ff4b8]
push ebp
lea edx, [esp + 0x30]
push edx
push eax
call fcn.00451690
add esp, 0xc
jmp case.default.0x417bcb
push 1
mov edx, dword [0x5ff4b8]
lea ecx, [esp + 0x30]
push ecx
push edx
call fcn.00451690
add esp, 0xc
jmp case.default.0x417bcb
mov eax, dword [0x5ff4b8]
push ebp
push ebp
push ebp
push eax
mov ecx, 2
lea eax, [esp + 0x3c]
call fcn.004552a0
add esp, 0x10
jmp case.default.0x417bcb
movsx edx, word [0x6d8886]
movsx eax, word [0x6d8884]
movsx ecx, word [0x6d8880]
push edx
movsx edx, word [0x6d8882]
push eax
mov eax, dword [0x5ff4b8]
push edx
push eax
lea eax, [esp + 0x3c]
call fcn.004552a0
add esp, 0x10
jmp case.default.0x417bcb
push 2
jmp 0x417c05
mov dword [esp + 0x20], ebp
mov dword [esp + 0x1c], ebp
mov dword [esp + 0x48], ebp
call fcn.004849c1
cdq
mov ecx, 0x2d0
idiv ecx
mov esi, dword [0x5f71c8]
mov eax, dword [0x5f71c4]
mov dword [esp + 0x14], eax
mov dword [esp + 0x18], esi
lea ecx, [edx + esi]
cmp ecx, 0x2d0
mov dword [esp + 0x4c], edx
jle 0x417cbd
mov esi, 0x2d0
sub esi, edx
mov dword [esp + 0x18], esi
xor edi, edi
nop
push ebp
push ebp
push 0x40
lea edx, [esp + 0x28]
push edx
mov eax, edx
push eax
mov eax, dword [0x5ff4b8]
push 0x7bd
push eax
push eax
lea eax, [esp + 0x34]
lea ecx, [esp + 0x68]
call fcn.0044e390
add dword [esp + 0x40], esi
mov ecx, 0x2d0
sub ecx, esi
add edi, esi
add esp, 0x20
cmp edi, 0x2d0
mov esi, ecx
mov dword [esp + 0x4c], ebp
mov dword [esp + 0x18], esi
jl 0x417cc0
mov ax, word [0x6d8888]
mov edx, 0x3e8
cmp ax, dx
jle 0x417ef3
cwde
mov dword [esp + 0x1c], eax
fild dword [esp + 0x1c]
fmul qword [0x4d68d8]
fst qword [esp + 0x2c]
fldz
fucompp
fnstsw ax
test ah, 0x44
jnp 0x417ef3
push 0x2d0
push 0x500
push 0x7f6
call fcn.00449090
fld1
fdiv qword [esp + 0x38]
add esp, 4
fld st(0)
fst qword [esp + 0x64]
fxch st(1)
fstp qword [esp + 0x34]
fimul dword [0x4f22e8]
fadd qword [0x4d67d8]
fstp qword [esp]
call fcn.00487100
call fcn.004880e0
fild dword [0x4f22ec]
mov esi, eax
fmul qword [esp + 0x34]
fadd qword [0x4d67d8]
fstp qword [esp]
call fcn.00487100
call fcn.004880e0
fild dword [0x4f22f0]
mov edi, eax
fmul qword [esp + 0x64]
fadd qword [0x4d67d8]
fstp qword [esp]
call fcn.00487100
call fcn.004880e0
fild dword [0x4f22f4]
mov ebx, eax
fmul qword [esp + 0x34]
fadd qword [0x4d67d8]
fstp qword [esp]
call fcn.00487100
add esp, 8
call fcn.004880e0
movsx edx, word [0x6d888a]
mov ecx, ebx
sub ecx, esi
sar ecx, 1
sub edx, ecx
add esi, edx
add ebx, edx
movsx edx, word [0x6d888c]
mov ecx, eax
sub ecx, edi
sar ecx, 1
sub edx, ecx
add edi, edx
add eax, edx
cmp esi, ebp
mov dword [esp + 0x2c], esi
mov dword [esp + 0x34], ebx
mov dword [esp + 0x30], edi
mov dword [esp + 0x38], eax
jge 0x417e25
sub ebx, esi
xor esi, esi
mov dword [esp + 0x34], ebx
mov dword [esp + 0x2c], esi
cmp edi, ebp
jge 0x417e35
sub eax, edi
xor edi, edi
mov dword [esp + 0x38], eax
mov dword [esp + 0x30], edi
cmp ebx, 0x500
jle 0x417e52
mov ecx, 0x500
sub ecx, ebx
add esi, ecx
mov dword [esp + 0x2c], esi
mov dword [esp + 0x34], 0x500
cmp eax, 0x2d0
jle 0x417e6e
mov edx, 0x2d0
sub edx, eax
add edi, edx
mov dword [esp + 0x30], edi
mov dword [esp + 0x38], 0x2d0
mov eax, dword [0x5ff4b8]
mov dword [esp + 0x70], eax
mov esi, 0x4f22e8
lea eax, [esp + 0x6c]
mov dword [esp + 0x6c], 0x7f6
mov dword [esp + 0x78], esi
mov dword [esp + 0x74], esi
mov dword [esp + 0x7c], ebp
mov dword [esp + 0x80], 0xfffffffe
call fcn.00449a60
mov ecx, dword [0x912390]
mov eax, dword [0x5ff4b8]
mov edx, dword [0x904a10]
push ebp
push ecx
mov ecx, dword [eax*4 + 0x902a38]
push ebp
push ebp
push esi
push edx
push ecx
lea eax, [esp + 0x48]
call fcn.00452710
mov eax, dword [0x904a10]
add esp, 0x1c
cmp eax, ebp
je 0x417ef3
mov edx, dword [eax]
push eax
mov eax, dword [edx + 8]
call eax
mov dword [0x904a10], ebp
mov dword [0x7f2660], ebp
mov byte [0x9012b4], 0
cmp word [0x6d88a6], 6
jne 0x41801c
mov esi, 0x2d0
push esi
mov edi, 0x500
push edi
push 0x7f6
call fcn.00449090
mov ecx, dword [0x5ff4b8]
mov eax, 0xa
mov dword [esp + 0x9bc], eax
mov dword [esp + 0x9b8], eax
lea eax, [esp + 0x1018]
lea edx, [esp + 0x9b8]
mov dword [esp + 0xc4], eax
add esp, 0xc
lea eax, [esp + 0xac]
mov dword [esp + 0x1010], ebp
mov dword [esp + 0x100c], ebp
mov dword [esp + 0x1014], edi
mov dword [esp + 0x1018], esi
mov dword [esp + 0x9b4], 0x4f6
mov dword [esp + 0x9b8], 0x2c6
mov dword [esp + 0xac], 0x7f6
mov dword [esp + 0xb0], ecx
mov dword [esp + 0xb4], edx
mov dword [esp + 0xbc], ebp
mov dword [esp + 0xc0], 0xfffffffe
call fcn.00449bd0
push 1
push ebp
push 0x7f6
call fcn.00454a80
mov eax, dword [0x5ff4b8]
add esp, 0xc
push ebp
push ebp
push 0x80
lea ecx, [esp + 0x28]
push ecx
mov edx, ecx
push edx
push 0x7f6
push eax
push eax
lea eax, [esp + 0x4c]
mov dword [esp + 0x40], ebp
mov dword [esp + 0x3c], ebp
mov dword [esp + 0x4c], edi
mov dword [esp + 0x50], esi
call fcn.0044e390
mov eax, dword [0x904a10]
add esp, 0x20
cmp eax, ebp
je 0x41801c
mov ecx, dword [eax]
mov edx, dword [ecx + 8]
push eax
call edx
mov dword [0x904a10], ebp
mov dword [0x7f2660], ebp
mov byte [0x9012b4], 0
mov ecx, dword [esp + 0x1674]
pop edi
pop esi
pop ebp
mov dword fs:[0], ecx
pop ebx
add esp, 0x1670
ret