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

Disassembly:
mov eax, dword fs:[0]
push 0xffffffffffffffff
push 0x6590fc
push eax
mov dword fs:[0], esp
sub esp, 0x104
push ebx
push ebp
mov ebp, ecx
push esi
push edi
mov eax, dword [ebp + 0xa4]
mov ecx, dword [ebp + 0x8c]
mov edx, dword [ebp + 0x44]
mov esi, eax
sub esi, ecx
cmp esi, edx
jae 0x585430
sub eax, ecx
mov dword [esp + 0x2c], eax
jmp 0x585434
mov dword [esp + 0x2c], edx
lea eax, [esp + 0x68]
lea ecx, [esp + 0x7c]
push eax
push ecx
mov ecx, ebp
call fcn.005853a0
mov ebx, dword [esp + 0x124]
push 0
push ebx
mov ecx, 0x732bc0
call fcn.00495c80
push 1
push ebx
mov ecx, 0x732bc0
mov dword [esp + 0x88], eax
call fcn.00495d00
mov dword [esp + 0x78], eax
mov eax, dword [ebx + 8]
lea edx, [esp + 0xdc]
push edx
push eax
call dword [fcn.0065e100]
fild dword [esp + 0x7c]
mov ecx, dword [esp + 0xdc]
fld st(0)
fmul qword [0x675768]
lea edx, [ecx + ecx]
mov dword [esp + 0x30], edx
fild dword [esp + 0x30]
fsubp st(1)
call fcn.00645030
fild dword [esp + 0x68]
mov edi, eax
mov eax, dword [esp + 0xf0]
fstp qword [esp + 0x20]
lea ecx, [eax + eax]
mov dword [esp + 0x30], ecx
fild dword [esp + 0x30]
fld qword [esp + 0x20]
fmul qword [0x675760]
faddp st(1)
call fcn.00645030
fmul qword [0x665668]
mov esi, eax
mov dword [esp + 0x44], esi
call fcn.00645030
fld qword [esp + 0x20]
fmul qword [0x675758]
mov dword [esp + 0x38], eax
call fcn.00645030
mov edx, dword [esp + 0x38]
mov dword [esp + 0xb4], eax
mov dword [esp + 0xac], esi
lea eax, [esp + 0xac]
lea esi, [ebp + 0x5c]
push eax
push esi
mov dword [esp + 0xb8], edx
mov dword [esp + 0xc0], edi
call dword [fcn.0065f51c]
mov ecx, dword [0x73a954]
push 1
push 0
push ecx
push esi
push ebx
mov ecx, 0x732bc0
call fcn.00496080
fild dword [ebp + 0x68]
fmul dword [ebp + 0x58]
call fcn.00645030
mov edx, dword [esi]
mov ecx, dword [ebp + 0x64]
mov dword [esp + 0xbc], edx
mov edx, dword [ebp + 0x60]
mov dword [esp + 0xc0], edx
lea edx, [esp + 0xbc]
mov dword [esp + 0xc8], eax
mov dword [esp + 0xc4], ecx
lea eax, [ebp + 0x6c]
push edx
push eax
call dword [fcn.0065f51c]
mov eax, dword [0x73a954]
push 1
push 0
push eax
lea eax, [ebp + 0x6c]
mov ecx, 0x732bc0
push eax
push ebx
call fcn.00496080
mov ecx, dword [ebp + 0x68]
mov dword [esp + 0x3c], ecx
fild dword [esp + 0x3c]
fmul dword [ebp + 0x58]
call fcn.00645030
mov ecx, dword [esi]
mov edx, dword [esp + 0x3c]
mov dword [esp + 0xd0], eax
mov eax, dword [ebp + 0x64]
mov dword [esp + 0xcc], ecx
mov dword [esp + 0xd4], eax
lea ecx, [esp + 0xcc]
lea eax, [ebp + 0x7c]
push ecx
push eax
mov dword [esp + 0xe0], edx
call dword [fcn.0065f51c]
mov edx, dword [0x73a954]
push 1
push 0
lea eax, [ebp + 0x7c]
push edx
push eax
push ebx
mov ecx, 0x732bc0
call fcn.00496080
fild dword [esp + 0x44]
fstp qword [esp + 0x20]
fild dword [esp + 0x68]
fmul qword [0x675760]
fsubr qword [esp + 0x20]
fild dword [esp + 0xf0]
fmul qword [0x66f538]
fsubp st(1)
call fcn.00645030
mov ecx, dword [0x6be5b4]
mov edx, dword [0x73a988]
push ecx
push 4
push edx
mov edx, dword [esp + 0x44]
sub esp, 0x10
mov ecx, esp
push ebx
mov dword [ecx], eax
mov eax, dword [esp + 0x64]
mov dword [ecx + 4], edx
mov dword [ecx + 8], eax
mov dword [ecx + 0xc], edi
lea ecx, [esp + 0x78]
push ecx
push 0x732bc0
call fcn.00496600
fild dword [ebp + 0x64]
fild dword [esp + 0x118]
mov edx, dword [0x6be5b0]
mov ecx, dword [ebp + 0x68]
mov eax, dword [0x73a988]
add esp, 0x28
fmul qword [0x675750]
push edx
add ecx, 8
push eax
push ecx
fsubp st(1)
call fcn.00645030
push eax
lea edx, [esp + 0x68]
push ebx
push edx
push 0x732bc0
call fcn.00496340
fild dword [esp + 0xf8]
add esp, 0x1c
fmul qword [0x668920]
fiadd dword [ebp + 0x80]
call fcn.00645030
fild dword [esp + 0x68]
mov dword [esp + 0x30], eax
fmul qword [0x675760]
fsubr qword [esp + 0x20]
fild dword [esp + 0xf0]
fmul qword [0x66f538]
fsubp st(1)
call fcn.00645030
mov ecx, dword [0x6be5b8]
mov edx, dword [0x73a988]
push ecx
push 4
push edx
mov edx, dword [esp + 0x3c]
sub esp, 0x10
mov ecx, esp
push ebx
mov dword [ecx], eax
mov eax, dword [esp + 0x64]
mov dword [ecx + 4], edx
mov dword [ecx + 8], eax
mov dword [ecx + 0xc], edi
lea ecx, [esp + 0x40]
push ecx
push 0x732bc0
call fcn.00496600
mov edx, dword [esi + 8]
mov edi, dword [esi]
mov eax, dword [esp + 0x54]
sub edx, edi
mov dword [esp + 0x58], edx
add esp, 0x28
fild dword [esp + 0x30]
inc eax
lea ecx, [esp + 0x64]
mov dword [esp + 0x30], eax
fidiv dword [esp + 0x30]
fstp dword [esp + 0x30]
call fcn.00643d62
xor esi, esi
lea ecx, [esp + 0x4c]
mov dword [esp + 0x11c], esi
call fcn.00643d62
mov eax, dword [ebp + 0x9c]
mov ecx, dword [ebp + 0x8c]
cmp ecx, esi
mov byte [esp + 0x11c], 1
mov eax, dword [eax]
mov dword [esp + 0x14], esi
mov dword [esp + 0x10], eax
jle 0x5857c7
fld dword [esp + 0x14]
fadd dword [eax + 0x29]
mov ecx, dword [eax + 8]
mov edx, dword [0x6c7018]
inc esi
cmp ecx, edx
fstp dword [esp + 0x14]
je 0x58579e
push ecx
call fcn.00546190
add esp, 4
jmp 0x5857bb
mov ecx, dword [eax + 4]
cmp eax, dword [ecx + 8]
jne 0x5857b4
mov eax, ecx
mov dword [esp + 0x10], eax
mov ecx, dword [ecx + 4]
cmp eax, dword [ecx + 8]
je 0x5857a6
cmp dword [eax + 8], ecx
je 0x5857bf
mov eax, ecx
mov dword [esp + 0x10], eax
cmp esi, dword [ebp + 0x8c]
jl 0x58577a
mov eax, dword [ebp + 0x9c]
mov esi, dword [ebp + 0x8c]
fld dword [esp + 0x14]
mov ecx, dword [esp + 0x14]
mov eax, dword [eax]
fstp dword [esp + 0x44]
test esi, esi
mov dword [esp + 0x18], ecx
mov dword [esp + 0x54], 0
mov dword [esp + 0x10], eax
jle 0x585807
mov edi, esi
xor esi, esi
lea ecx, [esp + 0x10]
call fcn.00404e00
dec edi
jne 0x5857f9
test esi, esi
jge 0x585817
neg esi
lea ecx, [esp + 0x10]
call fcn.00546210
dec esi
jne 0x58580b
mov ecx, dword [esp + 0x2c]
mov eax, 0x66666667
imul ecx
sar edx, 3
mov eax, edx
mov dword [esp + 0x1c], 0
shr eax, 0x1f
test ecx, ecx
lea edx, [edx + eax + 1]
mov dword [esp + 0x38], edx
jle 0x5859cb
mov esi, dword [esp + 0x1c]
lea eax, [esi + 1]
mov dword [esp + 0x50], eax
fild dword [esp + 0x50]
fmul dword [esp + 0x30]
fiadd dword [ebp + 0x5c]
call fcn.00645030
mov ecx, dword [ebp + 0x8c]
mov edx, dword [ebp + 0xcc]
add ecx, esi
lea edi, [esp + 0x84]
mov dword [esp + 0x58], eax
lea ecx, [ecx + ecx*2]
mov dword [edx + ecx*8], eax
mov edx, dword [esp + 0x10]
mov ecx, 9
lea esi, [edx + 0x10]
rep movsd dword es:[edi], dword [esi]
movsb byte es:[edi], byte [esi]
fld dword [esp + 0xa1]
fadd dword [esp + 0x14]
fld dword [esp + 0xa5]
fadd dword [esp + 0x14]
fstp dword [esp + 0x28]
fld dword [esp + 0x9d]
fadd dword [esp + 0x14]
fstp dword [esp + 0x14]
fld dword [esp + 0x44]
fcomp st(1)
fnstsw ax
test ah, 0x41
je 0x5858c7
fstp dword [esp + 0x44]
jmp 0x5858c9
fstp st(0)
fld dword [esp + 0x18]
fcomp dword [esp + 0x28]
fnstsw ax
test ah, 1
jne 0x5858e0
mov eax, dword [esp + 0x28]
mov dword [esp + 0x18], eax
fild dword [esp + 0x54]
fild dword [esp + 0x95]
fmul dword [esp + 0x91]
fstp dword [esp + 0x3c]
fcom dword [esp + 0x3c]
fnstsw ax
test ah, 0x41
je 0x585907
fstp st(0)
fld dword [esp + 0x3c]
call fcn.00645030
mov edi, dword [esp + 0x1c]
mov dword [esp + 0x54], eax
mov eax, edi
cdq
idiv dword [esp + 0x38]
test edx, edx
jne 0x58597e
mov eax, dword [ebp + 0x78]
mov esi, dword [esp + 0x58]
lea ecx, [eax - 4]
push ecx
push esi
push eax
push esi
push ebx
mov ecx, 0x732bc0
call fcn.00495d40
mov edx, dword [ebp + 0x8c]
lea ecx, [esp + 0x64]
lea eax, [edx + edi + 1]
push eax
push 0x69a740
push ecx
call fcn.00643d50
mov edx, dword [esp + 0x70]
mov ecx, dword [ebp + 0x68]
mov eax, dword [0x73a988]
add esp, 0xc
add ecx, 8
add esi, 0xfffffffd
push edx
push eax
push ecx
push esi
lea edx, [esp + 0x30]
push ebx
push edx
push 0x732bc0
call fcn.00496340
add esp, 0x1c
mov ecx, dword [esp + 0x10]
mov edx, dword [0x6c7018]
mov esi, dword [esp + 0x50]
mov eax, dword [ecx + 8]
mov dword [esp + 0x1c], esi
cmp eax, edx
je 0x5859a2
push eax
call fcn.00546190
add esp, 4
jmp 0x5859bd
mov eax, dword [ecx + 4]
cmp ecx, dword [eax + 8]
jne 0x5859b8
mov ecx, eax
mov dword [esp + 0x10], ecx
mov eax, dword [eax + 4]
cmp ecx, dword [eax + 8]
je 0x5859aa
cmp dword [ecx + 8], eax
je 0x5859c1
mov dword [esp + 0x10], eax
cmp esi, dword [esp + 0x2c]
jl 0x585842
fld dword [esp + 0x44]
fadd dword [0x6703f8]
fld dword [esp + 0x18]
fsub dword [0x6703f8]
fild dword [esp + 0x54]
fmul qword [0x675748]
call fcn.00645030
mov dword [esp + 0x54], eax
call fcn.00645030
mov edi, eax
mov dword [esp + 0x20], edi
call fcn.00645030
mov ecx, eax
mov eax, 0x51eb851f
sub ecx, edi
mov esi, dword [ebp + 0x70]
imul ecx
sar edx, 4
mov eax, edx
mov dword [esp + 0x30], ecx
shr eax, 0x1f
mov dword [esp + 0x1c], 0
lea edx, [edx + eax + 1]
mov eax, dword [esp + 0xdc]
neg eax
shl eax, 1
mov dword [esp + 0x38], edx
mov edx, dword [ebp + 0x78]
sub eax, esi
add eax, edx
mov dword [esp + 0x58], eax
fild dword [esp + 0x58]
test ecx, ecx
fidiv dword [esp + 0x30]
fstp dword [esp + 0x44]
jle 0x585db5
jmp 0x585a5c
mov edi, dword [esp + 0x20]
fild dword [ebp + 0x78]
fild dword [esp + 0x1c]
fmul dword [esp + 0x44]
fsubp st(1)
call fcn.00645030
mov ecx, dword [esp + 0x1c]
mov esi, eax
mov eax, dword [ebp + 0x9c]
add edi, ecx
mov ecx, dword [ebp + 0x8c]
mov dword [esp + 0x3c], edi
mov eax, dword [eax]
xor edi, edi
test ecx, ecx
mov dword [esp + 0x10], eax
mov dword [esp + 0x14], 0
jle 0x585ae7
fld dword [esp + 0x14]
fadd dword [eax + 0x29]
mov ecx, dword [eax + 8]
mov edx, dword [0x6c7018]
inc edi
cmp ecx, edx
fstp dword [esp + 0x14]
je 0x585abe
push ecx
call fcn.00546190
add esp, 4
jmp 0x585adb
mov ecx, dword [eax + 4]
cmp eax, dword [ecx + 8]
jne 0x585ad4
mov eax, ecx
mov dword [esp + 0x10], eax
mov ecx, dword [ecx + 4]
cmp eax, dword [ecx + 8]
je 0x585ac6
cmp dword [eax + 8], ecx
je 0x585adf
mov eax, ecx
mov dword [esp + 0x10], eax
cmp edi, dword [ebp + 0x8c]
jl 0x585a9a
mov eax, dword [ebp + 0x9c]
mov edi, dword [ebp + 0x8c]
test edi, edi
mov ecx, dword [eax]
mov dword [esp + 0x10], ecx
jle 0x585b1d
mov dword [esp + 0x50], edi
xor edi, edi
lea ecx, [esp + 0x10]
call fcn.00404e00
mov eax, dword [esp + 0x50]
dec eax
mov dword [esp + 0x50], eax
jne 0x585b03
mov ecx, dword [esp + 0x10]
test edi, edi
jge 0x585b31
neg edi
lea ecx, [esp + 0x10]
call fcn.00546210
dec edi
jne 0x585b21
mov ecx, dword [esp + 0x10]
mov eax, dword [esp + 0x2c]
xor edi, edi
test eax, eax
jle 0x585cf0
fild dword [esp + 0x3c]
fstp dword [esp + 0x18]
fld dword [esp + 0x14]
fcomp dword [esp + 0x18]
fnstsw ax
test ah, 1
jne 0x585b9b
fld dword [esp + 0x14]
fld dword [esp + 0x18]
fadd qword [0x662e00]
fcompp
fnstsw ax
test ah, 0x41
jne 0x585b9b
fld dword [esp + 0x14]
fsub dword [esp + 0x18]
fmul dword [esp + 0x44]
call fcn.00645030
mov edx, esi
sub edx, eax
mov eax, dword [ebp + 0x8c]
add eax, edi
lea ecx, [eax + eax*2]
mov eax, dword [ebp + 0xcc]
mov dword [eax + ecx*8 + 8], edx
mov ecx, dword [esp + 0x10]
fld dword [esp + 0x14]
fadd dword [ecx + 0x2d]
fst dword [esp + 0x28]
fcomp dword [esp + 0x18]
fnstsw ax
test ah, 1
jne 0x585bf6
fld dword [esp + 0x28]
fld dword [esp + 0x18]
fadd qword [0x662e00]
fcompp
fnstsw ax
test ah, 0x41
jne 0x585bf6
fld dword [esp + 0x28]
fsub dword [esp + 0x18]
fmul dword [esp + 0x44]
call fcn.00645030
mov edx, esi
sub edx, eax
mov eax, dword [ebp + 0x8c]
add eax, edi
lea ecx, [eax + eax*2]
mov eax, dword [ebp + 0xcc]
mov dword [eax + ecx*8 + 4], edx
mov ecx, dword [esp + 0x10]
fld dword [esp + 0x14]
fadd dword [ecx + 0x31]
fst dword [esp + 0x28]
fcomp dword [esp + 0x18]
fnstsw ax
test ah, 1
jne 0x585c51
fld dword [esp + 0x28]
fld dword [esp + 0x18]
fadd qword [0x662e00]
fcompp
fnstsw ax
test ah, 0x41
jne 0x585c51
fld dword [esp + 0x28]
fsub dword [esp + 0x18]
fmul dword [esp + 0x44]
call fcn.00645030
mov edx, esi
sub edx, eax
mov eax, dword [ebp + 0x8c]
add eax, edi
lea ecx, [eax + eax*2]
mov eax, dword [ebp + 0xcc]
mov dword [eax + ecx*8 + 0xc], edx
mov ecx, dword [esp + 0x10]
fld dword [esp + 0x14]
fadd dword [ecx + 0x29]
fst dword [esp + 0x14]
fcomp dword [esp + 0x18]
fnstsw ax
test ah, 1
jne 0x585cac
fld dword [esp + 0x14]
fld dword [esp + 0x18]
fadd qword [0x662e00]
fcompp
fnstsw ax
test ah, 0x41
jne 0x585cac
fld dword [esp + 0x14]
fsub dword [esp + 0x18]
fmul dword [esp + 0x44]
call fcn.00645030
mov edx, esi
sub edx, eax
mov eax, dword [ebp + 0x8c]
add eax, edi
lea ecx, [eax + eax*2]
mov eax, dword [ebp + 0xcc]
mov dword [eax + ecx*8 + 0x10], edx
mov ecx, dword [esp + 0x10]
mov eax, dword [ecx + 8]
mov edx, dword [0x6c7018]
inc edi
cmp eax, edx
je 0x585cc5
push eax
call fcn.00546190
add esp, 4
jmp 0x585ce0
mov eax, dword [ecx + 4]
cmp ecx, dword [eax + 8]
jne 0x585cdb
mov ecx, eax
mov dword [esp + 0x10], ecx
mov eax, dword [eax + 4]
cmp ecx, dword [eax + 8]
je 0x585ccd
cmp dword [ecx + 8], eax
je 0x585ce6
mov ecx, eax
mov dword [esp + 0x10], ecx
cmp edi, dword [esp + 0x2c]
jl 0x585b47
mov eax, dword [esp + 0x38]
lea ecx, [eax + eax*4]
mov eax, dword [esp + 0x3c]
cdq
idiv ecx
test edx, edx
jne 0x585da0
mov ecx, dword [ebp + 0x74]
mov eax, dword [ebp + 0x6c]
sub ecx, eax
mov eax, 0x84210843
imul ecx
add edx, ecx
mov ecx, dword [0x73a988]
sar edx, 5
mov eax, edx
shr eax, 0x1f
add edx, eax
mov eax, dword [ebp + 0x6c]
push edx
mov edx, dword [ebp + 0x74]
push ecx
push esi
push edx
push esi
push eax
push ebx
mov ecx, 0x732bc0
call fcn.00495e50
mov ecx, dword [esp + 0x3c]
lea edx, [esp + 0x4c]
push ecx
push 0x69a740
push edx
call fcn.00643d50
mov eax, dword [esp + 0x58]
add esp, 0xc
lea edx, [esp + 0x58]
mov ecx, dword [eax - 8]
push edx
push ecx
push eax
mov eax, dword [ebx + 8]
push eax
call dword [fcn.0065e0bc]
mov ecx, dword [esp + 0x58]
mov edx, dword [esp + 0x4c]
push edx
mov edx, dword [ebp + 0x6c]
lea eax, [ecx + 6]
mov ecx, dword [0x73a988]
add esi, 0xfffffffc
push ecx
sub edx, eax
push esi
push edx
lea eax, [esp + 0x80]
push ebx
push eax
push 0x732bc0
call fcn.00496340
add esp, 0x1c
mov eax, dword [esp + 0x1c]
mov ecx, dword [esp + 0x30]
inc eax
cmp eax, ecx
mov dword [esp + 0x1c], eax
jl 0x585a58
mov ecx, dword [ebp + 0x88]
mov eax, dword [ebp + 0x80]
sub ecx, eax
xor esi, esi
mov dword [esp + 0x20], ecx
mov dword [esp + 0x1c], esi
fild dword [esp + 0x20]
fild dword [esp + 0xdc]
xor edi, edi
fmul qword [0x66f538]
fsubp st(1)
fmul dword [0x675740]
fstp dword [esp + 0x20]
fild dword [ebp + 0x88]
fild dword [esp + 0x1c]
fmul dword [esp + 0x20]
fsubp st(1)
call fcn.00645030
mov dword [esp + 0x58], eax
mov eax, 0x66666667
imul edi
sar edx, 1
mov eax, edx
shr eax, 0x1f
add edx, eax
mov eax, 0x68db8bad
imul edx
sar edx, 0xc
mov ecx, edx
shr ecx, 0x1f
add edx, ecx
push edx
lea edx, [esp + 0x50]
push 0x69a740
push edx
call fcn.00643d50
mov eax, dword [esp + 0x58]
add esp, 0xc
lea edx, [esp + 0x30]
mov ecx, dword [eax - 8]
push edx
push ecx
push eax
mov eax, dword [ebx + 8]
push eax
call dword [fcn.0065e0bc]
mov ecx, dword [esp + 0x30]
mov edx, dword [esp + 0x4c]
push edx
mov edx, dword [esp + 0x5c]
lea eax, [ecx + 6]
mov ecx, dword [0x73a988]
push ecx
mov ecx, dword [ebp + 0x7c]
add edx, 0xfffffffc
sub ecx, eax
push edx
push ecx
lea edx, [esp + 0x80]
push ebx
push edx
push 0x732bc0
call fcn.00496340
mov ecx, dword [esp + 0x70]
add esp, 0x1c
inc esi
add edi, ecx
cmp esi, 5
mov dword [esp + 0x1c], esi
jl 0x585dec
mov eax, dword [ebp + 0x9c]
mov esi, dword [ebp + 0x8c]
test esi, esi
mov eax, dword [eax]
mov dword [esp + 0x10], eax
jle 0x585ec8
mov edi, esi
xor esi, esi
lea ecx, [esp + 0x10]
call fcn.00404e00
dec edi
jne 0x585eb6
mov eax, dword [esp + 0x10]
test esi, esi
jge 0x585f1d
mov edx, dword [0x6c7018]
neg esi
mov ecx, dword [eax + 0x38]
test ecx, ecx
jne 0x585ee6
mov ecx, dword [eax + 4]
cmp dword [ecx + 4], eax
jne 0x585ee6
mov eax, dword [eax + 8]
jmp 0x585f16
mov ecx, dword [eax]
cmp ecx, edx
je 0x585f00
mov eax, ecx
mov ecx, dword [eax + 8]
cmp ecx, edx
je 0x585f16
mov eax, ecx
mov ecx, dword [eax + 8]
cmp ecx, edx
jne 0x585ef5
jmp 0x585f16
mov ecx, dword [eax + 4]
cmp eax, dword [ecx]
jne 0x585f14
mov eax, ecx
mov dword [esp + 0x10], eax
mov ecx, dword [ecx + 4]
cmp eax, dword [ecx]
je 0x585f07
mov eax, ecx
dec esi
mov dword [esp + 0x10], eax
jne 0x585ed2
mov edx, dword [ebp + 0x88]
mov esi, dword [ebp + 0x80]
sub edx, esi
mov ecx, dword [esp + 0x2c]
mov dword [esp + 0x20], edx
xor edi, edi
fild dword [esp + 0x20]
fild dword [esp + 0xdc]
test ecx, ecx
fmul qword [0x66f538]
fsubp st(1)
fidiv dword [esp + 0x54]
fstp dword [esp + 0x58]
jle 0x585fe0
fild dword [eax + 0x21]
fmul dword [eax + 0x1d]
call fcn.00645030
fild dword [ebp + 0x88]
mov dword [esp + 0x20], eax
mov esi, dword [ebp + 0xcc]
fild dword [esp + 0x20]
fmul dword [esp + 0x58]
fsubp st(1)
call fcn.00645030
mov ecx, dword [ebp + 0x8c]
add ecx, edi
inc edi
lea ecx, [ecx + ecx*2]
mov dword [esi + ecx*8 + 0x14], eax
mov eax, dword [esp + 0x10]
mov edx, dword [0x6c7018]
mov ecx, dword [eax + 8]
cmp ecx, edx
je 0x585fb5
mov eax, ecx
mov ecx, dword [eax]
cmp ecx, edx
je 0x585fd2
mov eax, ecx
mov ecx, dword [eax]
cmp ecx, edx
jne 0x585fab
jmp 0x585fd2
mov ecx, dword [eax + 4]
cmp eax, dword [ecx + 8]
jne 0x585fcb
mov eax, ecx
mov dword [esp + 0x10], eax
mov ecx, dword [ecx + 4]
cmp eax, dword [ecx + 8]
je 0x585fbd
cmp dword [eax + 8], ecx
je 0x585fd6
mov eax, ecx
mov dword [esp + 0x10], eax
cmp edi, dword [esp + 0x2c]
jl 0x585f58
push 0xe
push ebx
mov ecx, 0x732bc0
call fcn.00495c80
mov edi, dword [esp + 0x2c]
xor esi, esi
test edi, edi
jle 0x586024
mov eax, 0x3c
mov ecx, ebp
cdq
idiv dword [ebp + 0x44]
inc eax
push eax
push esi
push ebx
call fcn.00586410
mov eax, 0x3c
mov ecx, ebp
cdq
idiv dword [ebp + 0x44]
inc eax
push eax
push esi
push ebx
call fcn.00586520
inc esi
cmp esi, edi
jl 0x585ff7
push ebx
mov ecx, ebp
call fcn.00586580
push ebx
mov ecx, ebp
call fcn.00586750
push 0x6be670
lea ecx, [esp + 0x70]
call fcn.00643d2c
lea ecx, [esp + 0x60]
mov byte [esp + 0x11c], 2
call fcn.00643d62
mov eax, dword [esp + 0x6c]
lea edx, [esp + 0x20]
push edx
mov byte [esp + 0x120], 3
mov ecx, dword [eax - 8]
push ecx
push eax
mov eax, dword [ebx + 8]
push eax
call dword [fcn.0065e0bc]
fild dword [esp + 0x20]
mov esi, dword [ebp + 0x68]
mov ecx, dword [esp + 0xdc]
fld st(0)
fmul qword [0x668918]
lea edx, [esi + ecx*2 + 0x10]
mov dword [esp + 0x50], edx
fstp qword [esp + 0x44]
fild dword [ebp + 0x5c]
fst qword [esp + 0x3c]
fadd qword [esp + 0x44]
call fcn.00645030
add esi, 0x10
mov dword [esp + 0x58], eax
mov dword [esp + 0x20], esi
fild dword [esp + 0x20]
fild dword [esp + 0xdc]
fmul qword [0x65f9a0]
faddp st(1)
call fcn.00645030
fmul qword [0x668920]
fld qword [esp + 0x3c]
mov dword [esp + 0x30], eax
fsub st(1)
call fcn.00645030
fild dword [ebp + 0x64]
mov dword [esp + 0x20], eax
fst qword [esp + 0x3c]
fadd st(1)
call fcn.00645030
fstp st(0)
fld qword [esp + 0x3c]
fsub qword [esp + 0x44]
mov dword [esp + 0x38], eax
call fcn.00645030
mov edx, dword [0x6c7018]
mov dword [esp + 0x3c], eax
mov eax, dword [ebp + 0x9c]
mov ebp, dword [ebp + 0x8c]
test ebp, ebp
mov eax, dword [eax]
mov dword [esp + 0x10], eax
jle 0x586163
mov esi, ebp
xor ebp, ebp
mov ecx, dword [eax + 8]
cmp ecx, edx
je 0x58613f
mov eax, ecx
mov ecx, dword [eax]
cmp ecx, edx
je 0x58615c
mov eax, ecx
mov ecx, dword [eax]
cmp ecx, edx
jne 0x586135
jmp 0x58615c
mov ecx, dword [eax + 4]
cmp eax, dword [ecx + 8]
jne 0x586155
mov eax, ecx
mov dword [esp + 0x10], eax
mov ecx, dword [ecx + 4]
cmp eax, dword [ecx + 8]
je 0x586147
cmp dword [eax + 8], ecx
je 0x586160
mov eax, ecx
mov dword [esp + 0x10], eax
dec esi
jne 0x586126
test ebp, ebp
jge 0x5861b4
neg ebp
mov ecx, dword [eax + 0x38]
test ecx, ecx
jne 0x58617d
mov ecx, dword [eax + 4]
cmp dword [ecx + 4], eax
jne 0x58617d
mov eax, dword [eax + 8]
jmp 0x5861ad
mov ecx, dword [eax]
cmp ecx, edx
je 0x586197
mov eax, ecx
mov ecx, dword [eax + 8]
cmp ecx, edx
je 0x5861ad
mov eax, ecx
mov ecx, dword [eax + 8]
cmp ecx, edx
jne 0x58618c
jmp 0x5861ad
mov ecx, dword [eax + 4]
cmp eax, dword [ecx]
jne 0x5861ab
mov eax, ecx
mov dword [esp + 0x10], eax
mov ecx, dword [ecx + 4]
cmp eax, dword [ecx]
je 0x58619e
mov eax, ecx
dec ebp
mov dword [esp + 0x10], eax
jne 0x586169
lea esi, [eax + 0x10]
mov ecx, 9
lea edi, [esp + 0x84]
rep movsd dword es:[edi], dword [esi]
movsb byte es:[edi], byte [esi]
mov edx, dword [esp + 0x8b]
mov eax, dword [esp + 0x8a]
mov ecx, dword [esp + 0x88]
and edx, 0xff
and eax, 0xff
push edx
and ecx, 0xffff
push eax
push ecx
lea edx, [esp + 0x6c]
push 0x6ba9a8
push edx
call fcn.00643d50
mov eax, dword [esp + 0x74]
mov ecx, dword [0x73a964]
add esp, 0x14
mov ebp, dword [esp + 0x50]
push eax
mov eax, dword [esp + 0x24]
push 0xa
push ecx
mov ecx, dword [esp + 0x3c]
sub esp, 0x10
mov edx, esp
push ebx
mov dword [edx], eax
mov eax, dword [esp + 0x78]
mov dword [edx + 4], ecx
lea ecx, [esp + 0x90]
push ecx
push 0x732bc0
mov dword [edx + 8], eax
mov dword [edx + 0xc], ebp
call fcn.00496600
mov edx, dword [esp + 0x54]
add esp, 0x28
lea esi, [edx - 1]
mov edx, dword [0x6c7018]
test esi, esi
jle 0x58629d
mov eax, dword [esp + 0x10]
mov edi, esi
xor esi, esi
mov ecx, dword [eax + 8]
cmp ecx, edx
je 0x586277
mov eax, ecx
mov ecx, dword [eax]
cmp ecx, edx
je 0x586294
mov eax, ecx
mov ecx, dword [eax]
cmp ecx, edx
jne 0x58626d
jmp 0x586294
mov ecx, dword [eax + 4]
cmp eax, dword [ecx + 8]
jne 0x58628d
mov eax, ecx
mov dword [esp + 0x10], eax
mov ecx, dword [ecx + 4]
cmp eax, dword [ecx + 8]
je 0x58627f
cmp dword [eax + 8], ecx
je 0x586298
mov eax, ecx
mov dword [esp + 0x10], eax
dec edi
jne 0x58625e
jmp 0x5862a1
mov eax, dword [esp + 0x10]
test esi, esi
jge 0x5862f2
neg esi
mov ecx, dword [eax + 0x38]
test ecx, ecx
jne 0x5862bb
mov ecx, dword [eax + 4]
cmp dword [ecx + 4], eax
jne 0x5862bb
mov eax, dword [eax + 8]
jmp 0x5862eb
mov ecx, dword [eax]
cmp ecx, edx
je 0x5862d5
mov eax, ecx
mov ecx, dword [eax + 8]
cmp ecx, edx
je 0x5862eb
mov eax, ecx
mov ecx, dword [eax + 8]
cmp ecx, edx
jne 0x5862ca
jmp 0x5862eb
mov ecx, dword [eax + 4]
cmp eax, dword [ecx]
jne 0x5862e9
mov eax, ecx
mov dword [esp + 0x10], eax
mov ecx, dword [ecx + 4]
cmp eax, dword [ecx]
je 0x5862dc
mov eax, ecx
dec esi
mov dword [esp + 0x10], eax
jne 0x5862a7
lea esi, [eax + 0x10]
mov ecx, 9
lea edi, [esp + 0x84]
rep movsd dword es:[edi], dword [esi]
movsb byte es:[edi], byte [esi]
mov edx, dword [esp + 0x8b]
mov eax, dword [esp + 0x8a]
mov ecx, dword [esp + 0x88]
and edx, 0xff
and eax, 0xff
push edx
and ecx, 0xffff
push eax
push ecx
lea edx, [esp + 0x6c]
push 0x6ba9a8
push edx
call fcn.00643d50
mov eax, dword [esp + 0x74]
mov ecx, dword [0x73a964]
add esp, 0x14
push eax
mov eax, dword [esp + 0x40]
push 8
push ecx
mov ecx, dword [esp + 0x3c]
sub esp, 0x10
mov edx, esp
push ebx
mov dword [edx], eax
mov eax, dword [esp + 0x58]
mov dword [edx + 4], ecx
lea ecx, [esp + 0x90]
push ecx
push 0x732bc0
mov dword [edx + 8], eax
mov dword [edx + 0xc], ebp
call fcn.00496600
mov edx, dword [esp + 0xa8]
add esp, 0x28
mov ecx, 0x732bc0
push edx
push ebx
call fcn.00495ca0
mov eax, dword [esp + 0x78]
mov ecx, 0x732bc0
push eax
push ebx
call fcn.00495d20
lea ecx, [esp + 0x60]
mov byte [esp + 0x11c], 2
call fcn.00643d26
lea ecx, [esp + 0x6c]
mov byte [esp + 0x11c], 1
call fcn.00643d26
lea ecx, [esp + 0x4c]
mov byte [esp + 0x11c], 0
call fcn.00643d26
lea ecx, [esp + 0x64]
mov dword [esp + 0x11c], 0xffffffff
call fcn.00643d26
mov ecx, dword [esp + 0x114]
pop edi
pop esi
pop ebp
mov dword fs:[0], ecx
pop ebx
add esp, 0x110
ret 4