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

Disassembly:
jmp 0x8fa0f0
sub esp, 0x6c
mov eax, dword [0xa0b130]
xor eax, esp
mov dword [esp + 0x68], eax
mov eax, dword [esp + 0x70]
push ebx
push ebp
push esi
mov esi, dword [esp + 0x84]
mov ecx, esi
mov dword [esp + 0x20], eax
mov eax, 0x66666667
push edi
mov edi, dword [esp + 0x84]
sub ecx, edi
push dword [esp + 0x8c]
imul ecx
mov dword [esp + 0x24], edi
sar edx, 5
mov eax, edx
mov dword [esp + 0x1c], esi
shr eax, 0x1f
add eax, edx
sar eax, 1
lea ebp, [eax + eax*4]
lea eax, [esi - 0x50]
shl ebp, 4
push eax
add ebp, edi
push ebp
push edi
call fcn.00406dfc
add esp, 0x10
lea ebx, [ebp + 0x50]
cmp edi, ebp
jae 0x8fa17b
movsd xmm1, qword [ebp]
movsd xmm0, qword [ebp - 0x50]
comisd xmm1, xmm0
ja 0x8fa17b
comisd xmm0, xmm1
ja 0x8fa17b
add ebp, 0xffffffb0
movaps xmm1, xmm0
cmp edi, ebp
jb 0x8fa160
cmp ebx, esi
jae 0x8fa19b
movsd xmm1, qword [ebp]
movsd xmm0, qword [ebx]
comisd xmm1, xmm0
ja 0x8fa19b
comisd xmm0, xmm1
ja 0x8fa19b
add ebx, 0x50
cmp ebx, esi
jb 0x8fa184
mov edx, ebp
mov edi, ebx
mov dword [esp + 0x10], edx
mov dword [esp + 0x14], edi
cmp edi, esi
jae 0x8fa2f0
mov edx, dword [esp + 0x18]
lea eax, [ebx + 0x38]
lea ecx, [ebx + 0x20]
mov dword [esp + 0x1c], eax
lea esi, [edi + 0x20]
mov dword [esp + 0x14], ecx
nop dword [eax]
nop dword [eax + eax]
movsd xmm1, qword [ebp]
movsd xmm0, qword [edi]
comisd xmm0, xmm1
ja 0x8fa2da
comisd xmm1, xmm0
ja 0x8fa2e8
cmp ebx, edi
je 0x8fa2c9
movups xmm0, xmmword [ebx]
push ecx
lea ecx, [esp + 0x4c]
movups xmmword [esp + 0x2c], xmm0
movups xmm0, xmmword [ebx + 0x10]
movups xmmword [esp + 0x3c], xmm0
call fcn.0040c00e
push dword [esp + 0x1c]
lea ecx, [esp + 0x64]
call fcn.0040c00e
movups xmm0, xmmword [edi]
mov ecx, dword [esp + 0x14]
movups xmmword [ebx], xmm0
movups xmm0, xmmword [edi + 0x10]
movups xmmword [ebx + 0x10], xmm0
cmp ecx, esi
je 0x8fa246
cmp dword [esi + 0x14], 0x10
mov eax, esi
jb 0x8fa23d
mov eax, dword [esi]
push dword [esi + 0x10]
push eax
call fcn.00408698
mov eax, dword [esp + 0x1c]
lea ecx, [esi + 0x18]
cmp eax, ecx
je 0x8fa266
cmp dword [esi + 0x2c], 0x10
mov edx, ecx
jb 0x8fa25b
mov edx, dword [ecx]
push dword [esi + 0x28]
mov ecx, eax
push edx
call fcn.00408698
movups xmm0, xmmword [esp + 0x28]
lea eax, [esp + 0x48]
movups xmmword [edi], xmm0
movups xmm0, xmmword [esp + 0x38]
movups xmmword [edi + 0x10], xmm0
cmp esi, eax
je 0x8fa295
cmp dword [esp + 0x5c], 0x10
mov ecx, esi
push dword [esp + 0x58]
cmovae eax, dword [esp + 0x4c]
push eax
call fcn.00408698
lea eax, [esp + 0x60]
lea ecx, [esi + 0x18]
cmp ecx, eax
je 0x8fa2b4
cmp dword [esp + 0x74], 0x10
push dword [esp + 0x70]
cmovae eax, dword [esp + 0x64]
push eax
call fcn.00408698
lea ecx, [esp + 0x28]
call fcn.0040c419
mov ecx, dword [esp + 0x14]
mov eax, dword [esp + 0x1c]
mov edx, dword [esp + 0x18]
add ecx, 0x50
add ebx, 0x50
add eax, 0x50
mov dword [esp + 0x14], ecx
mov dword [esp + 0x1c], eax
add edi, 0x50
add esi, 0x50
cmp edi, edx
jb 0x8fa1d0
mov edx, dword [esp + 0x10]
mov dword [esp + 0x14], edi
mov ecx, dword [esp + 0x20]
cmp edx, ecx
jbe 0x8fa41b
lea edi, [ebp + 0x38]
lea esi, [edx - 0x30]
movsd xmm1, qword [esi - 0x20]
movsd xmm0, qword [ebp]
comisd xmm0, xmm1
ja 0x8fa403
comisd xmm1, xmm0
ja 0x8fa415
sub ebp, 0x50
lea eax, [esi - 0x20]
sub edi, 0x50
cmp ebp, eax
je 0x8fa403
movups xmm0, xmmword [ebp]
lea eax, [edi - 0x18]
push eax
movups xmmword [esp + 0x2c], xmm0
lea ecx, [esp + 0x4c]
movups xmm0, xmmword [ebp + 0x10]
movups xmmword [esp + 0x3c], xmm0
call fcn.0040c00e
push edi
lea ecx, [esp + 0x64]
call fcn.0040c00e
movups xmm0, xmmword [esi - 0x20]
lea eax, [edi - 0x18]
movups xmmword [ebp], xmm0
movups xmm0, xmmword [esi - 0x10]
movups xmmword [ebp + 0x10], xmm0
cmp eax, esi
je 0x8fa387
cmp dword [esi + 0x14], 0x10
mov eax, esi
jb 0x8fa37b
mov eax, dword [esi]
push dword [esi + 0x10]
lea ecx, [edi - 0x18]
push eax
call fcn.00408698
lea eax, [esi + 0x18]
cmp edi, eax
je 0x8fa3a3
cmp dword [esi + 0x2c], 0x10
mov ecx, eax
jb 0x8fa398
mov ecx, dword [eax]
push dword [esi + 0x28]
push ecx
mov ecx, edi
call fcn.00408698
movups xmm0, xmmword [esp + 0x28]
lea eax, [esp + 0x48]
movups xmmword [esi - 0x20], xmm0
movups xmm0, xmmword [esp + 0x38]
movups xmmword [esi - 0x10], xmm0
cmp esi, eax
je 0x8fa3d3
cmp dword [esp + 0x5c], 0x10
mov ecx, esi
push dword [esp + 0x58]
cmovae eax, dword [esp + 0x4c]
push eax
call fcn.00408698
lea eax, [esp + 0x60]
lea ecx, [esi + 0x18]
cmp ecx, eax
je 0x8fa3f2
cmp dword [esp + 0x74], 0x10
push dword [esp + 0x70]
cmovae eax, dword [esp + 0x64]
push eax
call fcn.00408698
lea ecx, [esp + 0x28]
call fcn.0040c419
mov edx, dword [esp + 0x10]
mov ecx, dword [esp + 0x20]
sub edx, 0x50
sub esi, 0x50
mov dword [esp + 0x10], edx
cmp ecx, edx
jb 0x8fa302
mov edi, dword [esp + 0x14]
cmp edx, ecx
jne 0x8fa5df
cmp edi, dword [esp + 0x18]
je 0x8fa894
cmp ebx, edi
je 0x8fa4fe
movups xmm0, xmmword [ebp]
lea esi, [ebp + 0x20]
push esi
movups xmmword [esp + 0x2c], xmm0
lea ecx, [esp + 0x4c]
movups xmm0, xmmword [ebp + 0x10]
movups xmmword [esp + 0x3c], xmm0
call fcn.0040c00e
lea eax, [ebp + 0x38]
push eax
lea ecx, [esp + 0x64]
call fcn.0040c00e
movups xmm0, xmmword [ebx]
lea eax, [ebx + 0x20]
movups xmmword [ebp], xmm0
movups xmm0, xmmword [ebx + 0x10]
movups xmmword [ebp + 0x10], xmm0
cmp esi, eax
je 0x8fa48a
cmp dword [eax + 0x14], 0x10
mov edx, eax
jb 0x8fa47f
mov edx, dword [eax]
push dword [eax + 0x10]
mov ecx, esi
push edx
call fcn.00408698
lea esi, [ebx + 0x38]
lea ecx, [ebp + 0x38]
cmp ecx, esi
je 0x8fa4a7
cmp dword [esi + 0x14], 0x10
mov eax, esi
jb 0x8fa49e
mov eax, dword [esi]
push dword [esi + 0x10]
push eax
call fcn.00408698
movups xmm0, xmmword [esp + 0x28]
lea eax, [esp + 0x48]
lea ecx, [ebx + 0x20]
movups xmmword [ebx], xmm0
movups xmm0, xmmword [esp + 0x38]
movups xmmword [ebx + 0x10], xmm0
cmp ecx, eax
je 0x8fa4d7
cmp dword [esp + 0x5c], 0x10
push dword [esp + 0x58]
cmovae eax, dword [esp + 0x4c]
push eax
call fcn.00408698
lea eax, [esp + 0x60]
cmp esi, eax
je 0x8fa4f5
cmp dword [esp + 0x74], 0x10
mov ecx, esi
push dword [esp + 0x70]
cmovae eax, dword [esp + 0x64]
push eax
call fcn.00408698
lea ecx, [esp + 0x28]
call fcn.0040c419
movups xmm0, xmmword [ebp]
lea esi, [ebp + 0x20]
add ebx, 0x50
push esi
movups xmmword [esp + 0x2c], xmm0
lea ecx, [esp + 0x4c]
movups xmm0, xmmword [ebp + 0x10]
movups xmmword [esp + 0x3c], xmm0
call fcn.0040c00e
lea eax, [ebp + 0x38]
push eax
lea ecx, [esp + 0x64]
call fcn.0040c00e
movups xmm0, xmmword [edi]
lea eax, [edi + 0x20]
movups xmmword [ebp], xmm0
movups xmm0, xmmword [edi + 0x10]
movups xmmword [ebp + 0x10], xmm0
cmp esi, eax
je 0x8fa558
cmp dword [eax + 0x14], 0x10
mov edx, eax
jb 0x8fa54d
mov edx, dword [eax]
push dword [eax + 0x10]
mov ecx, esi
push edx
call fcn.00408698
lea esi, [edi + 0x38]
lea ecx, [ebp + 0x38]
cmp ecx, esi
je 0x8fa575
cmp dword [esi + 0x14], 0x10
mov eax, esi
jb 0x8fa56c
mov eax, dword [esi]
push dword [esi + 0x10]
push eax
call fcn.00408698
movups xmm0, xmmword [esp + 0x28]
lea eax, [esp + 0x48]
lea ecx, [edi + 0x20]
movups xmmword [edi], xmm0
movups xmm0, xmmword [esp + 0x38]
movups xmmword [edi + 0x10], xmm0
cmp ecx, eax
je 0x8fa5a5
cmp dword [esp + 0x5c], 0x10
push dword [esp + 0x58]
cmovae eax, dword [esp + 0x4c]
push eax
call fcn.00408698
lea eax, [esp + 0x60]
cmp esi, eax
je 0x8fa5c3
cmp dword [esp + 0x74], 0x10
mov ecx, esi
push dword [esp + 0x70]
cmovae eax, dword [esp + 0x64]
push eax
call fcn.00408698
lea ecx, [esp + 0x28]
call fcn.0040c419
mov edx, dword [esp + 0x10]
add ebp, 0x50
mov esi, dword [esp + 0x18]
add edi, 0x50
jmp 0x8fa1a3
add edx, 0xffffffb0
mov dword [esp + 0x10], edx
cmp edi, dword [esp + 0x18]
jne 0x8fa7ab
sub ebp, 0x50
cmp edx, ebp
je 0x8fa6d0
movups xmm0, xmmword [edx]
lea eax, [edx + 0x20]
push eax
movups xmmword [esp + 0x2c], xmm0
lea ecx, [esp + 0x4c]
movups xmm0, xmmword [edx + 0x10]
movups xmmword [esp + 0x3c], xmm0
call fcn.0040c00e
mov esi, dword [esp + 0x10]
lea ecx, [esp + 0x60]
lea eax, [esi + 0x38]
push eax
mov dword [esp + 0x20], eax
call fcn.0040c00e
movups xmm0, xmmword [ebp]
lea eax, [ebp + 0x20]
lea ecx, [esi + 0x20]
movups xmmword [esi], xmm0
movups xmm0, xmmword [ebp + 0x10]
movups xmmword [esi + 0x10], xmm0
cmp ecx, eax
je 0x8fa65a
cmp dword [eax + 0x14], 0x10
mov edx, eax
jb 0x8fa651
mov edx, dword [eax]
push dword [eax + 0x10]
push edx
call fcn.00408698
mov ecx, dword [esp + 0x1c]
lea esi, [ebp + 0x38]
cmp ecx, esi
je 0x8fa678
cmp dword [esi + 0x14], 0x10
mov eax, esi
jb 0x8fa66f
mov eax, dword [esi]
push dword [esi + 0x10]
push eax
call fcn.00408698
movups xmm0, xmmword [esp + 0x28]
lea eax, [esp + 0x48]
lea ecx, [ebp + 0x20]
movups xmmword [ebp], xmm0
movups xmm0, xmmword [esp + 0x38]
movups xmmword [ebp + 0x10], xmm0
cmp ecx, eax
je 0x8fa6a9
cmp dword [esp + 0x5c], 0x10
push dword [esp + 0x58]
cmovae eax, dword [esp + 0x4c]
push eax
call fcn.00408698
lea eax, [esp + 0x60]
cmp esi, eax
je 0x8fa6c7
cmp dword [esp + 0x74], 0x10
mov ecx, esi
push dword [esp + 0x70]
cmovae eax, dword [esp + 0x64]
push eax
call fcn.00408698
lea ecx, [esp + 0x28]
call fcn.0040c419
movups xmm0, xmmword [ebp]
lea esi, [ebp + 0x20]
sub ebx, 0x50
push esi
movups xmmword [esp + 0x2c], xmm0
lea ecx, [esp + 0x4c]
movups xmm0, xmmword [ebp + 0x10]
movups xmmword [esp + 0x3c], xmm0
call fcn.0040c00e
lea eax, [ebp + 0x38]
push eax
lea ecx, [esp + 0x64]
call fcn.0040c00e
movups xmm0, xmmword [ebx]
lea eax, [ebx + 0x20]
movups xmmword [ebp], xmm0
movups xmm0, xmmword [ebx + 0x10]
movups xmmword [ebp + 0x10], xmm0
cmp esi, eax
je 0x8fa72a
cmp dword [eax + 0x14], 0x10
mov edx, eax
jb 0x8fa71f
mov edx, dword [eax]
push dword [eax + 0x10]
mov ecx, esi
push edx
call fcn.00408698
lea esi, [ebx + 0x38]
lea ecx, [ebp + 0x38]
cmp ecx, esi
je 0x8fa747
cmp dword [esi + 0x14], 0x10
mov eax, esi
jb 0x8fa73e
mov eax, dword [esi]
push dword [esi + 0x10]
push eax
call fcn.00408698
movups xmm0, xmmword [esp + 0x28]
lea eax, [esp + 0x48]
lea ecx, [ebx + 0x20]
movups xmmword [ebx], xmm0
movups xmm0, xmmword [esp + 0x38]
movups xmmword [ebx + 0x10], xmm0
cmp ecx, eax
je 0x8fa777
cmp dword [esp + 0x5c], 0x10
push dword [esp + 0x58]
cmovae eax, dword [esp + 0x4c]
push eax
call fcn.00408698
lea eax, [esp + 0x60]
cmp esi, eax
je 0x8fa795
cmp dword [esp + 0x74], 0x10
mov ecx, esi
push dword [esp + 0x70]
cmovae eax, dword [esp + 0x64]
push eax
call fcn.00408698
lea ecx, [esp + 0x28]
call fcn.0040c419
mov edx, dword [esp + 0x10]
mov esi, dword [esp + 0x18]
jmp 0x8fa1a7
movups xmm0, xmmword [edi]
lea esi, [edi + 0x20]
mov dword [esp + 0x10], edx
push esi
movups xmmword [esp + 0x2c], xmm0
lea ecx, [esp + 0x4c]
movups xmm0, xmmword [edi + 0x10]
movups xmmword [esp + 0x3c], xmm0
call fcn.0040c00e
lea eax, [edi + 0x38]
push eax
lea ecx, [esp + 0x64]
call fcn.0040c00e
mov edx, dword [esp + 0x10]
movups xmm0, xmmword [edx]
lea eax, [edx + 0x20]
movups xmmword [edi], xmm0
movups xmm0, xmmword [edx + 0x10]
movups xmmword [edi + 0x10], xmm0
cmp esi, eax
je 0x8fa80c
cmp dword [eax + 0x14], 0x10
mov edx, eax
jb 0x8fa7fd
mov edx, dword [eax]
push dword [eax + 0x10]
mov ecx, esi
push edx
call fcn.00408698
mov edx, dword [esp + 0x10]
lea esi, [edx + 0x38]
lea ecx, [edi + 0x38]
cmp ecx, esi
je 0x8fa82d
cmp dword [esi + 0x14], 0x10
mov eax, esi
jb 0x8fa820
mov eax, dword [esi]
push dword [esi + 0x10]
push eax
call fcn.00408698
mov edx, dword [esp + 0x10]
movups xmm0, xmmword [esp + 0x28]
lea eax, [esp + 0x48]
lea ecx, [edx + 0x20]
movups xmmword [edx], xmm0
movups xmm0, xmmword [esp + 0x38]
movups xmmword [edx + 0x10], xmm0
cmp ecx, eax
je 0x8fa85d
cmp dword [esp + 0x5c], 0x10
push dword [esp + 0x58]
cmovae eax, dword [esp + 0x4c]
push eax
call fcn.00408698
lea eax, [esp + 0x60]
cmp esi, eax
je 0x8fa87b
cmp dword [esp + 0x74], 0x10
mov ecx, esi
push dword [esp + 0x70]
cmovae eax, dword [esp + 0x64]
push eax
call fcn.00408698
lea ecx, [esp + 0x28]
call fcn.0040c419
mov edx, dword [esp + 0x10]
add edi, 0x50
mov esi, dword [esp + 0x18]
jmp 0x8fa1a3
mov eax, dword [esp + 0x24]
mov ecx, dword [esp + 0x78]
pop edi
pop esi
mov dword [eax], ebp
pop ebp
mov dword [eax + 4], ebx
pop ebx
xor ecx, esp
call fcn.004087b5
add esp, 0x6c
ret