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

Disassembly:
push edi
push esi
push ebp
push ebx
sub esp, 0xcc
mov eax, dword [esp + 0x100]
mov edx, dword [esp + 0x120]
mov ecx, dword [esp + 0xe4]
mov dword [esp + 0x9c], eax
mov dword [esp + 0x98], edx
cmp ecx, 8
jl 0x860d6e
mov eax, dword [esp + 0xe8]
cmp eax, 4
jge 0x860d9d
mov eax, 2
cmp edx, 4
cmove edx, eax
mov dword [esp + 0x98], edx
cmp ecx, 4
jl 0x860d91
mov eax, dword [esp + 0xe8]
cmp eax, 2
jge 0x860d9d
mov eax, 1
mov dword [esp + 0x98], eax
mov eax, dword [esp + 0x10c]
push eax
call fcn.0086b17c
mov dword [esp + 0x94], eax
test eax, eax
jne 0x860e16
xor esi, esi
mov dword [esp + 0xa4], esi
xor eax, eax
mov dword [esp + 0xb0], eax
mov dword [esp + 0xa8], eax
mov dword [esp + 0xc8], eax
xor ebx, ebx
mov dword [esp + 0xbc], ebx
xor ebp, ebp
xor edi, edi
mov dword [esp + 0xc4], ebp
mov dword [esp + 0xb8], edi
mov dword [esp + 0xc0], eax
mov dword [esp + 0x90], eax
mov dword [esp + 0x8c], eax
mov dword [esp + 0x84], eax
mov eax, 0xfffffff7
jmp 0x861d70
mov eax, dword [esp + 0x108]
lea ebx, [eax + eax]
push ebx
call fcn.0086b17c
mov dword [esp + 0xb4], eax
test eax, eax
jne 0x860e99
xor esi, esi
mov dword [esp + 0xa0], esi
xor eax, eax
mov dword [esp + 0xa4], eax
mov dword [esp + 0xb0], eax
mov dword [esp + 0xa8], eax
xor ebx, ebx
mov dword [esp + 0xc8], ebx
xor ebp, ebp
xor edi, edi
mov dword [esp + 0xbc], ebp
mov dword [esp + 0xc4], edi
mov dword [esp + 0xb8], eax
mov dword [esp + 0xc0], eax
mov dword [esp + 0x90], eax
mov dword [esp + 0x8c], eax
mov dword [esp + 0x84], eax
mov eax, 0xfffffff7
jmp 0x861d29
mov eax, dword [esp + 0x108]
push eax
call fcn.0086b17c
mov dword [esp + 0xa0], eax
test eax, eax
je 0x8623e1
mov eax, dword [esp + 0x98]
cmp eax, 1
je 0x862209
mov edx, dword [esp + 0xf8]
cvtsi2sd xmm2, edx
mulsd xmm2, qword [esp + 0x110]
movsd xmm0, qword [0x8a00c8]
comisd xmm2, xmm0
pxor xmm1, xmm1
movsd qword [esp + 0x8c], xmm1
jbe 0x860f0b
lea eax, [edx - 1]
cvtsi2sd xmm1, eax
subsd xmm2, xmm0
divsd xmm1, xmm2
movsd qword [esp + 0x60], xmm1
jmp 0x860f1a
movsd xmm1, qword [esp + 0x8c]
movsd qword [esp + 0x60], xmm1
mov eax, dword [esp + 0xfc]
cvtsi2sd xmm2, eax
movsd xmm1, qword [esp + 0x118]
mulsd xmm2, xmm1
comisd xmm2, xmm0
jbe 0x860f4f
lea eax, [eax - 1]
cvtsi2sd xmm1, eax
subsd xmm2, xmm0
divsd xmm1, xmm2
movsd qword [esp + 0x70], xmm1
jmp 0x860f5e
movsd xmm1, qword [esp + 0x8c]
movsd qword [esp + 0x70], xmm1
movsd xmm1, qword [esp + 0x110]
sar edx, 1
cvtsi2sd xmm2, edx
mulsd xmm2, xmm1
comisd xmm2, xmm0
jbe 0x860f8e
add edx, 0xffffffff
cvtsi2sd xmm1, edx
subsd xmm2, xmm0
divsd xmm1, xmm2
movsd qword [esp + 0x68], xmm1
jmp 0x860f9d
movsd xmm0, qword [esp + 0x8c]
movsd qword [esp + 0x68], xmm0
movsd xmm0, qword [esp + 0x8c]
mov eax, dword [esp + 0x98]
movsd qword [esp + 0x78], xmm0
movsd qword [esp + 0x80], xmm0
cmp eax, 2
jne 0x8612ea
mov eax, dword [esp + 0x10c]
push eax
call 0x72de9c
mov dword [esp + 0xa4], eax
test eax, eax
jne 0x861037
xor esi, esi
mov dword [esp + 0xb0], esi
xor eax, eax
mov dword [esp + 0xa8], eax
mov dword [esp + 0xc8], eax
mov dword [esp + 0xbc], eax
xor ebx, ebx
mov dword [esp + 0xc4], ebx
xor ebp, ebp
xor edi, edi
mov dword [esp + 0xb8], ebp
mov dword [esp + 0xc0], edi
mov dword [esp + 0x90], eax
mov dword [esp + 0x8c], eax
mov dword [esp + 0x84], eax
mov eax, 0xfffffff7
jmp 0x861d29
mov eax, dword [esp + 0x108]
shl eax, 2
push eax
call 0x72de9c
mov dword [esp + 0xb0], eax
test eax, eax
jne 0x8610a5
xor esi, esi
mov dword [esp + 0xa8], esi
xor eax, eax
mov dword [esp + 0xc8], eax
mov dword [esp + 0xbc], eax
mov dword [esp + 0xc4], eax
xor ebx, ebx
mov dword [esp + 0xb8], ebx
xor ebp, ebp
xor edi, edi
mov dword [esp + 0xc0], ebp
mov dword [esp + 0x90], edi
mov dword [esp + 0x8c], eax
mov dword [esp + 0x84], eax
mov eax, 0xfffffff7
jmp 0x861d29
push ebx
call 0x72de9c
mov dword [esp + 0xa8], eax
test eax, eax
je 0x861ef2
mov eax, dword [esp + 0x10c]
test eax, eax
jle 0x861168
movsd xmm0, qword [0x8a00b8]
mov esi, dword [esp + 0xe8]
sub esi, dword [esp + 0xf4]
movsd xmm4, qword [esp + 0x80]
movsd xmm3, qword [esp + 0x70]
mov eax, dword [esp + 0xa4]
mov ecx, dword [esp + 0x94]
xor ebp, ebp
add esi, 0xffffffff
mov dword [esp + 0x88], ebx
mov ebx, dword [esp + 0x10c]
movaps xmm1, xmm0
addsd xmm1, xmm4
cvttsd2si edx, xmm1
cmp edx, esi
jne 0x86112c
add edx, 0xffffffff
mov edi, 0x4000
mov word [eax + ebp*2], di
jmp 0x86114b
cvtsi2sd xmm1, edx
movaps xmm2, xmm4
subsd xmm2, xmm1
mulsd xmm2, qword [0x8a00c0]
addsd xmm2, xmm0
cvttsd2si edi, xmm2
mov word [eax + ebp*2], di
imul edx, dword [esp + 0xec]
mov dword [ecx + ebp*4], edx
add ebp, 1
addsd xmm4, xmm3
cmp ebp, ebx
jl 0x86110f
mov ebx, dword [esp + 0x88]
test ebx, ebx
jle 0x861220
movsd xmm0, qword [0x8a00b8]
mov eax, dword [esp + 0xe4]
sub eax, dword [esp + 0xf0]
xor edx, edx
movsd xmm4, qword [esp + 0x78]
movsd xmm3, qword [esp + 0x60]
mov ecx, dword [esp + 0xb0]
mov esi, dword [esp + 0xb4]
add eax, 0xffffffff
mov dword [esp + 0x80], eax
movaps xmm1, xmm0
mov eax, dword [esp + 0x80]
addsd xmm1, xmm4
cvttsd2si ebp, xmm1
cmp ebp, eax
jne 0x8611dc
add ebp, 0xffffffff
mov eax, edx
shl eax, 2
xor edi, edi
mov word [ecx + eax], di
mov edi, 0x4000
mov word [ecx + edx*4 + 2], di
jmp 0x861210
cvtsi2sd xmm1, ebp
movaps xmm2, xmm4
subsd xmm2, xmm1
mulsd xmm2, qword [0x8a00c0]
addsd xmm2, xmm0
cvttsd2si eax, xmm2
movzx edi, ax
mov eax, edx
shl eax, 2
mov word [ecx + edx*4 + 2], di
neg edi
add edi, 0x4000
mov word [ecx + eax], di
add ebp, ebp
mov dword [eax + esi], ebp
add edx, 1
addsd xmm4, xmm3
cmp edx, ebx
jl 0x8611ac
mov eax, dword [esp + 0x108]
test eax, eax
jle 0x86164a
movsd xmm0, qword [0x8a00b8]
mov ebp, dword [esp + 0xe4]
sub ebp, dword [esp + 0xf0]
movsd xmm3, qword [esp + 0x68]
movsd xmm4, qword [esp + 0x8c]
mov edx, dword [esp + 0xa8]
mov dword [esp + 0x88], ebx
xor esi, esi
mov ebx, dword [esp + 0xa0]
sar ebp, 1
add ebp, 0xffffffff
movaps xmm1, xmm0
addsd xmm1, xmm4
cvttsd2si ecx, xmm1
cmp ecx, ebp
jne 0x861299
add ecx, 0xffffffff
mov eax, esi
shl eax, 2
xor edi, edi
mov word [edx + eax], di
mov edi, 0x4000
mov word [edx + esi*4 + 2], di
jmp 0x8612cd
cvtsi2sd xmm1, ecx
movaps xmm2, xmm4
subsd xmm2, xmm1
mulsd xmm2, qword [0x8a00c0]
addsd xmm2, xmm0
cvttsd2si eax, xmm2
movzx edi, ax
mov eax, esi
shl eax, 2
mov word [edx + esi*4 + 2], di
neg edi
add edi, 0x4000
mov word [edx + eax], di
shl ecx, 2
mov dword [eax + ebx], ecx
mov eax, dword [esp + 0x108]
add esi, 1
addsd xmm4, xmm3
cmp esi, eax
jl 0x861270
jmp 0x861643
mov eax, dword [esp + 0x10c]
push eax
call fcn.0086b17c
mov dword [esp + 0xa4], eax
test eax, eax
jne 0x86135c
xor esi, esi
mov dword [esp + 0xb0], esi
xor eax, eax
mov dword [esp + 0xa8], eax
mov dword [esp + 0xc8], eax
mov dword [esp + 0xbc], eax
xor ebx, ebx
mov dword [esp + 0xc4], ebx
xor ebp, ebp
xor edi, edi
mov dword [esp + 0xb8], ebp
mov dword [esp + 0xc0], edi
mov dword [esp + 0x90], eax
mov dword [esp + 0x8c], eax
mov dword [esp + 0x84], eax
mov eax, 0xfffffff7
jmp 0x861d29
push ebx
call fcn.0086b17c
mov dword [esp + 0xb0], eax
test eax, eax
jne 0x8613c0
xor esi, esi
mov dword [esp + 0xa8], esi
xor eax, eax
mov dword [esp + 0xc8], eax
mov dword [esp + 0xbc], eax
mov dword [esp + 0xc4], eax
xor ebx, ebx
mov dword [esp + 0xb8], ebx
xor ebp, ebp
xor edi, edi
mov dword [esp + 0xc0], ebp
mov dword [esp + 0x90], edi
mov dword [esp + 0x8c], eax
mov dword [esp + 0x84], eax
mov eax, 0xfffffff7
jmp 0x861d29
mov eax, dword [esp + 0x108]
push eax
call fcn.0086b17c
mov dword [esp + 0xa8], eax
test eax, eax
je 0x861ef2
mov eax, dword [esp + 0x10c]
test eax, eax
jle 0x8614bc
mov edx, dword [esp + 0xe8]
mov eax, dword [esp + 0xf4]
movsd xmm4, qword [esp + 0x80]
movsd xmm3, qword [esp + 0x70]
mov dword [esp + 0x88], ebx
mov ebx, dword [esp + 0x94]
xor ebp, ebp
mov ecx, edx
sub ecx, eax
add ecx, 0xffffffff
mov dword [esp + 0xac], ecx
mov ecx, dword [esp + 0xa4]
movsd xmm0, qword [0x8a00b8]
mov eax, dword [esp + 0xac]
addsd xmm0, xmm4
cvttsd2si edx, xmm0
cmp edx, eax
jne 0x861459
add edx, 0xfffffffe
mov eax, ebp
shl eax, 2
mov dword [ecx + eax], 0x40000000
jmp 0x861494
mov eax, dword [esp + 0xf4]
add eax, edx
jne 0x861469
add edx, 1
jmp 0x86147b
mov esi, dword [esp + 0xe8]
lea edi, [esi - 2]
lea esi, [edx - 1]
cmp eax, edi
cmove edx, esi
cvtsi2sd xmm0, edx
movaps xmm1, xmm4
mov eax, ebp
shl eax, 2
subsd xmm1, xmm0
cvtsd2ss xmm2, xmm1
movss dword [ecx + eax], xmm2
imul edx, dword [esp + 0xec]
mov dword [ebx + eax], edx
mov eax, dword [esp + 0x10c]
add ebp, 1
addsd xmm4, xmm3
cmp ebp, eax
jl 0x86142d
mov ebx, dword [esp + 0x88]
test ebx, ebx
jle 0x861578
mov ecx, dword [esp + 0xf0]
mov edx, dword [esp + 0xe4]
movsd xmm4, qword [esp + 0x78]
movsd xmm3, qword [esp + 0x60]
xor eax, eax
sub edx, ecx
mov ecx, dword [esp + 0xb0]
mov dword [esp + 0x80], edx
lea ebp, [edx - 1]
mov dword [esp + 0xac], ebp
mov ebp, dword [esp + 0xb4]
movsd xmm0, qword [0x8a00b8]
mov esi, dword [esp + 0xac]
addsd xmm0, xmm4
cvttsd2si edx, xmm0
cmp edx, esi
jne 0x86152d
add edx, 0xfffffffe
mov esi, eax
shl esi, 2
mov dword [ecx + esi], 0x40000000
jmp 0x861568
mov esi, dword [esp + 0xf0]
add esi, edx
jne 0x86153d
add edx, 1
jmp 0x86154f
mov esi, dword [esp + 0x80]
lea edi, [esi - 2]
lea esi, [edx - 1]
cmp edx, edi
cmove edx, esi
cvtsi2sd xmm0, edx
movaps xmm1, xmm4
mov esi, eax
shl esi, 2
subsd xmm1, xmm0
cvtsd2ss xmm2, xmm1
movss dword [ecx + esi], xmm2
add edx, edx
mov dword [esi + ebp], edx
add eax, 1
addsd xmm4, xmm3
cmp eax, ebx
jl 0x861501
mov eax, dword [esp + 0x108]
test eax, eax
jle 0x86164a
mov edx, dword [esp + 0xf0]
mov eax, dword [esp + 0xe4]
movsd xmm3, qword [esp + 0x68]
movsd xmm4, qword [esp + 0x8c]
mov ecx, dword [esp + 0xa0]
mov dword [esp + 0x88], ebx
xor esi, esi
sub eax, edx
sar eax, 1
mov edx, dword [esp + 0xa8]
mov dword [esp + 0xac], eax
lea ebp, [eax - 1]
movsd xmm0, qword [0x8a00b8]
addsd xmm0, xmm4
cvttsd2si eax, xmm0
cmp eax, ebp
jne 0x8615ee
add eax, 0xfffffffe
mov ebx, esi
shl ebx, 2
mov dword [edx + ebx], 0x40000000
jmp 0x86162b
mov ebx, dword [esp + 0xf0]
sar ebx, 1
add ebx, eax
jne 0x861600
add eax, 1
jmp 0x861612
mov ebx, dword [esp + 0xac]
lea edi, [ebx - 2]
lea ebx, [eax - 1]
cmp eax, edi
cmove eax, ebx
cvtsi2sd xmm0, eax
movaps xmm1, xmm4
mov ebx, esi
shl ebx, 2
subsd xmm1, xmm0
cvtsd2ss xmm2, xmm1
movss dword [edx + ebx], xmm2
shl eax, 2
mov dword [ebx + ecx], eax
mov eax, dword [esp + 0x108]
add esi, 1
addsd xmm4, xmm3
cmp esi, eax
jl 0x8615c9
mov ebx, dword [esp + 0x88]
mov eax, dword [esp + 0x98]
cmp eax, 2
jl 0x86187f
cmp eax, 2
je 0x861f6a
push ebx
call fcn.0086b17c
mov dword [esp + 0xc8], eax
test eax, eax
jne 0x8616b9
xor esi, esi
mov dword [esp + 0xbc], esi
xor eax, eax
mov dword [esp + 0xc4], eax
mov dword [esp + 0xb8], eax
mov dword [esp + 0xc0], eax
xor ebx, ebx
mov dword [esp + 0x90], ebx
xor ebp, ebp
mov dword [esp + 0x8c], ebp
xor edi, edi
mov dword [esp + 0x84], edi
mov eax, 0xfffffff7
jmp 0x861d1e
mov eax, dword [esp + 0x108]
push eax
call fcn.0086b17c
mov dword [esp + 0xc4], eax
mov eax, dword [esp + 0x108]
push eax
call fcn.0086b17c
mov dword [esp + 0xc0], eax
test eax, eax
jne 0x86171c
xor esi, esi
mov dword [esp + 0xbc], esi
xor eax, eax
mov dword [esp + 0xb8], eax
mov dword [esp + 0x90], eax
mov dword [esp + 0x8c], eax
xor ebx, ebx
mov dword [esp + 0x84], ebx
xor ebp, ebp
xor edi, edi
mov eax, 0xfffffff7
jmp 0x861d1e
push ebx
call fcn.0086b17c
mov dword [esp + 0xbc], eax
test eax, eax
jne 0x86175d
xor esi, esi
mov dword [esp + 0xb8], esi
xor eax, eax
mov dword [esp + 0x90], eax
mov dword [esp + 0x8c], eax
xor ebp, ebp
mov dword [esp + 0x84], eax
xor edi, edi
xor ebx, ebx
mov eax, 0xfffffff7
jmp 0x861d1e
mov eax, dword [esp + 0x108]
push eax
call fcn.0086b17c
mov dword [esp + 0xb8], eax
mov eax, dword [esp + 0x108]
push eax
call fcn.0086b17c
mov dword [esp + 0x90], eax
test eax, eax
je 0x861f48
mov eax, dword [esp + 0x98]
cmp eax, 4
jge 0x8617b4
xor esi, esi
mov dword [esp + 0x8c], esi
xor ebp, ebp
mov dword [esp + 0x84], esi
xor edi, edi
xor ebx, ebx
jmp 0x8618bf
push ebx
call fcn.0086b17c
mov dword [esp + 0x8c], eax
test eax, eax
jne 0x8617e0
xor esi, esi
xor eax, eax
mov dword [esp + 0x84], eax
xor ebp, ebp
xor edi, edi
xor ebx, ebx
mov eax, 0xfffffff7
jmp 0x861d1e
mov eax, dword [esp + 0x108]
push eax
call fcn.0086b17c
mov dword [esp + 0x84], eax
test eax, eax
jne 0x86180a
xor esi, esi
xor ebp, ebp
xor edi, edi
xor ebx, ebx
mov eax, 0xfffffff7
jmp 0x861d1e
mov eax, dword [esp + 0x108]
push eax
call fcn.0086b17c
mov edi, eax
test edi, edi
jne 0x86182d
xor esi, esi
xor ebp, ebp
xor ebx, ebx
mov eax, 0xfffffff7
jmp 0x861d1e
push ebx
call fcn.0086b17c
mov esi, eax
test esi, esi
jne 0x861847
xor ebp, ebp
xor ebx, ebx
mov eax, 0xfffffff7
jmp 0x861d1e
mov eax, dword [esp + 0x108]
push eax
call fcn.0086b17c
mov ebp, eax
test ebp, ebp
jne 0x861866
xor ebx, ebx
mov eax, 0xfffffff7
jmp 0x861d1e
mov eax, dword [esp + 0x108]
push eax
call fcn.0086b17c
mov ebx, eax
test ebx, ebx
je 0x861f3e
jmp 0x8618bf
xor esi, esi
mov dword [esp + 0xc8], esi
mov dword [esp + 0xbc], esi
mov dword [esp + 0xc4], esi
mov dword [esp + 0xb8], esi
xor ebx, ebx
mov dword [esp + 0xc0], ebx
xor ebp, ebp
xor edi, edi
mov dword [esp + 0x90], ebp
mov dword [esp + 0x8c], edi
mov dword [esp + 0x84], esi
mov eax, dword [esp + 0x98]
cmp eax, 1
je 0x861c30
cmp eax, 2
jne 0x861b3b
mov ecx, dword [esp + 0xbc]
mov edx, dword [esp + 0xb8]
mov eax, dword [esp + 0x90]
mov dword [esp + 0x78], esi
mov esi, dword [esp + 0xc0]
mov dword [esp + 0x80], ebp
mov ebp, dword [esp + 0xc4]
mov dword [esp + 0xac], ebx
mov ebx, dword [esp + 0xc8]
mov dword [esp + 0x70], ebx
mov ebx, dword [esp + 0x94]
mov dword [esp + 0x6c], ecx
mov dword [esp + 0x68], ebp
mov dword [esp + 0x64], edx
mov dword [esp + 0x60], esi
mov esi, dword [ebx]
mov ebx, dword [esp + 0xec]
mov dword [esp + 0x88], eax
lea ebp, [esi - 1]
add esi, 1
cmp ebx, 0
cmovg esi, ebp
mov dword [esp + 0x74], esi
push eax
push edx
push ecx
mov eax, dword [esp + 0xb4]
push eax
mov eax, dword [esp + 0xc0]
push eax
mov eax, dword [esp + 0xb4]
push eax
mov eax, dword [esp + 0xcc]
push eax
mov eax, dword [esp + 0x124]
push eax
mov eax, dword [esp + 0x100]
push eax
mov ebx, dword [esp + 0xd0]
mov ebp, dword [esp + 0xa4]
mov esi, dword [esp + 0x9c]
call fcn.0086a5a0
add esp, 0x24
mov eax, dword [esp + 0x10c]
test eax, eax
jle 0x861c29
mov dword [esp + 0xac], ebx
mov dword [esp + 0x80], ebp
mov dword [esp + 0x78], esi
mov dword [esp + 0x7c], edi
xor eax, eax
mov ebp, eax
mov ebx, dword [esp + 0x94]
mov edx, dword [esp + 0xec]
mov ebx, dword [ebx + ebp*4]
test edx, edx
jle 0x86211e
mov edx, dword [esp + 0x74]
cmp ebx, edx
jle 0x861ac7
mov esi, dword [esp + 0x70]
mov edi, dword [esp + 0x6c]
mov ecx, dword [esp + 0x68]
mov edx, dword [esp + 0x64]
mov eax, dword [esp + 0xe0]
mov dword [esp + 0x70], edi
mov edi, dword [esp + 0x88]
mov dword [esp + 0x68], edx
mov edx, dword [esp + 0x60]
mov dword [esp + 0x6c], esi
mov dword [esp + 0x64], ecx
mov dword [esp + 0x60], edi
mov edi, dword [esp + 0xec]
mov dword [esp + 0x88], edx
lea eax, [edi + eax]
add eax, ebx
push edx
push ecx
push esi
mov edx, dword [esp + 0xb4]
push edx
mov edx, dword [esp + 0xc0]
push edx
mov edx, dword [esp + 0xb4]
push edx
mov edx, dword [esp + 0xcc]
push edx
mov edx, dword [esp + 0x124]
push edx
push eax
call fcn.0086a5a0
add esp, 0x24
mov edx, dword [esp + 0x74]
add edx, dword [esp + 0xec]
cmp ebx, edx
jle 0x861ac3
mov edx, dword [esp + 0xe0]
mov ecx, dword [esp + 0x60]
push ecx
lea eax, [edx + ebx]
mov esi, dword [esp + 0x6c]
push esi
mov edi, dword [esp + 0x78]
push edi
mov edx, dword [esp + 0xb4]
push edx
mov edx, dword [esp + 0xc0]
push edx
mov edx, dword [esp + 0xb4]
push edx
mov edx, dword [esp + 0xcc]
push edx
mov edx, dword [esp + 0x124]
push edx
push eax
call fcn.0086a5a0
add esp, 0x24
mov dword [esp + 0x74], ebx
mov edx, dword [esp + 0xa4]
mov ecx, dword [esp + 0x88]
push ecx
movzx eax, word [edx + ebp*2]
mov ebx, dword [esp + 0x64]
push ebx
mov esi, dword [esp + 0x6c]
push esi
mov edi, dword [esp + 0x74]
push edi
mov edx, dword [esp + 0x7c]
push edx
mov edx, dword [esp + 0x84]
push edx
push eax
mov edx, dword [esp + 0x124]
push edx
mov edx, dword [esp + 0xbc]
push edx
call fcn.0086a800
add esp, 0x24
mov edx, dword [esp + 0x9c]
add edx, dword [esp + 0x104]
mov ecx, dword [esp + 0x10c]
mov dword [esp + 0x9c], edx
add ebp, 1
cmp ebp, ecx
jl 0x8619c8
jmp 0x861d06
cmp eax, 4
jne 0x861c29
mov eax, dword [esp + 0x104]
mov edx, dword [esp + 0x9c]
mov ecx, dword [esp + 0xec]
mov dword [esp + 0xc], eax
mov eax, dword [esp + 0x108]
mov dword [esp + 0x10], eax
mov eax, dword [esp + 0x10c]
mov dword [esp + 0x14], eax
mov eax, dword [esp + 0x94]
mov dword [esp + 0x18], eax
mov eax, dword [esp + 0xb4]
mov dword [esp + 0x1c], eax
mov eax, dword [esp + 0xa0]
mov dword [esp + 0x20], eax
mov eax, dword [esp + 0xa4]
mov dword [esp + 0x24], eax
mov eax, dword [esp + 0xb0]
mov dword [esp + 0x28], eax
mov eax, dword [esp + 0xa8]
mov dword [esp + 0x2c], eax
mov eax, dword [esp + 0xc8]
mov dword [esp + 0x30], eax
mov eax, dword [esp + 0xbc]
mov dword [esp + 0x34], eax
mov eax, dword [esp + 0x8c]
mov dword [esp + 0x38], eax
mov eax, dword [esp + 0xc4]
mov dword [esp + 0x3c], esi
mov dword [esp + 0x40], eax
mov eax, dword [esp + 0xb8]
mov dword [esp + 0x44], eax
mov eax, dword [esp + 0x84]
mov dword [esp + 0x48], eax
mov eax, dword [esp + 0xc0]
mov dword [esp + 0x4c], ebp
mov dword [esp + 0x50], eax
mov eax, dword [esp + 0x90]
mov dword [esp + 0x54], eax
mov eax, dword [esp + 0xe0]
mov dword [esp + 0x58], edi
mov dword [esp + 0x5c], ebx
call fcn.00862444
xor eax, eax
jmp 0x861d1e
mov eax, dword [esp + 0x10c]
test eax, eax
jle 0x861c29
mov dword [esp + 0xac], ebx
mov dword [esp + 0x80], ebp
mov ebp, dword [esp + 0x94]
mov dword [esp + 0x78], esi
mov esi, dword [esp + 0x108]
mov dword [esp + 0x7c], edi
xor eax, eax
mov edi, dword [esp + 0x9c]
mov edx, dword [esp + 0xe0]
mov ebx, dword [ebp + eax*4]
add ebx, edx
mov ecx, edi
test esi, esi
jle 0x861ced
mov dword [esp + 0x88], eax
mov dword [esp + 0x9c], edi
xor edx, edx
mov esi, dword [esp + 0xb4]
mov eax, dword [esp + 0xa0]
mov edi, dword [esi + edx*8]
mov ebp, dword [eax + edx*4]
mov esi, dword [esi + edx*8 + 4]
movzx eax, byte [edi + ebx]
mov byte [ecx], al
movzx eax, byte [ebp + ebx + 1]
mov byte [ecx + 1], al
movzx eax, byte [esi + ebx]
mov byte [ecx + 2], al
movzx eax, byte [ebp + ebx + 3]
mov byte [ecx + 3], al
mov eax, dword [esp + 0x108]
add ecx, 4
add edx, 1
cmp edx, eax
jl 0x861c8b
mov eax, dword [esp + 0x88]
mov ebp, dword [esp + 0x94]
mov esi, dword [esp + 0x108]
mov edi, dword [esp + 0x9c]
add edi, dword [esp + 0x104]
mov edx, dword [esp + 0x10c]
add eax, 1
cmp eax, edx
jl 0x861c68
mov ebx, dword [esp + 0xac]
mov ebp, dword [esp + 0x80]
mov esi, dword [esp + 0x78]
mov edi, dword [esp + 0x7c]
xor eax, eax
mov edx, dword [esp + 0x94]
test edx, edx
je 0x861d3e
mov edx, dword [esp + 0x94]
push edx
mov dword [esp + 0x78], eax
call fcn.0086b198
mov eax, dword [esp + 0x74]
mov edx, dword [esp + 0xb4]
test edx, edx
je 0x861d57
push edx
mov dword [esp + 0x78], eax
call fcn.0086b198
mov eax, dword [esp + 0x74]
mov edx, dword [esp + 0xa0]
test edx, edx
je 0x861d70
push edx
mov dword [esp + 0x78], eax
call fcn.0086b198
mov eax, dword [esp + 0x74]
mov edx, dword [esp + 0x98]
cmp edx, 2
jl 0x861ee7
mov edx, dword [esp + 0xb0]
test edx, edx
je 0x861d99
push edx
mov dword [esp + 0x78], eax
call fcn.0086b198
mov eax, dword [esp + 0x74]
mov edx, dword [esp + 0xa8]
test edx, edx
je 0x861db2
push edx
mov dword [esp + 0x78], eax
call fcn.0086b198
mov eax, dword [esp + 0x74]
mov edx, dword [esp + 0xc8]
test edx, edx
je 0x861dcb
push edx
mov dword [esp + 0x78], eax
call fcn.0086b198
mov eax, dword [esp + 0x74]
mov edx, dword [esp + 0xc4]
test edx, edx
je 0x861de4
push edx
mov dword [esp + 0x78], eax
call fcn.0086b198
mov eax, dword [esp + 0x74]
mov edx, dword [esp + 0xc0]
test edx, edx
je 0x861dfd
push edx
mov dword [esp + 0x78], eax
call fcn.0086b198
mov eax, dword [esp + 0x74]
mov edx, dword [esp + 0xbc]
test edx, edx
je 0x861e16
push edx
mov dword [esp + 0x78], eax
call fcn.0086b198
mov eax, dword [esp + 0x74]
mov edx, dword [esp + 0xb8]
test edx, edx
je 0x861e2f
push edx
mov dword [esp + 0x78], eax
call fcn.0086b198
mov eax, dword [esp + 0x74]
mov edx, dword [esp + 0x90]
test edx, edx
je 0x861e48
push edx
mov dword [esp + 0x78], eax
call fcn.0086b198
mov eax, dword [esp + 0x74]
mov edx, dword [esp + 0xa4]
test edx, edx
je 0x861e61
push edx
mov dword [esp + 0x78], eax
call fcn.0086b198
mov eax, dword [esp + 0x74]
mov edx, dword [esp + 0x98]
cmp edx, 4
jl 0x861ee7
mov edx, dword [esp + 0x8c]
test edx, edx
je 0x861e86
push edx
mov dword [esp + 0x78], eax
call fcn.0086b198
mov eax, dword [esp + 0x74]
mov edx, dword [esp + 0x84]
test edx, edx
je 0x861e9f
push edx
mov dword [esp + 0x78], eax
call fcn.0086b198
mov eax, dword [esp + 0x74]
test edi, edi
je 0x861eb1
push edi
mov dword [esp + 0x78], eax
call fcn.0086b198
mov eax, dword [esp + 0x74]
test esi, esi
je 0x861ec3
push esi
mov dword [esp + 0x78], eax
call fcn.0086b198
mov eax, dword [esp + 0x74]
test ebp, ebp
je 0x861ed5
push ebp
mov dword [esp + 0x78], eax
call fcn.0086b198
mov eax, dword [esp + 0x74]
test ebx, ebx
je 0x861ee7
push ebx
mov dword [esp + 0x78], eax
call fcn.0086b198
mov eax, dword [esp + 0x74]
add esp, 0xcc
pop ebx
pop ebp
pop esi
pop edi
ret
xor esi, esi
mov dword [esp + 0xc8], esi
xor eax, eax
mov dword [esp + 0xbc], eax
mov dword [esp + 0xc4], eax
mov dword [esp + 0xb8], eax
xor ebx, ebx
mov dword [esp + 0xc0], ebx
xor ebp, ebp
xor edi, edi
mov dword [esp + 0x90], ebp
mov dword [esp + 0x8c], edi
mov dword [esp + 0x84], eax
mov eax, 0xfffffff7
jmp 0x861d29
mov eax, 0xfffffff7
jmp 0x861d1e
xor esi, esi
mov dword [esp + 0x8c], esi
xor eax, eax
xor ebp, ebp
mov dword [esp + 0x84], eax
xor edi, edi
xor ebx, ebx
mov eax, 0xfffffff7
jmp 0x861d1e
push ebx
call 0x72de9c
mov dword [esp + 0xc8], eax
test eax, eax
jne 0x861fc0
xor esi, esi
mov dword [esp + 0xbc], esi
xor eax, eax
mov dword [esp + 0xc4], eax
mov dword [esp + 0xb8], eax
mov dword [esp + 0xc0], eax
xor ebx, ebx
mov dword [esp + 0x90], ebx
xor ebp, ebp
mov dword [esp + 0x8c], ebp
xor edi, edi
mov dword [esp + 0x84], edi
mov eax, 0xfffffff7
jmp 0x861d1e
mov eax, dword [esp + 0x108]
push eax
call 0x72de9c
mov dword [esp + 0xc4], eax
test eax, eax
jne 0x862016
xor esi, esi
mov dword [esp + 0xbc], esi
xor eax, eax
mov dword [esp + 0xb8], eax
mov dword [esp + 0xc0], eax
mov dword [esp + 0x90], eax
xor ebx, ebx
mov dword [esp + 0x8c], ebx
xor ebp, ebp
mov dword [esp + 0x84], ebp
xor edi, edi
mov eax, 0xfffffff7
jmp 0x861d1e
mov eax, dword [esp + 0x108]
push eax
call 0x72de9c
mov dword [esp + 0xc0], eax
test eax, eax
jne 0x862065
xor esi, esi
mov dword [esp + 0xbc], esi
xor eax, eax
mov dword [esp + 0xb8], eax
mov dword [esp + 0x90], eax
mov dword [esp + 0x8c], eax
xor ebx, ebx
mov dword [esp + 0x84], ebx
xor ebp, ebp
xor edi, edi
mov eax, 0xfffffff7
jmp 0x861d1e
push ebx
call 0x72de9c
mov dword [esp + 0xbc], eax
test eax, eax
jne 0x8620a6
xor esi, esi
mov dword [esp + 0xb8], esi
xor eax, eax
mov dword [esp + 0x90], eax
mov dword [esp + 0x8c], eax
xor ebp, ebp
mov dword [esp + 0x84], eax
xor edi, edi
xor ebx, ebx
mov eax, 0xfffffff7
jmp 0x861d1e
mov eax, dword [esp + 0x108]
push eax
call 0x72de9c
mov dword [esp + 0xb8], eax
test eax, eax
jne 0x8620e7
xor esi, esi
mov dword [esp + 0x90], esi
xor eax, eax
mov dword [esp + 0x8c], eax
mov dword [esp + 0x84], eax
xor ebp, ebp
xor edi, edi
xor ebx, ebx
mov eax, 0xfffffff7
jmp 0x861d1e
mov eax, dword [esp + 0x108]
push eax
call 0x72de9c
mov dword [esp + 0x90], eax
test eax, eax
je 0x861f48
xor esi, esi
mov dword [esp + 0x8c], esi
xor ebp, ebp
mov dword [esp + 0x84], esi
xor edi, edi
xor ebx, ebx
jmp 0x8618d8
mov edx, dword [esp + 0x74]
cmp ebx, edx
jge 0x861ac7
mov esi, dword [esp + 0x70]
mov edi, dword [esp + 0x6c]
mov ecx, dword [esp + 0x68]
mov edx, dword [esp + 0x64]
mov eax, dword [esp + 0xe0]
mov dword [esp + 0x70], edi
mov edi, dword [esp + 0x88]
mov dword [esp + 0x68], edx
mov edx, dword [esp + 0x60]
mov dword [esp + 0x6c], esi
mov dword [esp + 0x64], ecx
mov dword [esp + 0x60], edi
mov edi, dword [esp + 0xec]
mov dword [esp + 0x88], edx
lea eax, [edi + eax]
add eax, ebx
push edx
push ecx
push esi
mov edx, dword [esp + 0xb4]
push edx
mov edx, dword [esp + 0xc0]
push edx
mov edx, dword [esp + 0xb4]
push edx
mov edx, dword [esp + 0xcc]
push edx
mov edx, dword [esp + 0x124]
push edx
push eax
call fcn.0086a5a0
add esp, 0x24
mov edx, dword [esp + 0x74]
add edx, dword [esp + 0xec]
cmp ebx, edx
jge 0x861ac3
mov edx, dword [esp + 0xe0]
mov ecx, dword [esp + 0x60]
push ecx
lea eax, [edx + ebx]
mov esi, dword [esp + 0x6c]
push esi
mov edi, dword [esp + 0x78]
push edi
mov edx, dword [esp + 0xb4]
push edx
mov edx, dword [esp + 0xc0]
push edx
mov edx, dword [esp + 0xb4]
push edx
mov edx, dword [esp + 0xcc]
push edx
mov edx, dword [esp + 0x124]
push edx
push eax
call fcn.0086a5a0
add esp, 0x24
jmp 0x861ac3
movsd xmm1, qword [0x8a00c8]
divsd xmm1, qword [esp + 0x110]
movsd xmm3, qword [0x8a00c8]
divsd xmm3, qword [esp + 0x118]
movsd xmm2, qword [0x8a00b0]
movaps xmm0, xmm2
mulsd xmm2, xmm3
mulsd xmm0, xmm1
mov eax, dword [esp + 0x10c]
test eax, eax
jle 0x862277
mov edx, dword [esp + 0x94]
mov eax, dword [esp + 0x10c]
lea eax, [edx + eax*4]
movsd xmm4, qword [0x8a00b8]
addsd xmm4, xmm2
addsd xmm2, xmm3
cvttsd2si ecx, xmm4
mov dword [edx], ecx
add edx, 4
cmp edx, eax
jb 0x86225a
mov eax, dword [esp + 0x10c]
test eax, eax
jle 0x8622a8
mov edx, dword [esp + 0x94]
mov eax, dword [esp + 0x10c]
mov ebp, dword [esp + 0xec]
lea eax, [edx + eax*4]
mov ecx, dword [edx]
imul ecx, ebp
mov dword [edx], ecx
add edx, 4
cmp edx, eax
jb 0x86229a
mov eax, dword [esp + 0x108]
test eax, eax
jle 0x862398
mov edx, dword [esp + 0xb4]
mov eax, dword [esp + 0xa0]
cmp eax, edx
jbe 0x8622e5
mov eax, dword [esp + 0x108]
mov edx, dword [esp + 0xa0]
shl eax, 2
sub edx, dword [esp + 0xb4]
cmp eax, edx
jb 0x862313
mov eax, dword [esp + 0xb4]
mov edx, dword [esp + 0xa0]
cmp eax, edx
jbe 0x862357
mov eax, dword [esp + 0x108]
mov edx, dword [esp + 0xb4]
shl eax, 2
sub edx, dword [esp + 0xa0]
cmp eax, edx
jae 0x862357
movsd xmm2, qword [0x8a00b8]
mov ebp, dword [esp + 0xa0]
mov esi, dword [esp + 0xb4]
mov edi, dword [esp + 0x108]
xor eax, eax
movaps xmm3, xmm2
addsd xmm3, xmm0
addsd xmm0, xmm1
cvttsd2si ecx, xmm3
lea edx, [ecx + ecx]
shl ecx, 2
mov dword [esi + eax*4], edx
mov dword [ebp + eax*4], ecx
add eax, 1
cmp eax, edi
jb 0x862332
jmp 0x86239a
mov ebp, dword [esp + 0xa0]
mov esi, dword [esp + 0xb4]
mov edi, dword [esp + 0x108]
xor eax, eax
movsd xmm2, qword [0x8a00b8]
addsd xmm2, xmm0
addsd xmm0, xmm1
cvttsd2si ecx, xmm2
lea edx, [ecx + ecx]
shl ecx, 2
mov dword [esi + eax*4], edx
mov dword [ebp + eax*4], ecx
add eax, 1
cmp eax, edi
jb 0x86236e
jmp 0x86239a
xor eax, eax
cmp eax, ebx
jge 0x8623c5
mov ecx, dword [esp + 0xb4]
movsd xmm2, qword [0x8a00b8]
addsd xmm2, xmm0
addsd xmm0, xmm1
cvttsd2si edx, xmm2
add edx, edx
mov dword [ecx + eax*4], edx
add eax, 1
cmp eax, ebx
jl 0x8623a5
xor eax, eax
mov dword [esp + 0xa4], eax
mov dword [esp + 0xb0], eax
mov dword [esp + 0xa8], eax
jmp 0x86164a
xor esi, esi
mov dword [esp + 0xa4], esi
xor eax, eax
mov dword [esp + 0xb0], eax
mov dword [esp + 0xa8], eax
mov dword [esp + 0xc8], eax
xor ebx, ebx
mov dword [esp + 0xbc], ebx
xor ebp, ebp
xor edi, edi
mov dword [esp + 0xc4], ebp
mov dword [esp + 0xb8], edi
mov dword [esp + 0xc0], eax
mov dword [esp + 0x90], eax
mov dword [esp + 0x8c], eax
mov dword [esp + 0x84], eax
mov eax, 0xfffffff7
jmp 0x861d29