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

Disassembly:
sub esp, 0xbc
mov eax, dword [0x5b3480]
xor eax, esp
mov dword [esp + 0xb8], eax
mov eax, dword [esp + 0xc4]
push ebx
push ebp
mov ebp, dword [esp + 0xc8]
mov edx, dword [esp + 0xd8]
mov dword [esp + 0x6c], eax
push esi
movups xmm1, xmmword [ebp]
mov esi, dword [esp + 0xd8]
movq xmm0, qword [ebp + 0x10]
psrldq xmm1, 0xc
movd eax, xmm1
movq qword [esp + 0xa4], xmm0
push edi
cmp dword [esp + 0xa8], eax
mov edi, dword [esp + 0xd8]
sbb ebx, ebx
mov dword [esp + 0x38], edi
neg ebx
mov dword [esp + 0x10], esi
mov dword [esp + 0x48], ebx
mov ebx, dword [edi + 0xc]
mov esi, dword [edi + 8]
mov edi, dword [edi + 4]
sub edi, esi
mov dword [esp + 0x20], ebp
mov dword [esp + 0x8c], edi
mov edi, dword [ebp + 0xc]
mov dword [esp + 0x54], ebx
mov dword [esp + 0x90], esi
mov dword [esp + 0x4c], edi
cmp dword [esp + 0xa8], eax
jae 0x50f50b
mov ecx, dword [ebp + 0x10]
mov dword [esp + 0x64], ecx
jmp 0x50f50f
mov dword [esp + 0x64], edi
mov eax, dword [esp + 0x48]
mov edi, dword [ebp + 4]
mov dword [esp + 0x3c], edi
test eax, eax
je 0x50f527
mov ecx, dword [ebp + 8]
mov dword [esp + 0x50], ecx
jmp 0x50f52f
mov dword [esp + 0x50], 0
mov esi, dword [esp + 0x10]
mov ecx, eax
mov eax, dword [esp + 0x64]
add eax, dword [esp + 0x50]
neg ecx
sbb ecx, ecx
and ecx, eax
mov eax, dword [esp + 0x4c]
add eax, dword [esp + 0x50]
mov dword [esp + 0x80], ecx
mov ecx, dword [esp + 0x48]
neg ecx
sbb ecx, ecx
add ebp, 0x24
and ecx, eax
mov dword [esp + 0x88], ebp
mov eax, dword [esp + 0x4c]
add eax, edi
mov dword [esp + 0x68], ecx
mov dword [esp + 0x58], eax
lea edi, [edx + esi]
mov dword [esp + 0x2c], edi
lea eax, [edi - 8]
mov dword [esp + 0x94], eax
cmp edx, ebx
jae 0x50f590
mov eax, edx
jmp 0x50fa76
push dword [esp + 0x38]
lea eax, [esp + 0x9c]
push eax
call fcn.0050f1c0
add ebx, esi
lea eax, [edi - 8]
add esp, 8
mov dword [esp + 0x28], ebx
cmp ebx, eax
jae 0x50fa72
nop word [eax + eax]
lea ecx, [esp + 0x40]
mov dword [esp + 0x40], 0
push ecx
push ebp
sub eax, ebx
push eax
lea eax, [esp + 0xa4]
push ebx
push eax
call fcn.0050f010
mov dword [esp + 0x98], eax
add esp, 0x14
mov eax, dword [esp + 0x40]
xor ebp, ebp
test eax, eax
je 0x50f68c
mov ecx, dword [esp + 0x8c]
mov edi, 1
mov ebx, dword [esp + 0x20]
shl edi, cl
dec edi
add ebx, 0x12c
mov dword [esp + 0x44], edi
mov eax, dword [esp + 0x88]
push 0
push 0
mov esi, dword [eax + ebp*4]
mov eax, dword [esp + 0x5c]
sub esi, eax
add esi, dword [esp + 0x30]
push eax
push esi
call fcn.0050aa20
and edi, eax
mov dword [ebx - 8], esi
mov eax, dword [esp + 0x48]
lea ebx, [ebx + 0x10]
mov dword [ebx - 0x14], edi
inc ebp
mov dword [ebx - 0x10], edx
add esp, 0x10
movups xmm1, xmmword [eax]
movq xmm0, qword [eax + 0x10]
psrldq xmm1, 8
movd ecx, xmm1
movq qword [esp + 0xc0], xmm0
shl edi, cl
mov ecx, dword [esp + 0x20]
mov eax, dword [ecx + 0x18]
lea eax, [eax + edi*8]
mov edi, dword [esp + 0x44]
mov dword [ebx - 0xc], eax
mov eax, dword [esp + 0x40]
cmp ebp, eax
jb 0x50f614
mov esi, dword [esp + 0x10]
mov edi, dword [esp + 0x2c]
mov ebx, dword [esp + 0x28]
jmp 0x50f690
mov ecx, dword [esp + 0x20]
mov dword [esp + 0x7c], 0
test eax, eax
je 0x50f9c0
add ecx, 0x128
mov dword [esp + 0x44], ecx
nop word [eax + eax]
mov ebx, dword [ecx - 4]
xor eax, eax
mov ebp, dword [ecx]
mov edx, dword [ecx + 8]
mov dword [esp + 0x1c], eax
mov dword [esp + 0x70], eax
mov dword [esp + 0x6c], eax
mov eax, dword [ecx + 4]
mov dword [esp + 0x14], eax
mov eax, ebx
sub eax, dword [esp + 0x3c]
mov dword [esp + 0x18], ebx
mov dword [esp + 0x78], ebp
mov dword [esp + 0x34], edx
mov dword [esp + 0x24], 0
mov dword [esp + 0x60], eax
cmp ebx, esi
jb 0x50f9ee
mov ecx, dword [esp + 0x90]
mov eax, 8
shl eax, cl
add eax, edx
mov dword [esp + 0x30], eax
cmp edx, eax
jae 0x50f9ee
mov ebp, dword [esp + 0x14]
mov ecx, eax
cmp dword [edx + 4], ebp
jne 0x50f8e4
mov eax, dword [edx]
cmp eax, dword [esp + 0x64]
jbe 0x50f8e4
cmp dword [esp + 0x48], 0
je 0x50f7ef
cmp eax, dword [esp + 0x4c]
mov esi, edi
mov ebx, dword [esp + 0x3c]
mov ecx, edi
cmovb ebx, dword [esp + 0x50]
mov ebp, dword [esp + 0x58]
add ebx, eax
cmp eax, dword [esp + 0x4c]
mov edx, dword [esp + 0x18]
cmovb esi, dword [esp + 0x68]
cmovb ebp, dword [esp + 0x80]
mov eax, esi
sub eax, ebx
add eax, edx
cmp eax, edi
cmovb ecx, eax
push ecx
push ebx
push edx
call fcn.004d5c50
mov edi, eax
add esp, 0xc
lea ecx, [edi + ebx]
cmp ecx, esi
mov esi, dword [esp + 0x18]
jne 0x50f79a
push dword [esp + 0x2c]
lea eax, [edi + esi]
push dword [esp + 0x5c]
push eax
call fcn.004d5c50
add esp, 0xc
add edi, eax
cmp edi, dword [esp + 0x54]
jb 0x50f8d4
push ebp
push ebx
push dword [esp + 0x18]
push esi
call fcn.0050ee50
mov esi, eax
add esp, 0x10
sub ebx, esi
cmp ebx, ebp
jne 0x50f7e8
mov eax, dword [esp + 0x80]
cmp ebp, eax
je 0x50f7e8
mov ebx, dword [esp + 0x18]
push eax
push dword [esp + 0x6c]
mov eax, ebx
push dword [esp + 0x18]
sub eax, esi
push eax
call fcn.0050ee50
add esp, 0x10
lea edx, [esi + eax]
jmp 0x50f89d
mov edx, esi
jmp 0x50f899
mov ebp, dword [esp + 0x3c]
lea esi, [edi - 3]
add ebp, eax
mov eax, ebx
mov edx, ebp
cmp ebx, esi
jae 0x50f834
mov eax, dword [ebx]
xor eax, dword [ebp]
je 0x50f80f
bsf edi, eax
shr edi, 3
jmp 0x50f858
lea eax, [ebx + 4]
lea edx, [ebp + 4]
cmp eax, esi
jae 0x50f834
nop dword [eax]
mov ecx, dword [eax]
xor ecx, dword [edx]
jne 0x50f8c8
add eax, 4
add edx, 4
cmp eax, esi
jb 0x50f820
lea ecx, [edi - 1]
cmp eax, ecx
jae 0x50f849
mov cx, word [edx]
cmp cx, word [eax]
jne 0x50f849
add eax, 2
add edx, 2
cmp eax, edi
jae 0x50f854
mov cl, byte [edx]
cmp cl, byte [eax]
jne 0x50f854
inc eax
mov edi, eax
sub edi, ebx
mov dword [esp + 0x5c], edi
cmp edi, dword [esp + 0x54]
jb 0x50f8d8
xor edx, edx
cmp ebx, dword [esp + 0x10]
jbe 0x50f89d
mov edi, dword [esp + 0x10]
lea ecx, [ebp - 1]
mov esi, ebx
sub ebx, ebp
mov ebp, dword [esp + 0x58]
nop dword [eax]
lea eax, [ecx + 1]
cmp eax, ebp
jbe 0x50f895
mov al, byte [ebx + ecx]
cmp al, byte [ecx]
jne 0x50f895
dec esi
dec ecx
inc edx
cmp esi, edi
ja 0x50f880
mov edi, dword [esp + 0x5c]
mov ebx, dword [esp + 0x18]
mov ecx, dword [esp + 0x30]
lea eax, [edx + edi]
mov ebp, dword [esp + 0x14]
cmp eax, dword [esp + 0x6c]
jbe 0x50f8e0
mov dword [esp + 0x70], edx
mov esi, edi
mov edx, dword [esp + 0x34]
mov dword [esp + 0x6c], eax
mov eax, edx
mov dword [esp + 0x1c], esi
mov dword [esp + 0x24], eax
jmp 0x50f8ec
bsf edi, ecx
shr edi, 3
sub edi, ebx
add edi, eax
jmp 0x50f858
mov ebx, dword [esp + 0x18]
mov ebp, dword [esp + 0x14]
mov ecx, dword [esp + 0x30]
mov edx, dword [esp + 0x34]
mov eax, dword [esp + 0x24]
mov esi, dword [esp + 0x1c]
mov edi, dword [esp + 0x2c]
add edx, 8
mov dword [esp + 0x34], edx
cmp edx, ecx
jb 0x50f715
test eax, eax
je 0x50f9ea
mov edi, dword [esp + 0x74]
mov edx, ebx
sub edx, dword [eax]
sub edx, dword [esp + 0x3c]
mov eax, dword [edi + 0xc]
cmp eax, dword [edi + 0x10]
je 0x50fa6b
lea ecx, [eax + eax*2]
mov ebp, dword [esp + 0x60]
mov eax, dword [edi]
mov edi, dword [esp + 0x70]
mov dword [eax + ecx*4], edx
lea ecx, [eax + ecx*4]
mov eax, ebx
sub eax, edi
sub eax, dword [esp + 0x10]
mov dword [ecx + 4], eax
lea eax, [edi + esi]
mov dword [ecx + 8], eax
mov eax, dword [esp + 0x74]
mov edi, dword [esp + 0x78]
inc dword [eax + 0xc]
mov eax, dword [esp + 0x38]
movups xmm1, xmmword [eax]
movq xmm0, qword [eax + 0x10]
mov eax, dword [esp + 0x20]
psrldq xmm1, 8
movd ecx, xmm1
movq qword [esp + 0xc0], xmm0
mov esi, dword [eax + 0x20]
add esi, edi
shl edi, cl
mov dl, byte [esi]
movzx eax, dl
inc dl
add edi, eax
mov eax, dword [esp + 0x20]
mov eax, dword [eax + 0x18]
mov dword [eax + edi*8], ebp
mov ebp, dword [esp + 0x14]
mov dword [eax + edi*8 + 4], ebp
mov al, 1
shl al, cl
dec al
and al, dl
mov edx, dword [esp + 0x84]
mov byte [esi], al
mov esi, dword [esp + 0x1c]
add esi, ebx
mov ebx, dword [esp + 0x28]
mov dword [esp + 0x10], esi
lea eax, [edx + ebx]
cmp esi, eax
jbe 0x50fa44
mov ebx, esi
sub ebx, edx
add ebx, dword [esp + 0x84]
mov eax, dword [esp + 0x94]
mov edi, dword [esp + 0x2c]
mov dword [esp + 0x28], ebx
cmp ebx, eax
jae 0x50fa72
mov ebp, dword [esp + 0x88]
jmp 0x50f5c0
mov ebp, dword [esp + 0x78]
mov eax, dword [esp + 0x38]
mov ebx, dword [esp + 0x20]
mov edi, dword [esp + 0x14]
movups xmm1, xmmword [eax]
mov esi, dword [ebx + 0x20]
movq xmm0, qword [eax + 0x10]
add esi, ebp
psrldq xmm1, 8
movd ecx, xmm1
movq qword [esp + 0xc0], xmm0
mov dl, byte [esi]
movzx eax, dl
inc dl
shl ebp, cl
add ebp, eax
mov eax, dword [ebx + 0x18]
mov ebx, dword [esp + 0x60]
mov dword [eax + ebp*8], ebx
mov ebx, dword [esp + 0x28]
mov dword [eax + ebp*8 + 4], edi
mov al, 1
shl al, cl
dec al
and al, dl
mov byte [esi], al
mov esi, dword [esp + 0x10]
mov eax, dword [esp + 0x7c]
mov ecx, dword [esp + 0x44]
inc eax
add ecx, 0x10
mov dword [esp + 0x7c], eax
mov dword [esp + 0x44], ecx
cmp eax, dword [esp + 0x40]
jae 0x50f9c0
mov edi, dword [esp + 0x2c]
jmp 0x50f6b0
mov eax, 0xffffffba
jmp 0x50fa76
sub edi, esi
mov eax, edi
mov ecx, dword [esp + 0xc8]
pop edi
pop esi
pop ebp
pop ebx
xor ecx, esp
call fcn.004913e0
add esp, 0xbc
ret