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

Disassembly:
push ebp
mov ebp, esp
push ebx
push edi
push esi
and esp, 0xfffffff8
sub esp, 0xa8
mov esi, esp
mov dword [esi + 0x90], ebp
mov dword [esi + 0x94], esp
mov dword [esi + 0xa0], 0xffffffff
mov dword [esi + 0x9c], 0x10088f70
mov eax, dword [ebp + 0xc]
lea ecx, [esi + 0x98]
mov edx, dword fs:[0]
mov dword [esi + 0x98], edx
mov dword fs:[0], ecx
lea ecx, [esi + 0x18]
push eax
push ecx
call fcn.10001b60
add esp, 8
mov ebx, dword [esi + 0x18]
mov edi, dword [esi + 0x1c]
mov eax, dword [esi + 0x24]
movdqa xmm0, xmmword [ebx]
test edi, edi
mov dword [esi + 0xc], eax
je 0x10086cd3
lea ecx, [edi + 1]
mov edx, 0x18
mov dword [esi + 4], 0
mov eax, ecx
mul edx
jo 0x10086ccd
add eax, 0xf
add edi, 0x11
and eax, 0xfffffff0
add edi, eax
jb 0x10086ccd
cmp edi, 0x7ffffff1
jb 0x10086f8c
mov edx, ebx
sub edx, eax
jmp 0x10086cdf
mov dword [esi + 4], 0
mov ecx, 1
add ecx, ebx
lea eax, [ebx + 0x10]
mov dword [esi + 0x44], ebx
mov dword [esi + 0x48], eax
mov dword [esi + 0x4c], ecx
mov ecx, dword [esi + 0xc]
pmovmskb eax, xmm0
not eax
mov word [esi + 0x50], ax
mov dword [esi + 0x54], ecx
mov dword [esi + 0x38], edx
mov edx, dword [esi + 4]
mov dword [esi + 0x3c], edx
mov dword [esi + 0x40], edi
mov edi, dword [ebp + 8]
lea edx, [ecx + 1]
shr edx, 1
cmp dword [edi + 0xc], 0
cmove edx, ecx
cmp dword [edi + 8], edx
jae 0x10086d3a
mov ecx, dword [ebp + 8]
mov byte [esi + 3], 1
mov dword [esi + 0xa0], 0
lea eax, [ecx + 0x10]
push eax
call fcn.101a87e0
add esp, 4
movsd xmm1, qword [esi + 0x40]
movq xmm0, qword [esi + 0x50]
movsd xmm2, qword [esi + 0x38]
movsd qword [esi + 0x20], xmm1
movsd xmm1, qword [esi + 0x48]
movq qword [esi + 0x30], xmm0
movsd qword [esi + 0x18], xmm2
movsd qword [esi + 0x28], xmm1
mov ecx, dword [esi + 0x34]
mov eax, dword [esi + 0x24]
test ecx, ecx
je 0x10086f31
movzx edi, word [esi + 0x30]
mov edx, dword [esi + 0x28]
mov dword [esi + 0x10], edx
jmp 0x10086d91
mov ecx, dword [esi + 4]
mov eax, dword [esi + 0xc]
mov edi, dword [esi + 8]
test ecx, ecx
je 0x10086f3c
test di, di
mov dword [esi + 4], ecx
je 0x10086db0
lea edx, [edi - 1]
and edx, edi
test eax, eax
jne 0x10086de6
jmp 0x10086f42
mov ecx, dword [esi + 0x10]
nop word cs:[eax + eax]
nop dword [eax]
movdqa xmm0, xmmword [ecx]
add eax, 0xfffffe80
add ecx, 0x10
pmovmskb edi, xmm0
cmp di, 0xffff
je 0x10086dc0
mov ebx, 0xfffffffe
mov dword [esi + 0x10], ecx
sub ebx, edi
not edi
mov edx, edi
and edx, ebx
mov ecx, edi
mov dword [esi + 8], edx
tzcnt ecx, ecx
neg ecx
lea ebx, [ecx + ecx*2]
mov ecx, dword [eax + ebx*8 - 0x14]
mov edx, dword [eax + ebx*8 - 0x18]
mov edi, dword [eax + ebx*8 - 0x10]
mov dword [esi + 0x14], ecx
mov ecx, eax
mov eax, dword [ecx + ebx*8 - 4]
mov dword [esi + 0xc], ecx
mov dword [esi + 0x60], eax
mov eax, dword [esi + 8]
movsd xmm0, qword [ecx + ebx*8 - 0xc]
mov ecx, dword [esi + 4]
dec ecx
test edx, edx
movsd qword [esi + 0x58], xmm0
je 0x10086f35
mov dword [esi + 8], eax
mov eax, dword [esi + 0x60]
movq xmm0, qword [esi + 0x58]
mov dword [esi + 0x68], edx
mov dword [esi + 4], ecx
mov dword [esi + 0x70], edi
mov dword [esi + 0xa0], 1
mov dword [esi + 0x88], eax
mov eax, dword [esi + 0x14]
movq qword [esi + 0x80], xmm0
mov dword [esi + 0x6c], eax
lea eax, [esi + 0x80]
push eax
lea eax, [esi + 0x68]
push eax
push dword [ebp + 8]
lea eax, [esi + 0x74]
push eax
call fcn.10084620
add esp, 0x10
mov eax, dword [esi + 0x74]
test eax, eax
mov dword [esi + 0x14], eax
je 0x10086d80
mov ebx, dword [esi + 0x7c]
test ebx, ebx
je 0x10086f10
mov eax, dword [esi + 0x14]
lea edi, [eax + 0x30]
jmp 0x10086ea6
add edi, 0x38
dec ebx
je 0x10086f10
mov eax, dword [edi - 0x28]
test eax, eax
je 0x10086ebe
shl eax, 3
push 4
push eax
push dword [edi - 0x2c]
call fcn.100985c0
add esp, 0xc
mov eax, dword [edi - 0x10]
test eax, eax
je 0x10086ed8
mov ecx, dword [edi - 0xc]
test ecx, ecx
je 0x10086ed8
push 1
push ecx
push eax
call fcn.100985c0
add esp, 0xc
mov eax, dword [edi - 0x1c]
test eax, eax
je 0x10086eed
push 1
push eax
push dword [edi - 0x20]
call fcn.100985c0
add esp, 0xc
mov eax, dword [edi - 4]
test eax, eax
je 0x10086ea0
mov ecx, dword [edi]
test ecx, ecx
je 0x10086ea0
push 1
push ecx
push eax
call fcn.100985c0
add esp, 0xc
jmp 0x10086ea0
mov eax, dword [esi + 0x78]
test eax, eax
je 0x10086d80
imul eax, eax, 0x38
push 4
push eax
push dword [esi + 0x14]
call fcn.100985c0
add esp, 0xc
jmp 0x10086d80
xor ecx, ecx
jmp 0x10086f58
mov edx, eax
mov eax, dword [esi + 0xc]
jmp 0x10086f44
xor ecx, ecx
mov edx, edi
jmp 0x10086f44
xor eax, eax
mov edi, dword [esi + 0x10]
mov word [esi + 0x30], dx
mov dword [esi + 0xa0], 0
mov dword [esi + 0x28], edi
mov dword [esi + 0x34], ecx
mov dword [esi + 0x24], eax
lea eax, [esi + 0x18]
mov byte [esi + 3], 0
mov dword [esi + 0xa0], 0
push eax
call fcn.100031f0
add esp, 4
mov eax, dword [esi + 0x98]
mov dword fs:[0], eax
lea esp, [ebp - 0xc]
pop esi
pop edi
pop ebx
pop ebp
ret
mov dword [esi + 4], 0x10
jmp 0x10086ccd