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

Disassembly:
sub esp, 0xa8
push ebx
push ebp
push esi
push edi
mov edi, ecx
mov ebp, 5
mov dword [esp + 0x10], edi
xor esi, esi
nop word [eax + eax]
movzx eax, word [esi + 0x49b540]
xorps xmm0, xmm0
mov dword [esp + 0x48], eax
mov ecx, edi
lea eax, [esp + 0x48]
movq qword [esp + 0x4c], xmm0
push eax
mov edx, eax
mov dword [esp + 0x58], 0
call fcn.00410da0
add esp, 4
xor eax, eax
nop
cmp dword [esp + eax*4 + 0x48], 0
jne 0x40f58a
inc eax
cmp eax, 4
jb 0x40f570
pop edi
pop esi
pop ebp
xor al, al
pop ebx
add esp, 0xa8
ret
add esi, 4
cmp esi, 0x200
jb 0x40f540
movups xmm0, xmmword [edi]
xor edx, edx
movups xmmword [esp + 0x38], xmm0
nop
mov ecx, dword [esp + edx*4 + 0x38]
lea eax, [ecx - 1]
mov dword [esp + edx*4 + 0x38], eax
test ecx, ecx
jne 0x40f5b5
inc edx
cmp edx, 4
jb 0x40f5a0
movups xmm0, xmmword [esp + 0x38]
xor ebx, ebx
movd eax, xmm0
movups xmmword [esp + 0x18], xmm0
test al, 1
jne 0x40f624
mov ebx, dword [esp + 0x24]
xor ebp, ebp
mov esi, dword [esp + 0x20]
mov edi, dword [esp + 0x1c]
mov edx, dword [esp + 0x18]
nop dword [eax + eax]
mov eax, ebx
shr edx, 1
shl eax, 0x1f
mov ecx, esi
shr esi, 1
inc ebp
or esi, eax
shl ecx, 0x1f
mov eax, edi
shr ebx, 1
shl eax, 0x1f
shr edi, 1
or edx, eax
or edi, ecx
test dl, 1
je 0x40f5e0
mov dword [esp + 0x14], ebp
mov ebp, 5
mov dword [esp + 0x1c], edi
mov edi, dword [esp + 0x10]
mov dword [esp + 0x24], ebx
mov ebx, dword [esp + 0x14]
mov dword [esp + 0x18], edx
mov dword [esp + 0x20], esi
xorps xmm0, xmm0
mov dword [esp + 0x58], 1
movq qword [esp + 0x5c], xmm0
movups xmm0, xmmword [edi]
mov dword [esp + 0x64], 0
movups xmmword [esp + 0x98], xmm0
xorps xmm0, xmm0
movups xmmword [esp + 0xa8], xmm0
dec ebp
xor esi, esi
call fcn.00411260
mov dword [esp + esi*4 + 0x68], eax
inc esi
cmp esi, 4
jl 0x40f656
lea eax, [esp + 0x68]
push eax
lea edx, [esp + 0x3c]
mov ecx, eax
call fcn.00410da0
lea eax, [esp + 0x2c]
push eax
push edi
lea edx, [esp + 0x24]
lea ecx, [esp + 0x74]
call fcn.0040eab0
add esp, 0xc
lea ecx, [esp + 0x28]
lea edx, [esp + 0x58]
mov esi, 0xc
mov eax, dword [ecx]
cmp eax, dword [edx]
jne 0x40f6ad
add ecx, 4
add edx, 4
sub esi, 4
jae 0x40f698
xor eax, eax
jmp 0x40f6d2
cmp al, byte [edx]
jne 0x40f6cd
mov al, byte [ecx + 1]
cmp al, byte [edx + 1]
jne 0x40f6cd
mov al, byte [ecx + 2]
cmp al, byte [edx + 2]
jne 0x40f6cd
mov al, byte [ecx + 3]
cmp al, byte [edx + 3]
jne 0x40f6cd
xor eax, eax
jmp 0x40f6d2
sbb eax, eax
or eax, 1
test eax, eax
je 0x40f80d
lea ecx, [esp + 0x28]
mov esi, 0xc
lea edx, [esp + 0x38]
mov eax, dword [ecx]
cmp eax, dword [edx]
jne 0x40f6fc
add ecx, 4
add edx, 4
sub esi, 4
jae 0x40f6e7
xor eax, eax
jmp 0x40f721
cmp al, byte [edx]
jne 0x40f71c
mov al, byte [ecx + 1]
cmp al, byte [edx + 1]
jne 0x40f71c
mov al, byte [ecx + 2]
cmp al, byte [edx + 2]
jne 0x40f71c
mov al, byte [ecx + 3]
cmp al, byte [edx + 3]
jne 0x40f71c
xor eax, eax
jmp 0x40f721
sbb eax, eax
or eax, 1
test eax, eax
je 0x40f80d
mov edi, ebx
cmp ebx, 1
jbe 0x40f7e7
dec edi
lea edx, [esp + 0x28]
lea eax, [esp + 0x38]
mov esi, 0xc
mov ecx, dword [edx]
cmp ecx, dword [eax]
jne 0x40f757
add edx, 4
add eax, 4
sub esi, 4
jae 0x40f742
xor eax, eax
jmp 0x40f77c
cmp cl, byte [eax]
jne 0x40f777
mov cl, byte [edx + 1]
cmp cl, byte [eax + 1]
jne 0x40f777
mov cl, byte [edx + 2]
cmp cl, byte [eax + 2]
jne 0x40f777
mov cl, byte [edx + 3]
cmp cl, byte [eax + 3]
jne 0x40f777
xor eax, eax
jmp 0x40f77c
sbb eax, eax
or eax, 1
test eax, eax
je 0x40f7e7
lea eax, [esp + 0x78]
lea edx, [esp + 0x28]
push eax
mov ecx, edx
call fcn.0040e310
lea eax, [esp + 0x7c]
push eax
lea edx, [esp + 0xa0]
mov ecx, eax
call fcn.0040e700
movups xmm0, xmmword [esp + 0x80]
add esp, 8
lea ecx, [esp + 0x28]
lea edx, [esp + 0x58]
mov esi, 0xc
movups xmmword [esp + 0x28], xmm0
mov eax, dword [ecx]
cmp eax, dword [edx]
jne 0x40f7de
add ecx, 4
add edx, 4
sub esi, 4
jae 0x40f7c0
pop edi
pop esi
pop ebp
xor al, al
pop ebx
add esp, 0xa8
ret
cmp edi, 1
ja 0x40f734
lea ecx, [esp + 0x28]
mov esi, 0xc
lea edx, [esp + 0x38]
mov eax, dword [ecx]
cmp eax, dword [edx]
jne 0x40f57d
add ecx, 4
add edx, 4
sub esi, 4
jae 0x40f7f4
mov edi, dword [esp + 0x10]
test ebp, ebp
jne 0x40f653
pop edi
pop esi
pop ebp
mov al, 1
pop ebx
add esp, 0xa8
ret