Function at 0x864988
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 dword [esp + 0x9c], eax
mov edx, dword [esp + 0x120]
mov dword [esp + 0xa0], edx
mov edx, dword [esp + 0xe4]
cmp edx, 8
jl 0x8649c6
mov eax, dword [esp + 0xe8]
cmp eax, 4
jge 0x8649fb
mov eax, dword [esp + 0xa0]
cmp eax, 4
jne 0x8649d7
mov eax, 2
cmp edx, 4
mov dword [esp + 0xa0], eax
jl 0x8649ef
mov eax, dword [esp + 0xe8]
cmp eax, 2
jge 0x8649fb
mov eax, 1
mov dword [esp + 0xa0], eax
mov eax, dword [esp + 0x10c]
push eax
call fcn.0086b17c
mov dword [esp + 0xa4], eax
test eax, eax
jne 0x864a74
xor esi, esi
xor eax, eax
mov dword [esp + 0xac], esi
xor ebx, ebx
mov dword [esp + 0xb8], eax
xor ebp, ebp
xor edi, edi
mov dword [esp + 0xb0], eax
mov dword [esp + 0xc8], eax
mov dword [esp + 0x98], ebx
mov dword [esp + 0xc4], ebp
mov dword [esp + 0x94], 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 0x8659ae
mov eax, dword [esp + 0x108]
lea ebx, [eax + eax]
push ebx
call fcn.0086b17c
mov dword [esp + 0xbc], eax
test eax, eax
jne 0x864af7
xor esi, esi
xor eax, eax
mov dword [esp + 0xa8], esi
xor ebx, ebx
mov dword [esp + 0xac], eax
xor ebp, ebp
xor edi, edi
mov dword [esp + 0xb8], eax
mov dword [esp + 0xb0], eax
mov dword [esp + 0xc8], ebx
mov dword [esp + 0x98], ebp
mov dword [esp + 0xc4], edi
mov dword [esp + 0x94], 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 0x865967
mov eax, dword [esp + 0x108]
push eax
call fcn.0086b17c
mov dword [esp + 0xa8], eax
test eax, eax
je 0x865f38
mov eax, dword [esp + 0xa0]
cmp eax, 1
je 0x865e47
fild dword [esp + 0xf8]
mov ecx, dword [esp + 0xf8]
fld1
fxch st(1)
fmul qword [esp + 0x110]
fldz
fxch st(1)
fcom st(2)
fnstsw ax
fxch st(1)
fstp qword [esp + 0x94]
sahf
jbe 0x864b6b
lea eax, [ecx - 1]
fsub st(1)
mov dword [esp + 0x8c], eax
fild dword [esp + 0x8c]
fdivrp st(1)
fstp qword [esp + 0x60]
jmp 0x864b78
fstp st(0)
fld qword [esp + 0x94]
fstp qword [esp + 0x60]
fild dword [esp + 0xfc]
fld qword [esp + 0x118]
fmulp st(1)
fcom st(1)
fnstsw ax
sahf
jbe 0x864bb1
mov eax, dword [esp + 0xfc]
lea edx, [eax - 1]
fsub st(1)
mov dword [esp + 0x8c], edx
fild dword [esp + 0x8c]
fdivrp st(1)
fstp qword [esp + 0x70]
jmp 0x864bbe
fstp st(0)
fld qword [esp + 0x94]
fstp qword [esp + 0x70]
fld qword [esp + 0x110]
sar ecx, 1
mov dword [esp + 0x8c], ecx
fild dword [esp + 0x8c]
fmulp st(1)
fcom st(1)
fnstsw ax
sahf
jbe 0x864bf7
dec ecx
fsubrp st(1)
mov dword [esp + 0x8c], ecx
fild dword [esp + 0x8c]
fdivrp st(1)
fstp qword [esp + 0x68]
jmp 0x864c06
fstp st(1)
fstp st(0)
fld qword [esp + 0x94]
fstp qword [esp + 0x68]
fld qword [esp + 0x94]
mov eax, dword [esp + 0xa0]
cmp eax, 2
fst qword [esp + 0x78]
fstp qword [esp + 0x80]
jne 0x864f50
mov eax, dword [esp + 0x10c]
push eax
call 0x72de9c
mov dword [esp + 0xac], eax
test eax, eax
jne 0x864c9a
xor esi, esi
xor eax, eax
mov dword [esp + 0xb8], esi
xor ebx, ebx
mov dword [esp + 0xb0], eax
xor ebp, ebp
xor edi, edi
mov dword [esp + 0xc8], eax
mov dword [esp + 0x98], eax
mov dword [esp + 0xc4], ebx
mov dword [esp + 0x94], 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 0x865967
mov eax, dword [esp + 0x108]
shl eax, 2
push eax
call 0x72de9c
mov dword [esp + 0xb8], eax
test eax, eax
jne 0x864d08
xor esi, esi
xor eax, eax
mov dword [esp + 0xb0], esi
xor ebx, ebx
mov dword [esp + 0xc8], eax
xor ebp, ebp
xor edi, edi
mov dword [esp + 0x98], eax
mov dword [esp + 0xc4], eax
mov dword [esp + 0x94], ebx
mov dword [esp + 0xc0], ebp
mov dword [esp + 0x90], edi
mov dword [esp + 0x8c], eax
mov dword [esp + 0x84], eax
mov eax, 0xfffffff7
jmp 0x865967
push ebx
call 0x72de9c
mov dword [esp + 0xb0], eax
test eax, eax
je 0x865b30
mov eax, dword [esp + 0x10c]
test eax, eax
jle 0x864dc5
fld qword [0x8a0158]
xor edx, edx
mov ecx, dword [esp + 0xe8]
sub ecx, dword [esp + 0xf4]
dec ecx
mov esi, dword [esp + 0xa4]
mov dword [esp + 0x88], ebx
mov ebx, dword [esp + 0xac]
mov edi, dword [esp + 0x10c]
fld qword [esp + 0x80]
fld qword [esp + 0x70]
fld st(2)
fadd st(2)
call fcn.008481a0
mov ebp, eax
cmp ebp, ecx
jne 0x864d85
dec ebp
mov eax, 0x4000
mov word [ebx + edx*2], ax
jmp 0x864da6
mov dword [esp + 0x8c], ebp
fild dword [esp + 0x8c]
fsubr st(2)
fmul qword [0x8a0160]
fadd st(3)
call fcn.008481a0
mov word [ebx + edx*2], ax
imul ebp, dword [esp + 0xec]
mov dword [esi + edx*4], ebp
inc edx
fadd st(1), st(0)
cmp edx, edi
jl 0x864d6a
fstp st(2)
fstp st(1)
fstp st(0)
mov ebx, dword [esp + 0x88]
test ebx, ebx
jle 0x864e77
fld qword [0x8a0158]
xor edx, edx
mov eax, dword [esp + 0xe4]
sub eax, dword [esp + 0xf0]
dec eax
mov ecx, dword [esp + 0xb8]
mov dword [esp + 0x80], eax
mov esi, dword [esp + 0xbc]
fld qword [esp + 0x78]
fld qword [esp + 0x60]
fld st(2)
fadd st(2)
call fcn.008481a0
mov ebp, eax
mov edi, dword [esp + 0x80]
cmp ebp, edi
jne 0x864e2f
dec ebp
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 0x864e65
mov dword [esp + 0x8c], ebp
fild dword [esp + 0x8c]
fsubr st(2)
fmul qword [0x8a0160]
fadd st(3)
call fcn.008481a0
movzx edi, ax
mov word [ecx + edx*4 + 2], di
mov eax, edx
shl eax, 2
neg edi
add edi, 0x4000
mov word [ecx + eax], di
add ebp, ebp
inc edx
fadd st(1), st(0)
mov dword [eax + esi], ebp
cmp edx, ebx
jl 0x864e01
fstp st(2)
fstp st(1)
fstp st(0)
mov eax, dword [esp + 0x108]
test eax, eax
jle 0x86529e
fld qword [0x8a0158]
xor edx, edx
mov eax, dword [esp + 0xe4]
sub eax, dword [esp + 0xf0]
sar eax, 1
dec eax
mov dword [esp + 0xb4], eax
mov ecx, dword [esp + 0xb0]
mov ebp, dword [esp + 0xa8]
mov dword [esp + 0x88], ebx
mov esi, dword [esp + 0x108]
fld qword [esp + 0x68]
fld qword [esp + 0x94]
fld st(2)
fadd st(1)
call fcn.008481a0
mov ebx, eax
mov edi, dword [esp + 0xb4]
cmp ebx, edi
jne 0x864efb
dec ebx
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 0x864f31
mov dword [esp + 0x8c], ebx
fild dword [esp + 0x8c]
fsubr st(1)
fmul qword [0x8a0160]
fadd st(3)
call fcn.008481a0
movzx edi, ax
mov word [ecx + edx*4 + 2], di
mov eax, edx
shl eax, 2
neg edi
add edi, 0x4000
mov word [ecx + eax], di
shl ebx, 2
inc edx
fadd st(1)
mov dword [eax + ebp], ebx
cmp edx, esi
jl 0x864ecd
fstp st(2)
fstp st(0)
fstp st(0)
mov ebx, dword [esp + 0x88]
jmp 0x86529e
mov eax, dword [esp + 0x10c]
push eax
call fcn.0086b17c
mov dword [esp + 0xac], eax
test eax, eax
jne 0x864fc2
xor esi, esi
xor eax, eax
mov dword [esp + 0xb8], esi
xor ebx, ebx
mov dword [esp + 0xb0], eax
xor ebp, ebp
xor edi, edi
mov dword [esp + 0xc8], eax
mov dword [esp + 0x98], eax
mov dword [esp + 0xc4], ebx
mov dword [esp + 0x94], 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 0x865967
push ebx
call fcn.0086b17c
mov dword [esp + 0xb8], eax
test eax, eax
jne 0x865026
xor esi, esi
xor eax, eax
mov dword [esp + 0xb0], esi
xor ebx, ebx
mov dword [esp + 0xc8], eax
xor ebp, ebp
xor edi, edi
mov dword [esp + 0x98], eax
mov dword [esp + 0xc4], eax
mov dword [esp + 0x94], ebx
mov dword [esp + 0xc0], ebp
mov dword [esp + 0x90], edi
mov dword [esp + 0x8c], eax
mov dword [esp + 0x84], eax
mov eax, 0xfffffff7
jmp 0x865967
mov eax, dword [esp + 0x108]
push eax
call fcn.0086b17c
mov dword [esp + 0xb0], eax
test eax, eax
je 0x865b30
mov eax, dword [esp + 0x10c]
test eax, eax
jle 0x865113
mov dword [esp + 0x88], ebx
mov edx, dword [esp + 0xe8]
mov eax, dword [esp + 0xf4]
fld qword [esp + 0x80]
xor ebp, ebp
mov ecx, edx
fld qword [esp + 0x70]
sub ecx, eax
dec ecx
mov dword [esp + 0xb4], ecx
mov ecx, dword [esp + 0xac]
mov ebx, dword [esp + 0xa4]
fld qword [0x8a0158]
fadd st(2)
call fcn.008481a0
mov edx, dword [esp + 0xb4]
cmp eax, edx
jne 0x8650b6
add eax, 0xfffffffe
mov edx, ebp
shl edx, 2
mov dword [ecx + edx], 0x40000000
jmp 0x8650ef
mov edx, dword [esp + 0xf4]
add edx, eax
jne 0x8650c4
inc eax
jmp 0x8650d7
mov esi, dword [esp + 0xe8]
lea edi, [esi - 2]
lea esi, [eax - 1]
cmp edx, edi
jne 0x8650d7
mov eax, esi
mov dword [esp + 0x8c], eax
mov edx, ebp
shl edx, 2
fild dword [esp + 0x8c]
fsubr st(2)
fstp dword [ecx + edx]
imul eax, dword [esp + 0xec]
mov dword [ebx + edx], eax
inc ebp
fadd st(1), st(0)
mov eax, dword [esp + 0x10c]
cmp ebp, eax
jl 0x86508d
fstp st(0)
fstp st(0)
mov ebx, dword [esp + 0x88]
test ebx, ebx
jle 0x8651c7
fld qword [esp + 0x78]
mov ecx, dword [esp + 0xf0]
xor edx, edx
fld qword [esp + 0x60]
mov eax, dword [esp + 0xe4]
sub eax, ecx
mov dword [esp + 0x80], eax
lea ebp, [eax - 1]
mov ecx, dword [esp + 0xb8]
mov dword [esp + 0xb4], ebp
mov ebp, dword [esp + 0xbc]
fld qword [0x8a0158]
fadd st(2)
call fcn.008481a0
mov esi, dword [esp + 0xb4]
cmp eax, esi
jne 0x86517d
add eax, 0xfffffffe
mov esi, edx
shl esi, 2
mov dword [ecx + esi], 0x40000000
jmp 0x8651b6
mov esi, dword [esp + 0xf0]
add esi, eax
jne 0x86518b
inc eax
jmp 0x86519e
mov esi, dword [esp + 0x80]
lea edi, [esi - 2]
lea esi, [eax - 1]
cmp eax, edi
jne 0x86519e
mov eax, esi
mov dword [esp + 0x8c], eax
mov esi, edx
shl esi, 2
fild dword [esp + 0x8c]
fsubr st(2)
fstp dword [ecx + esi]
add eax, eax
inc edx
fadd st(1), st(0)
mov dword [ebp + esi], eax
cmp edx, ebx
jl 0x865154
fstp st(0)
fstp st(0)
mov eax, dword [esp + 0x108]
test eax, eax
jle 0x86529e
mov dword [esp + 0x88], ebx
mov edx, dword [esp + 0xf0]
xor ebp, ebp
fld qword [esp + 0x68]
mov eax, dword [esp + 0xe4]
sub eax, edx
fld qword [esp + 0x94]
sar eax, 1
lea ecx, [eax - 1]
mov dword [esp + 0x80], ecx
mov edx, dword [esp + 0xb0]
mov ecx, dword [esp + 0xa8]
mov dword [esp + 0xb4], eax
mov ebx, dword [esp + 0x108]
fld qword [0x8a0158]
fadd st(1)
call fcn.008481a0
mov esi, dword [esp + 0x80]
cmp eax, esi
jne 0x86524b
add eax, 0xfffffffe
mov esi, ebp
shl esi, 2
mov dword [edx + esi], 0x40000000
jmp 0x865286
mov esi, dword [esp + 0xf0]
sar esi, 1
add esi, eax
jne 0x86525b
inc eax
jmp 0x86526e
mov esi, dword [esp + 0xb4]
lea edi, [esi - 2]
lea esi, [eax - 1]
cmp eax, edi
jne 0x86526e
mov eax, esi
mov dword [esp + 0x8c], eax
mov esi, ebp
shl esi, 2
fild dword [esp + 0x8c]
fsubr st(1)
fstp dword [edx + esi]
shl eax, 2
inc ebp
fadd st(1)
mov dword [ecx + esi], eax
cmp ebp, ebx
jl 0x865222
fstp st(1)
fstp st(0)
mov ebx, dword [esp + 0x88]
mov eax, dword [esp + 0xa0]
cmp eax, 2
jl 0x8654d3
cmp eax, 2
je 0x865ba8
push ebx
call fcn.0086b17c
mov dword [esp + 0xc8], eax
test eax, eax
jne 0x86530d
xor esi, esi
xor eax, eax
mov dword [esp + 0x98], esi
xor ebx, ebx
mov dword [esp + 0xc4], eax
xor ebp, ebp
mov dword [esp + 0x94], eax
xor edi, edi
mov eax, 0xfffffff7
mov dword [esp + 0xc0], esi
mov dword [esp + 0x90], ebx
mov dword [esp + 0x8c], ebp
mov dword [esp + 0x84], edi
jmp 0x86595c
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 0x865370
xor esi, esi
xor eax, eax
mov dword [esp + 0x98], esi
mov dword [esp + 0x94], eax
xor ebx, ebx
xor ebp, ebp
mov dword [esp + 0x90], eax
xor edi, edi
mov eax, 0xfffffff7
mov dword [esp + 0x8c], esi
mov dword [esp + 0x84], ebx
jmp 0x86595c
push ebx
call fcn.0086b17c
mov dword [esp + 0x98], eax
test eax, eax
jne 0x8653b1
xor esi, esi
xor eax, eax
mov dword [esp + 0x94], esi
mov dword [esp + 0x90], eax
xor ebp, ebp
xor edi, edi
mov dword [esp + 0x8c], eax
xor ebx, ebx
mov eax, 0xfffffff7
mov dword [esp + 0x84], esi
jmp 0x86595c
mov eax, dword [esp + 0x108]
push eax
call fcn.0086b17c
mov dword [esp + 0x94], eax
mov eax, dword [esp + 0x108]
push eax
call fcn.0086b17c
mov dword [esp + 0x90], eax
test eax, eax
je 0x865b86
mov eax, dword [esp + 0xa0]
cmp eax, 4
jge 0x865408
xor esi, esi
xor ebp, ebp
mov dword [esp + 0x8c], esi
xor edi, edi
mov dword [esp + 0x84], esi
xor ebx, ebx
jmp 0x865513
push ebx
call fcn.0086b17c
mov dword [esp + 0x8c], eax
test eax, eax
jne 0x865434
xor esi, esi
xor eax, eax
xor ebp, ebp
mov dword [esp + 0x84], eax
xor edi, edi
xor ebx, ebx
mov eax, 0xfffffff7
jmp 0x86595c
mov eax, dword [esp + 0x108]
push eax
call fcn.0086b17c
mov dword [esp + 0x84], eax
test eax, eax
jne 0x86545e
xor esi, esi
xor ebp, ebp
xor edi, edi
xor ebx, ebx
mov eax, 0xfffffff7
jmp 0x86595c
mov eax, dword [esp + 0x108]
push eax
call fcn.0086b17c
mov edi, eax
test edi, edi
jne 0x865481
xor esi, esi
xor ebp, ebp
xor ebx, ebx
mov eax, 0xfffffff7
jmp 0x86595c
push ebx
call fcn.0086b17c
mov esi, eax
test esi, esi
jne 0x86549b
xor ebp, ebp
xor ebx, ebx
mov eax, 0xfffffff7
jmp 0x86595c
mov eax, dword [esp + 0x108]
push eax
call fcn.0086b17c
mov ebp, eax
test ebp, ebp
jne 0x8654ba
xor ebx, ebx
mov eax, 0xfffffff7
jmp 0x86595c
mov eax, dword [esp + 0x108]
push eax
call fcn.0086b17c
mov ebx, eax
test ebx, ebx
je 0x865b7c
jmp 0x865513
xor esi, esi
mov dword [esp + 0xc8], esi
xor ebx, ebx
mov dword [esp + 0x98], esi
xor ebp, ebp
xor edi, edi
mov dword [esp + 0xc4], esi
mov dword [esp + 0x94], esi
mov dword [esp + 0xc0], ebx
mov dword [esp + 0x90], ebp
mov dword [esp + 0x8c], edi
mov dword [esp + 0x84], esi
mov eax, dword [esp + 0xa0]
cmp eax, 1
je 0x865872
cmp eax, 2
jne 0x86577d
mov eax, dword [esp + 0xc8]
mov edx, dword [esp + 0x98]
mov ecx, dword [esp + 0xc4]
mov dword [esp + 0x70], eax
mov eax, dword [esp + 0x94]
mov dword [esp + 0x6c], edx
mov dword [esp + 0x68], ecx
mov dword [esp + 0x64], eax
mov eax, dword [esp + 0xc0]
mov dword [esp + 0x60], eax
mov eax, dword [esp + 0x90]
mov dword [esp + 0x88], eax
mov eax, dword [esp + 0xa4]
mov eax, dword [eax]
mov dword [esp + 0x74], eax
mov eax, dword [esp + 0xec]
test eax, eax
jle 0x86558f
dec dword [esp + 0x74]
jmp 0x865593
inc dword [esp + 0x74]
mov eax, dword [esp + 0x90]
push eax
mov edx, dword [esp + 0x98]
push edx
mov ecx, dword [esp + 0xa0]
push ecx
mov eax, dword [esp + 0xbc]
push eax
mov eax, dword [esp + 0xc8]
push eax
mov eax, dword [esp + 0xbc]
push eax
mov eax, dword [esp + 0xd4]
push eax
mov eax, dword [esp + 0x124]
push eax
mov eax, dword [esp + 0x100]
push eax
call fcn.0086aedc
add esp, 0x24
mov eax, dword [esp + 0x10c]
test eax, eax
jle 0x86586b
mov dword [esp + 0xb4], ebx
xor eax, eax
mov dword [esp + 0x80], ebp
mov ebp, eax
mov dword [esp + 0x78], esi
mov dword [esp + 0x7c], edi
mov ebx, dword [esp + 0xa4]
mov ebx, dword [ebx + ebp*4]
mov edx, dword [esp + 0xec]
test edx, edx
jle 0x865d5c
mov edx, dword [esp + 0x74]
cmp ebx, edx
jle 0x86570b
mov esi, dword [esp + 0x70]
mov edi, dword [esp + 0x6c]
mov dword [esp + 0x70], edi
mov ecx, dword [esp + 0x68]
mov dword [esp + 0x6c], esi
mov edx, dword [esp + 0x64]
mov edi, dword [esp + 0x88]
mov dword [esp + 0x68], edx
mov edx, dword [esp + 0x60]
mov dword [esp + 0x64], ecx
mov eax, dword [esp + 0xe0]
mov dword [esp + 0x60], edi
mov edi, dword [esp + 0xec]
lea eax, [edi + eax]
mov dword [esp + 0x88], edx
add eax, ebx
push edx
push ecx
push esi
mov edx, dword [esp + 0xbc]
push edx
mov edx, dword [esp + 0xc8]
push edx
mov edx, dword [esp + 0xbc]
push edx
mov edx, dword [esp + 0xd4]
push edx
mov edx, dword [esp + 0x124]
push edx
push eax
call fcn.0086aedc
add esp, 0x24
mov edx, dword [esp + 0x74]
add edx, dword [esp + 0xec]
cmp ebx, edx
jle 0x865707
mov edx, dword [esp + 0xe0]
lea eax, [edx + ebx]
mov ecx, dword [esp + 0x60]
push ecx
mov esi, dword [esp + 0x6c]
push esi
mov edi, dword [esp + 0x78]
push edi
mov edx, dword [esp + 0xbc]
push edx
mov edx, dword [esp + 0xc8]
push edx
mov edx, dword [esp + 0xbc]
push edx
mov edx, dword [esp + 0xd4]
push edx
mov edx, dword [esp + 0x124]
push edx
push eax
call fcn.0086aedc
add esp, 0x24
mov dword [esp + 0x74], ebx
mov edx, dword [esp + 0xac]
movzx eax, word [edx + ebp*2]
mov ecx, dword [esp + 0x88]
push ecx
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.0086aff0
add esp, 0x24
mov edx, dword [esp + 0x9c]
inc ebp
mov ecx, dword [esp + 0x10c]
add edx, dword [esp + 0x104]
cmp ebp, ecx
mov dword [esp + 0x9c], edx
jl 0x86560c
jmp 0x865944
cmp eax, 4
jne 0x86586b
mov dword [esp + 0x3c], esi
mov eax, dword [esp + 0x104]
mov edx, dword [esp + 0x9c]
mov dword [esp + 0xc], eax
mov eax, dword [esp + 0x108]
mov dword [esp + 0x10], eax
mov eax, dword [esp + 0x10c]
mov ecx, dword [esp + 0xec]
mov dword [esp + 0x14], eax
mov eax, dword [esp + 0xa4]
mov dword [esp + 0x18], eax
mov eax, dword [esp + 0xbc]
mov dword [esp + 0x1c], eax
mov eax, dword [esp + 0xa8]
mov dword [esp + 0x20], eax
mov eax, dword [esp + 0xac]
mov dword [esp + 0x24], eax
mov eax, dword [esp + 0xb8]
mov dword [esp + 0x28], eax
mov eax, dword [esp + 0xb0]
mov dword [esp + 0x2c], eax
mov eax, dword [esp + 0xc8]
mov dword [esp + 0x30], eax
mov eax, dword [esp + 0x98]
mov dword [esp + 0x34], eax
mov eax, dword [esp + 0x8c]
mov dword [esp + 0x38], eax
mov eax, dword [esp + 0xc4]
mov dword [esp + 0x40], eax
mov eax, dword [esp + 0x94]
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.00865fa4
xor eax, eax
jmp 0x86595c
mov eax, dword [esp + 0x10c]
test eax, eax
jle 0x86586b
mov dword [esp + 0xb4], ebx
xor eax, eax
mov dword [esp + 0x80], ebp
mov ebp, dword [esp + 0xa4]
mov dword [esp + 0x78], esi
mov esi, dword [esp + 0x108]
mov dword [esp + 0x7c], edi
mov edi, dword [esp + 0x9c]
mov ebx, dword [ebp + eax*4]
mov edx, dword [esp + 0xe0]
add ebx, edx
mov ecx, edi
test esi, esi
jle 0x86592d
mov dword [esp + 0x88], eax
xor edx, edx
mov dword [esp + 0x9c], edi
mov esi, dword [esp + 0xbc]
mov edi, dword [esi + edx*8]
mov eax, dword [esp + 0xa8]
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]
inc edx
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
add ecx, 4
mov eax, dword [esp + 0x108]
cmp edx, eax
jl 0x8658cd
mov eax, dword [esp + 0x88]
mov ebp, dword [esp + 0xa4]
mov esi, dword [esp + 0x108]
mov edi, dword [esp + 0x9c]
add edi, dword [esp + 0x104]
inc eax
mov edx, dword [esp + 0x10c]
cmp eax, edx
jl 0x8658aa
mov ebx, dword [esp + 0xb4]
mov ebp, dword [esp + 0x80]
mov esi, dword [esp + 0x78]
mov edi, dword [esp + 0x7c]
xor eax, eax
mov edx, dword [esp + 0xa4]
test edx, edx
je 0x86597c
mov edx, dword [esp + 0xa4]
push edx
mov dword [esp + 0x78], eax
call fcn.0086b198
mov eax, dword [esp + 0x74]
mov edx, dword [esp + 0xbc]
test edx, edx
je 0x865995
push edx
mov dword [esp + 0x78], eax
call fcn.0086b198
mov eax, dword [esp + 0x74]
mov edx, dword [esp + 0xa8]
test edx, edx
je 0x8659ae
push edx
mov dword [esp + 0x78], eax
call fcn.0086b198
mov eax, dword [esp + 0x74]
mov edx, dword [esp + 0xa0]
cmp edx, 2
jl 0x865b25
mov edx, dword [esp + 0xb8]
test edx, edx
je 0x8659d7
push edx
mov dword [esp + 0x78], eax
call fcn.0086b198
mov eax, dword [esp + 0x74]
mov edx, dword [esp + 0xb0]
test edx, edx
je 0x8659f0
push edx
mov dword [esp + 0x78], eax
call fcn.0086b198
mov eax, dword [esp + 0x74]
mov edx, dword [esp + 0xc8]
test edx, edx
je 0x865a09
push edx
mov dword [esp + 0x78], eax
call fcn.0086b198
mov eax, dword [esp + 0x74]
mov edx, dword [esp + 0xc4]
test edx, edx
je 0x865a22
push edx
mov dword [esp + 0x78], eax
call fcn.0086b198
mov eax, dword [esp + 0x74]
mov edx, dword [esp + 0xc0]
test edx, edx
je 0x865a3b
push edx
mov dword [esp + 0x78], eax
call fcn.0086b198
mov eax, dword [esp + 0x74]
mov edx, dword [esp + 0x98]
test edx, edx
je 0x865a54
push edx
mov dword [esp + 0x78], eax
call fcn.0086b198
mov eax, dword [esp + 0x74]
mov edx, dword [esp + 0x94]
test edx, edx
je 0x865a6d
push edx
mov dword [esp + 0x78], eax
call fcn.0086b198
mov eax, dword [esp + 0x74]
mov edx, dword [esp + 0x90]
test edx, edx
je 0x865a86
push edx
mov dword [esp + 0x78], eax
call fcn.0086b198
mov eax, dword [esp + 0x74]
mov edx, dword [esp + 0xac]
test edx, edx
je 0x865a9f
push edx
mov dword [esp + 0x78], eax
call fcn.0086b198
mov eax, dword [esp + 0x74]
mov edx, dword [esp + 0xa0]
cmp edx, 4
jl 0x865b25
mov edx, dword [esp + 0x8c]
test edx, edx
je 0x865ac4
push edx
mov dword [esp + 0x78], eax
call fcn.0086b198
mov eax, dword [esp + 0x74]
mov edx, dword [esp + 0x84]
test edx, edx
je 0x865add
push edx
mov dword [esp + 0x78], eax
call fcn.0086b198
mov eax, dword [esp + 0x74]
test edi, edi
je 0x865aef
push edi
mov dword [esp + 0x78], eax
call fcn.0086b198
mov eax, dword [esp + 0x74]
test esi, esi
je 0x865b01
push esi
mov dword [esp + 0x78], eax
call fcn.0086b198
mov eax, dword [esp + 0x74]
test ebp, ebp
je 0x865b13
push ebp
mov dword [esp + 0x78], eax
call fcn.0086b198
mov eax, dword [esp + 0x74]
test ebx, ebx
je 0x865b25
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
xor eax, eax
mov dword [esp + 0xc8], esi
xor ebx, ebx
mov dword [esp + 0x98], eax
xor ebp, ebp
xor edi, edi
mov dword [esp + 0xc4], eax
mov dword [esp + 0x94], eax
mov dword [esp + 0xc0], ebx
mov dword [esp + 0x90], ebp
mov dword [esp + 0x8c], edi
mov dword [esp + 0x84], eax
mov eax, 0xfffffff7
jmp 0x865967
mov eax, 0xfffffff7
jmp 0x86595c
xor esi, esi
xor eax, eax
xor ebp, ebp
mov dword [esp + 0x8c], esi
xor edi, edi
mov dword [esp + 0x84], eax
xor ebx, ebx
mov eax, 0xfffffff7
jmp 0x86595c
push ebx
call 0x72de9c
mov dword [esp + 0xc8], eax
test eax, eax
jne 0x865bfe
xor esi, esi
xor eax, eax
mov dword [esp + 0x98], esi
xor ebx, ebx
mov dword [esp + 0xc4], eax
xor ebp, ebp
mov dword [esp + 0x94], eax
xor edi, edi
mov eax, 0xfffffff7
mov dword [esp + 0xc0], esi
mov dword [esp + 0x90], ebx
mov dword [esp + 0x8c], ebp
mov dword [esp + 0x84], edi
jmp 0x86595c
mov eax, dword [esp + 0x108]
push eax
call 0x72de9c
mov dword [esp + 0xc4], eax
test eax, eax
jne 0x865c54
xor esi, esi
xor eax, eax
mov dword [esp + 0x98], esi
xor ebx, ebx
mov dword [esp + 0x94], eax
xor ebp, ebp
mov dword [esp + 0xc0], eax
xor edi, edi
mov eax, 0xfffffff7
mov dword [esp + 0x90], esi
mov dword [esp + 0x8c], ebx
mov dword [esp + 0x84], ebp
jmp 0x86595c
mov eax, dword [esp + 0x108]
push eax
call 0x72de9c
mov dword [esp + 0xc0], eax
test eax, eax
jne 0x865ca3
xor esi, esi
xor eax, eax
mov dword [esp + 0x98], esi
mov dword [esp + 0x94], eax
xor ebx, ebx
xor ebp, ebp
mov dword [esp + 0x90], eax
xor edi, edi
mov eax, 0xfffffff7
mov dword [esp + 0x8c], esi
mov dword [esp + 0x84], ebx
jmp 0x86595c
push ebx
call 0x72de9c
mov dword [esp + 0x98], eax
test eax, eax
jne 0x865ce4
xor esi, esi
xor eax, eax
mov dword [esp + 0x94], esi
mov dword [esp + 0x90], eax
xor ebp, ebp
xor edi, edi
mov dword [esp + 0x8c], eax
xor ebx, ebx
mov eax, 0xfffffff7
mov dword [esp + 0x84], esi
jmp 0x86595c
mov eax, dword [esp + 0x108]
push eax
call 0x72de9c
mov dword [esp + 0x94], eax
test eax, eax
jne 0x865d25
xor esi, esi
xor eax, eax
mov dword [esp + 0x90], esi
xor ebp, ebp
mov dword [esp + 0x8c], eax
xor edi, edi
xor ebx, ebx
mov dword [esp + 0x84], eax
mov eax, 0xfffffff7
jmp 0x86595c
mov eax, dword [esp + 0x108]
push eax
call 0x72de9c
mov dword [esp + 0x90], eax
test eax, eax
je 0x865b86
xor esi, esi
xor ebp, ebp
mov dword [esp + 0x8c], esi
xor edi, edi
mov dword [esp + 0x84], esi
xor ebx, ebx
jmp 0x86552c
mov edx, dword [esp + 0x74]
cmp ebx, edx
jge 0x86570b
mov esi, dword [esp + 0x70]
mov edi, dword [esp + 0x6c]
mov dword [esp + 0x70], edi
mov ecx, dword [esp + 0x68]
mov dword [esp + 0x6c], esi
mov edx, dword [esp + 0x64]
mov edi, dword [esp + 0x88]
mov dword [esp + 0x68], edx
mov edx, dword [esp + 0x60]
mov dword [esp + 0x64], ecx
mov eax, dword [esp + 0xe0]
mov dword [esp + 0x60], edi
mov edi, dword [esp + 0xec]
lea eax, [edi + eax]
mov dword [esp + 0x88], edx
add eax, ebx
push edx
push ecx
push esi
mov edx, dword [esp + 0xbc]
push edx
mov edx, dword [esp + 0xc8]
push edx
mov edx, dword [esp + 0xbc]
push edx
mov edx, dword [esp + 0xd4]
push edx
mov edx, dword [esp + 0x124]
push edx
push eax
call fcn.0086aedc
add esp, 0x24
mov edx, dword [esp + 0x74]
add edx, dword [esp + 0xec]
cmp ebx, edx
jge 0x865707
mov edx, dword [esp + 0xe0]
lea eax, [edx + ebx]
mov ecx, dword [esp + 0x60]
push ecx
mov esi, dword [esp + 0x6c]
push esi
mov edi, dword [esp + 0x78]
push edi
mov edx, dword [esp + 0xbc]
push edx
mov edx, dword [esp + 0xc8]
push edx
mov edx, dword [esp + 0xbc]
push edx
mov edx, dword [esp + 0xd4]
push edx
mov edx, dword [esp + 0x124]
push edx
push eax
call fcn.0086aedc
add esp, 0x24
jmp 0x865707
fld qword [esp + 0x110]
fld1
fdivr st(1), st(0)
fdiv qword [esp + 0x118]
mov eax, dword [esp + 0x10c]
test eax, eax
fld qword [0x8a0150]
fld st(0)
fmul st(3)
fxch st(1)
fmul st(2)
jle 0x865f99
mov ecx, dword [esp + 0xa4]
mov eax, dword [esp + 0x10c]
lea edx, [ecx + eax*4]
mov ebp, dword [esp + 0xec]
fld qword [0x8a0158]
fadd st(1)
call fcn.008481a0
imul eax, ebp
mov dword [ecx], eax
fadd st(2)
add ecx, 4
cmp ecx, edx
jb 0x865e8e
fstp st(0)
fstp st(1)
mov eax, dword [esp + 0x108]
test eax, eax
jle 0x865f34
xor edx, edx
mov ecx, dword [esp + 0xa8]
mov ebp, dword [esp + 0xbc]
mov esi, dword [esp + 0x108]
fld qword [0x8a0158]
fadd st(1)
call fcn.008481a0
lea edi, [eax + eax]
mov dword [ebp + edx*4], edi
shl eax, 2
fadd st(1)
mov dword [ecx + edx*4], eax
inc edx
cmp edx, esi
jl 0x865ecf
cmp edx, ebx
jge 0x865f14
mov ecx, dword [esp + 0xbc]
fld qword [0x8a0158]
fadd st(1)
call fcn.008481a0
add eax, eax
mov dword [ecx + edx*4], eax
inc edx
fadd st(1)
cmp edx, ebx
jl 0x865efb
fstp st(0)
fstp st(0)
xor eax, eax
mov dword [esp + 0xac], eax
mov dword [esp + 0xb8], eax
mov dword [esp + 0xb0], eax
jmp 0x86529e
xor edx, edx
jmp 0x865ef0
xor esi, esi
xor eax, eax
mov dword [esp + 0xac], esi
xor ebx, ebx
mov dword [esp + 0xb8], eax
xor ebp, ebp
xor edi, edi
mov dword [esp + 0xb0], eax
mov dword [esp + 0xc8], eax
mov dword [esp + 0x98], ebx
mov dword [esp + 0xc4], ebp
mov dword [esp + 0x94], 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 0x865967
fstp st(0)
fstp st(1)
jmp 0x865ead