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

Disassembly:
push ebp
mov ebp, esp
and esp, 0xfffffff8
sub esp, 0x74
mov eax, dword [ecx + 0x5c]
mov dword [esp + 0x20], eax
mov eax, dword [ecx + 0xcc]
mov dword [esp + 0xc], edx
xor edx, edx
test eax, eax
push ebx
mov ebx, dword [ebp + 0xc]
sete dl
add edx, eax
mov eax, dword [ecx + 4]
mov dword [esp + 0x1c], eax
mov eax, dword [ecx + 0xc]
mov dword [esp + 0x18], eax
add eax, dword [esp + 0x1c]
mov dword [esp + 0x20], eax
mov eax, dword [ebp + 0x10]
add eax, ebx
mov dword [esp + 0x68], edx
add edx, ebx
mov dword [esp + 8], eax
mov dword [esp + 0xc], edx
mov edx, dword [ebp + 8]
push esi
mov esi, dword [ecx + 0xc0]
mov ecx, dword [ecx + 0xb4]
push edi
lea edi, [eax - 8]
mov eax, dword [edx]
mov dword [esp + 0x1c], eax
mov eax, dword [edx + 4]
mov edx, dword [ecx + 0xc]
mov dword [esp + 0x34], eax
mov eax, dword [ecx + 0x5c]
mov dword [esp + 0x5c], eax
mov eax, dword [ecx + 4]
mov dword [esp + 0x48], eax
mov dword [esp + 0x30], edi
mov edi, dword [ecx]
mov dword [esp + 0x78], edx
add edx, eax
sub eax, edi
mov dword [esp + 0x6c], edx
add eax, dword [esp + 0x20]
mov dword [esp + 0x58], eax
mov eax, edi
sub eax, edx
mov dword [esp + 0x38], edi
sub eax, dword [esp + 0x28]
mov edx, dword [esp + 0x14]
add eax, ebx
mov eax, dword [ebp + 0xc]
mov ebx, 0
sete bl
add ebx, eax
cmp edx, dword [esp + 0x30]
ja 0x10050b46
mov eax, 0x20
sub eax, esi
mov dword [esp + 0x3c], eax
mov eax, 0x18
sub eax, dword [ecx + 0xc0]
mov dword [esp + 0x74], eax
nop
imul edx, dword [ebx], 0x9e3779b1
mov edi, dword [esp + 0x3c]
mov ecx, edi
mov esi, edx
shr esi, cl
mov ecx, eax
shr edx, cl
mov ecx, dword [esp + 0x5c]
mov eax, edx
shr eax, 8
mov dword [esp + 0x68], esi
mov eax, dword [ecx + eax*4]
xor ecx, ecx
mov dword [esp + 0x40], eax
xor eax, edx
test al, al
mov eax, dword [esp + 0x2c]
sete cl
mov dword [esp + 0x60], ecx
mov ecx, dword [esp + 0x70]
mov eax, dword [eax + esi*4]
mov dword [esp + 0x54], ecx
lea ecx, [ebx + 0x100]
mov dword [esp + 0x50], eax
mov dword [esp + 0x64], ecx
mov esi, dword [esp + 0x24]
mov edx, ebx
sub edx, esi
mov dword [esp + 0x44], edx
sub edx, dword [esp + 0x1c]
inc edx
cmp edx, dword [esp + 0x20]
jae 0x100504e5
mov esi, edx
sub esi, dword [esp + 0x58]
add esi, dword [esp + 0x48]
jmp 0x100504e7
add esi, edx
mov eax, dword [esp + 0x14]
mov ecx, edi
mov edi, dword [esp + 0x2c]
imul eax, dword [eax], 0x9e3779b1
mov dword [esp + 0x4c], eax
shr dword [esp + 0x4c], cl
mov ecx, dword [esp + 0x74]
shr eax, cl
mov ecx, dword [esp + 0x44]
mov dword [esp + 0x7c], eax
mov eax, dword [esp + 0x68]
mov dword [edi + eax*4], ecx
mov eax, dword [esp + 0x20]
mov edi, dword [esp + 0x18]
sub eax, edx
dec eax
cmp eax, 3
jb 0x10050535
mov eax, dword [esi]
lea ecx, [ebx + 1]
mov dword [esp + 0x68], ecx
cmp eax, dword [ecx]
je 0x1005073d
cmp dword [esp + 0x60], 0
je 0x100506b5
mov ecx, dword [esp + 0x40]
mov edx, dword [esp + 0x48]
shr ecx, 8
add edx, ecx
mov dword [esp + 0x40], ecx
mov dword [esp + 0x60], edx
cmp ecx, dword [esp + 0x78]
jbe 0x100506b5
mov eax, dword [edx]
cmp eax, dword [ebx]
jne 0x100506b5
mov esi, dword [esp + 0x50]
cmp esi, dword [esp + 0x20]
ja 0x100506bf
mov eax, dword [esp + 0x44]
lea esi, [edx + 4]
sub eax, ecx
mov edx, esi
sub eax, dword [esp + 0x58]
mov ecx, dword [esp + 0x10]
mov dword [esp + 0x68], eax
lea eax, [ebx + 4]
sub eax, esi
add eax, dword [esp + 0x38]
cmp eax, ecx
cmovb ecx, eax
push ecx
lea ecx, [ebx + 4]
call fcn.1001b5f0
mov ecx, eax
add esp, 4
mov dword [esp + 0x7c], ecx
lea eax, [ecx + esi]
cmp eax, dword [esp + 0x38]
jne 0x100505d5
push dword [esp + 0x10]
mov edx, dword [esp + 0x2c]
lea eax, [ebx + 4]
add ecx, eax
call fcn.1001b5f0
mov ecx, dword [esp + 0x80]
add esp, 4
add ecx, eax
lea eax, [ecx + 4]
mov dword [esp + 0x14], eax
mov eax, dword [esp + 0x6c]
cmp eax, dword [esp + 0x60]
sbb ecx, ecx
neg ecx
cmp dword [ebp + 0xc], ebx
sbb eax, eax
neg eax
test eax, ecx
je 0x10050629
mov esi, dword [esp + 0x40]
add esi, dword [esp + 0x48]
mov edi, dword [esp + 0x14]
nop
mov al, byte [ebx - 1]
lea ecx, [esi - 1]
mov esi, ecx
cmp al, byte [ecx]
jne 0x10050621
dec ebx
inc edi
cmp dword [esp + 0x6c], esi
sbb ecx, ecx
neg ecx
cmp dword [ebp + 0xc], ebx
sbb eax, eax
neg eax
test eax, ecx
jne 0x10050600
mov dword [esp + 0x14], edi
mov edi, dword [esp + 0x18]
mov eax, dword [esp + 0x1c]
lea esi, [edi + 0xc]
mov edx, dword [esp + 0x10]
mov ecx, dword [esi]
add edx, 0xffffffe0
mov dword [esp + 0x34], eax
mov eax, dword [esp + 0x68]
mov dword [esp + 0x1c], eax
mov eax, ebx
sub eax, dword [ebp + 0xc]
mov dword [esp + 0x64], eax
cmp ebx, edx
ja 0x1005093d
mov edx, dword [ebp + 0xc]
movups xmm0, xmmword [edx]
movups xmmword [ecx], xmm0
cmp eax, 0x10
jbe 0x1005094a
mov ecx, dword [esi]
add eax, 0xfffffff0
movups xmm0, xmmword [edx + 0x10]
add ecx, 0x10
lea edi, [ecx + eax]
mov dword [esp + 0x7c], edi
mov edi, dword [esp + 0x18]
movups xmmword [ecx], xmm0
cmp eax, 0x10
jle 0x1005094a
mov eax, dword [esp + 0x7c]
add ecx, 0x10
add edx, 0x20
movups xmm0, xmmword [edx]
lea edx, [edx + 0x20]
movups xmmword [ecx], xmm0
movups xmm0, xmmword [edx - 0x10]
movups xmmword [ecx + 0x10], xmm0
add ecx, 0x20
cmp ecx, eax
jb 0x10050695
lea esi, [edi + 0xc]
jmp 0x1005094a
mov esi, dword [esp + 0x50]
cmp esi, dword [esp + 0x20]
jbe 0x100506cf
mov ecx, dword [esp + 0x24]
add ecx, esi
mov eax, dword [ecx]
cmp eax, dword [ebx]
je 0x1005084f
mov ecx, dword [esp + 0x7c]
mov eax, ecx
mov edx, dword [esp + 0x5c]
mov esi, dword [esp + 0x14]
mov ebx, dword [esp + 0x64]
shr eax, 8
mov eax, dword [edx + eax*4]
xor ecx, eax
mov edx, dword [esp + 0x54]
mov dword [esp + 0x40], eax
xor eax, eax
test cl, cl
mov ecx, dword [esp + 0x4c]
sete al
mov dword [esp + 0x60], eax
mov eax, dword [esp + 0x2c]
mov eax, dword [eax + ecx*4]
mov dword [esp + 0x50], eax
cmp esi, ebx
jb 0x1005071e
inc edx
add ebx, 0x100
mov dword [esp + 0x54], edx
mov dword [esp + 0x64], ebx
mov ebx, esi
add esi, edx
mov dword [esp + 0x14], esi
cmp esi, dword [esp + 0x30]
ja 0x10050b43
mov edi, dword [esp + 0x3c]
mov dword [esp + 0x68], ecx
jmp 0x100504c2
cmp edx, dword [esp + 0x20]
mov ecx, dword [esp + 0x10]
mov edi, ecx
cmovb edi, dword [esp + 0x38]
add ebx, 5
add esi, 4
mov dword [esp + 0x7c], ebx
mov eax, ebx
mov edx, esi
sub eax, esi
add eax, edi
cmp eax, ecx
cmovb ecx, eax
push ecx
mov ecx, ebx
call fcn.1001b5f0
mov ebx, eax
add esp, 4
lea eax, [ebx + esi]
cmp eax, edi
jne 0x10050790
mov ecx, dword [esp + 0x7c]
push dword [esp + 0x10]
mov edx, dword [esp + 0x2c]
lea ecx, [ebx + ecx]
call fcn.1001b5f0
add esp, 4
add ebx, eax
mov edi, dword [esp + 0x18]
lea eax, [ebx + 4]
mov ebx, dword [esp + 0x68]
lea esi, [edi + 0xc]
mov edx, dword [esp + 0x10]
mov ecx, dword [esi]
add edx, 0xffffffe0
mov dword [esp + 0x14], eax
mov eax, ebx
sub eax, dword [ebp + 0xc]
mov dword [esp + 0x68], eax
cmp ebx, edx
ja 0x1005080d
mov edx, dword [ebp + 0xc]
movups xmm0, xmmword [edx]
movups xmmword [ecx], xmm0
cmp eax, 0x10
jbe 0x1005081a
mov ecx, dword [esi]
add eax, 0xfffffff0
movups xmm0, xmmword [edx + 0x10]
add ecx, 0x10
lea edi, [ecx + eax]
mov dword [esp + 0x7c], edi
mov edi, dword [esp + 0x18]
movups xmmword [ecx], xmm0
cmp eax, 0x10
jle 0x1005081a
mov eax, dword [esp + 0x7c]
add ecx, 0x10
add edx, 0x20
nop
movups xmm0, xmmword [edx]
lea edx, [edx + 0x20]
movups xmmword [ecx], xmm0
movups xmm0, xmmword [edx - 0x10]
movups xmmword [ecx + 0x10], xmm0
add ecx, 0x20
cmp ecx, eax
jb 0x100507f0
lea esi, [edi + 0xc]
jmp 0x1005081a
push edx
mov edx, dword [ebp + 0xc]
push ebx
call fcn.100161b0
add esp, 8
mov ecx, dword [esp + 0x68]
add dword [esi], ecx
cmp ecx, 0xffff
jbe 0x1005083a
mov eax, dword [edi + 4]
sub eax, dword [edi]
sar eax, 3
mov dword [edi + 0x24], 1
mov dword [edi + 0x28], eax
mov eax, dword [edi + 4]
mov word [eax + 4], cx
mov eax, dword [edi + 4]
mov dword [eax], 1
jmp 0x1005097d
push dword [esp + 0x10]
mov eax, ebx
lea edx, [ecx + 4]
sub eax, ecx
lea ecx, [ebx + 4]
mov dword [esp + 0x6c], eax
call fcn.1001b5f0
mov edx, dword [esp + 0x28]
add eax, 4
mov dword [esp + 0x18], eax
add esp, 4
lea eax, [esi + edx]
cmp dword [esp + 0x28], eax
sbb ecx, ecx
neg ecx
cmp dword [ebp + 0xc], ebx
sbb eax, eax
neg eax
test eax, ecx
je 0x100508b9
mov edi, dword [esp + 0x14]
add esi, edx
mov al, byte [ebx - 1]
lea ecx, [esi - 1]
mov esi, ecx
cmp al, byte [ecx]
jne 0x100508b1
dec ebx
inc edi
cmp dword [esp + 0x28], esi
sbb ecx, ecx
neg ecx
cmp dword [ebp + 0xc], ebx
sbb eax, eax
neg eax
test eax, ecx
jne 0x10050890
mov dword [esp + 0x14], edi
mov edi, dword [esp + 0x18]
mov eax, dword [esp + 0x1c]
lea esi, [edi + 0xc]
mov edx, dword [esp + 0x10]
mov ecx, dword [esi]
add edx, 0xffffffe0
mov dword [esp + 0x34], eax
mov eax, dword [esp + 0x68]
mov dword [esp + 0x1c], eax
mov eax, ebx
sub eax, dword [ebp + 0xc]
mov dword [esp + 0x64], eax
cmp ebx, edx
ja 0x1005093d
mov edx, dword [ebp + 0xc]
movups xmm0, xmmword [edx]
movups xmmword [ecx], xmm0
cmp eax, 0x10
jbe 0x1005094a
mov ecx, dword [esi]
add eax, 0xfffffff0
movups xmm0, xmmword [edx + 0x10]
add ecx, 0x10
lea edi, [ecx + eax]
mov dword [esp + 0x7c], edi
mov edi, dword [esp + 0x18]
movups xmmword [ecx], xmm0
cmp eax, 0x10
jle 0x1005094a
mov eax, dword [esp + 0x7c]
add ecx, 0x10
add edx, 0x20
nop dword [eax]
movups xmm0, xmmword [edx]
lea edx, [edx + 0x20]
movups xmmword [ecx], xmm0
movups xmm0, xmmword [edx - 0x10]
movups xmmword [ecx + 0x10], xmm0
add ecx, 0x20
cmp ecx, eax
jb 0x10050920
lea esi, [edi + 0xc]
jmp 0x1005094a
push edx
mov edx, dword [ebp + 0xc]
push ebx
call fcn.100161b0
add esp, 8
mov ecx, dword [esp + 0x64]
add dword [esi], ecx
cmp ecx, 0xffff
jbe 0x1005096a
mov eax, dword [edi + 4]
sub eax, dword [edi]
sar eax, 3
mov dword [edi + 0x24], 1
mov dword [edi + 0x28], eax
mov eax, dword [edi + 4]
mov word [eax + 4], cx
mov eax, dword [edi + 4]
mov ecx, dword [esp + 0x68]
add ecx, 3
mov dword [eax], ecx
mov ecx, dword [esp + 0x14]
lea edx, [ecx - 3]
cmp edx, 0xffff
jbe 0x1005099e
mov eax, dword [edi + 4]
sub eax, dword [edi]
sar eax, 3
mov dword [edi + 0x24], 2
mov dword [edi + 0x28], eax
mov eax, dword [edi + 4]
add ebx, ecx
mov dword [ebp + 0xc], ebx
mov word [eax + 6], dx
add dword [edi + 4], 8
mov eax, dword [esp + 0x30]
cmp ebx, eax
ja 0x10050b2d
mov eax, dword [esp + 0x44]
mov esi, dword [esp + 0x24]
mov ecx, dword [esp + 0x3c]
imul edx, dword [eax + esi + 2], 0x9e3779b1
add eax, 2
shr edx, cl
mov ecx, dword [esp + 0x2c]
mov dword [ecx + edx*4], eax
mov eax, ebx
imul edx, dword [ebx - 2], 0x9e3779b1
sub eax, esi
mov ecx, dword [esp + 0x3c]
shr edx, cl
sub eax, 2
mov ecx, dword [esp + 0x2c]
mov dword [ecx + edx*4], eax
mov edx, dword [esp + 0x20]
mov eax, ebx
sub eax, esi
mov ecx, eax
mov dword [esp + 0x68], eax
sub ecx, dword [esp + 0x34]
cmp ecx, edx
jae 0x10050a17
mov esi, ecx
sub esi, dword [esp + 0x58]
add esi, dword [esp + 0x48]
jmp 0x10050a19
add esi, ecx
mov eax, edx
sub eax, ecx
dec eax
cmp eax, 3
jb 0x10050b29
mov eax, dword [esi]
cmp eax, dword [ebx]
jne 0x10050b29
mov edi, dword [esp + 0x10]
lea eax, [ebx + 4]
cmp ecx, edx
mov ecx, dword [esp + 0x10]
cmovb edi, dword [esp + 0x38]
add esi, 4
sub eax, esi
mov edx, esi
add eax, edi
cmp eax, ecx
cmovb ecx, eax
push ecx
lea ecx, [ebx + 4]
call fcn.1001b5f0
mov ecx, eax
add esp, 4
mov dword [esp + 0x7c], ecx
lea eax, [ecx + esi]
cmp eax, edi
jne 0x10050a88
push dword [esp + 0x10]
mov edx, dword [esp + 0x2c]
lea eax, [ebx + 4]
add ecx, eax
call fcn.1001b5f0
mov ecx, dword [esp + 0x80]
add esp, 4
add ecx, eax
mov edi, dword [esp + 0x18]
lea esi, [ecx + 4]
mov edx, dword [esp + 0x10]
mov ecx, dword [esp + 0x1c]
add edx, 0xffffffe0
mov eax, dword [esp + 0x34]
mov dword [esp + 0x34], ecx
mov ecx, dword [edi + 0xc]
mov dword [esp + 0x1c], eax
cmp ebx, edx
ja 0x10050ab5
movups xmm0, xmmword [ebx]
movups xmmword [ecx], xmm0
jmp 0x10050ac1
push edx
push ebx
mov edx, ebx
call fcn.100161b0
add esp, 8
mov eax, dword [edi + 4]
xor ecx, ecx
mov word [eax + 4], cx
lea ecx, [esi - 3]
mov eax, dword [edi + 4]
mov dword [eax], 1
cmp ecx, 0xffff
jbe 0x10050af0
mov eax, dword [edi + 4]
sub eax, dword [edi]
sar eax, 3
mov dword [edi + 0x24], 2
mov dword [edi + 0x28], eax
mov eax, dword [edi + 4]
mov edx, dword [esp + 0x2c]
mov word [eax + 6], cx
add dword [edi + 4], 8
imul eax, dword [ebx], 0x9e3779b1
add ebx, esi
mov ecx, dword [esp + 0x3c]
mov esi, dword [esp + 0x24]
mov dword [ebp + 0xc], ebx
shr eax, cl
mov ecx, dword [esp + 0x68]
mov dword [edx + eax*4], ecx
mov eax, dword [esp + 0x30]
cmp ebx, eax
jbe 0x100509f5
jmp 0x10050b2d
mov eax, dword [esp + 0x30]
mov esi, dword [esp + 0x70]
add esi, ebx
cmp esi, eax
mov dword [esp + 0x14], esi
mov eax, dword [esp + 0x74]
jbe 0x10050470
mov eax, dword [ebp + 0xc]
mov edx, dword [ebp + 8]
mov ecx, dword [esp + 0x1c]
pop edi
pop esi
mov dword [edx], ecx
mov ecx, dword [esp + 0x2c]
mov dword [edx + 4], ecx
mov ecx, dword [esp + 8]
sub ecx, eax
mov eax, ecx
pop ebx
mov esp, ebp
pop ebp
ret