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

Disassembly:
push ebp
mov ebp, esp
and esp, 0xfffffff8
sub esp, 0x7c
mov eax, dword [ecx + 0x5c]
mov dword [esp + 0x1c], eax
mov eax, dword [ecx + 0xcc]
push ebx
xor ebx, ebx
mov dword [esp + 0xc], edx
test eax, eax
mov edx, dword [ecx + 0xc0]
push esi
sete bl
add ebx, eax
mov eax, dword [ecx + 4]
mov dword [esp + 0x28], eax
mov eax, dword [ecx + 0xc]
mov ecx, dword [ecx + 0xb4]
mov dword [esp + 0x18], eax
mov dword [esp + 0x58], ebx
mov ebx, dword [ebp + 0xc]
mov esi, dword [esp + 0x58]
add esi, ebx
push edi
mov edi, dword [esp + 0x2c]
add edi, eax
mov dword [esp + 0x20], esi
mov eax, dword [ebp + 0x10]
mov esi, dword [ebp + 8]
add eax, ebx
mov dword [esp + 0x10], eax
add eax, 0xfffffff8
mov dword [esp + 0x30], eax
mov dword [esp + 0x24], edi
mov eax, dword [esi]
mov edi, dword [ecx]
mov dword [esp + 0x18], eax
mov eax, dword [esi + 4]
mov esi, dword [ecx + 0xc]
mov dword [esp + 0x34], eax
mov eax, dword [ecx + 0x5c]
mov dword [esp + 0x64], eax
mov eax, dword [ecx + 4]
mov dword [esp + 0x58], eax
mov dword [esp + 0x78], esi
add esi, eax
sub eax, edi
mov dword [esp + 0x74], esi
add eax, dword [esp + 0x1c]
mov dword [esp + 0x54], eax
mov eax, edi
sub eax, esi
mov dword [esp + 0x3c], edi
sub eax, dword [esp + 0x24]
mov esi, dword [esp + 0x20]
add eax, ebx
mov eax, dword [ebp + 0xc]
mov ebx, 0
sete bl
add ebx, eax
cmp esi, dword [esp + 0x30]
ja 0x10050fe3
mov eax, 0x20
sub eax, edx
mov dword [esp + 0x40], eax
mov eax, 0x18
sub eax, dword [ecx + 0xc0]
mov dword [esp + 0x60], eax
nop word [eax + eax]
imul edx, dword [ebx], 0x9e3779b1
mov edi, dword [esp + 0x40]
mov ecx, edi
mov eax, edx
shr eax, cl
mov ecx, dword [esp + 0x60]
shr edx, cl
mov ecx, dword [esp + 0x64]
mov dword [esp + 0x4c], eax
mov eax, edx
shr eax, 8
mov eax, dword [ecx + eax*4]
xor ecx, ecx
mov dword [esp + 0x68], eax
xor eax, edx
test al, al
mov edx, ebx
mov eax, dword [esp + 0x28]
sete cl
sub edx, dword [esp + 0x2c]
mov dword [esp + 0x6c], ecx
mov ecx, dword [esp + 0x4c]
mov dword [esp + 0x38], edx
mov ecx, dword [eax + ecx*4]
mov eax, dword [esp + 0x5c]
mov dword [esp + 0x70], eax
lea eax, [ebx + 0x100]
mov dword [esp + 0x48], ecx
sub edx, dword [esp + 0x18]
mov dword [esp + 0x84], esi
inc edx
mov esi, dword [esp + 0x2c]
mov dword [esp + 0x50], eax
lea eax, [ecx + esi]
mov dword [esp + 0x7c], eax
cmp edx, dword [esp + 0x1c]
jae 0x1005092b
mov esi, edx
sub esi, dword [esp + 0x54]
add esi, dword [esp + 0x58]
jmp 0x1005092d
add esi, edx
mov eax, dword [esp + 0x20]
mov ecx, edi
mov edi, dword [esp + 0x28]
imul eax, dword [eax], 0x9e3779b1
mov dword [esp + 0x44], eax
shr dword [esp + 0x44], cl
mov ecx, dword [esp + 0x60]
shr eax, cl
mov ecx, dword [esp + 0x38]
mov dword [esp + 0x80], eax
mov eax, dword [esp + 0x4c]
mov dword [edi + eax*4], ecx
mov eax, dword [esp + 0x1c]
mov edi, dword [esp + 0x14]
sub eax, edx
dec eax
cmp eax, 3
jb 0x1005097e
mov eax, dword [esi]
lea ecx, [ebx + 1]
mov dword [esp + 0x4c], ecx
cmp eax, dword [ecx]
je 0x10050b95
cmp dword [esp + 0x6c], 0
je 0x10050af3
mov ecx, dword [esp + 0x68]
mov esi, dword [esp + 0x58]
shr ecx, 8
add esi, ecx
mov dword [esp + 0x6c], esi
cmp ecx, dword [esp + 0x78]
jbe 0x10050af3
mov eax, dword [esi]
cmp eax, dword [ebx]
jne 0x10050af3
mov eax, dword [esp + 0x1c]
cmp dword [esp + 0x48], eax
ja 0x10050afd
mov eax, dword [esp + 0x38]
add esi, 4
sub eax, ecx
mov edx, esi
sub eax, dword [esp + 0x54]
mov ecx, dword [esp + 0x10]
mov dword [esp + 0x70], eax
lea eax, [ebx + 4]
sub eax, esi
add eax, dword [esp + 0x3c]
cmp eax, ecx
cmovb ecx, eax
push ecx
lea ecx, [ebx + 4]
call fcn.1001b4b0
mov ecx, eax
add esp, 4
mov dword [esp + 0x84], ecx
lea eax, [ecx + esi]
cmp eax, dword [esp + 0x3c]
jne 0x10050a1d
push dword [esp + 0x10]
mov edx, dword [esp + 0x28]
lea eax, [ebx + 4]
add ecx, eax
call fcn.1001b4b0
mov ecx, dword [esp + 0x88]
add esp, 4
add ecx, eax
mov edx, dword [esp + 0x6c]
lea esi, [ecx + 4]
cmp dword [esp + 0x74], edx
sbb ecx, ecx
neg ecx
cmp dword [ebp + 0xc], ebx
sbb eax, eax
neg eax
test eax, ecx
je 0x10050a60
mov edi, dword [ebp + 0xc]
nop word [eax + eax]
mov al, byte [ebx - 1]
dec edx
cmp al, byte [edx]
jne 0x10050a5c
dec ebx
inc esi
cmp dword [esp + 0x74], edx
sbb ecx, ecx
neg ecx
cmp edi, ebx
sbb eax, eax
neg eax
test eax, ecx
jne 0x10050a40
mov edi, dword [esp + 0x14]
mov eax, dword [esp + 0x18]
mov ecx, ebx
mov edx, dword [ebp + 0xc]
sub ecx, edx
mov dword [esp + 0x34], eax
mov eax, dword [esp + 0x70]
mov dword [esp + 0x18], eax
mov eax, dword [esp + 0x10]
add eax, 0xffffffe0
mov dword [esp + 0x50], ecx
mov dword [esp + 0x20], eax
mov eax, dword [edi + 0xc]
cmp ebx, dword [esp + 0x20]
ja 0x10050cb2
movups xmm0, xmmword [edx]
movups xmmword [eax], xmm0
cmp ecx, 0x10
jbe 0x10050cc5
movups xmm0, xmmword [edx + 0x10]
lea eax, [ecx - 0x10]
mov ecx, dword [edi + 0xc]
add ecx, 0x10
lea edi, [ecx + eax]
mov dword [esp + 0x84], edi
mov edi, dword [esp + 0x14]
movups xmmword [ecx], xmm0
cmp eax, 0x10
jle 0x10050cc1
mov eax, dword [esp + 0x84]
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 0x10050ad6
jmp 0x10050cc1
mov eax, dword [esp + 0x1c]
cmp dword [esp + 0x48], eax
jbe 0x10050b0b
mov esi, dword [esp + 0x7c]
mov eax, dword [esi]
cmp eax, dword [ebx]
je 0x10050cee
mov ecx, dword [esp + 0x80]
mov eax, ecx
mov edx, dword [esp + 0x64]
mov ebx, dword [esp + 0x70]
mov esi, dword [esp + 0x20]
shr eax, 8
mov eax, dword [edx + eax*4]
xor ecx, eax
mov edx, dword [esp + 0x44]
mov dword [esp + 0x68], eax
xor eax, eax
test cl, cl
sete al
cmp esi, dword [esp + 0x50]
mov dword [esp + 0x6c], eax
mov eax, dword [esp + 0x28]
mov ecx, dword [eax + edx*4]
lea eax, [ebx + 1]
cmovb eax, ebx
mov dword [esp + 0x48], ecx
mov ebx, esi
mov dword [esp + 0x70], eax
add esi, eax
mov dword [esp + 0x20], esi
cmp esi, dword [esp + 0x30]
ja 0x10050fe0
mov edi, dword [esp + 0x40]
mov eax, ebx
sub eax, dword [esp + 0x2c]
mov dword [esp + 0x4c], edx
mov edx, dword [esp + 0x50]
cmp dword [esp + 0x84], edx
mov dword [esp + 0x38], eax
lea eax, [edx + 0x100]
cmovb eax, edx
mov edx, dword [esp + 0x38]
jmp 0x100508fe
cmp edx, dword [esp + 0x1c]
mov ecx, dword [esp + 0x10]
mov edi, ecx
cmovb edi, dword [esp + 0x3c]
add ebx, 5
add esi, 4
mov dword [esp + 0x84], 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.1001b4b0
mov ebx, eax
add esp, 4
lea eax, [ebx + esi]
cmp eax, edi
jne 0x10050bee
mov ecx, dword [esp + 0x84]
push dword [esp + 0x10]
mov edx, dword [esp + 0x28]
lea ecx, [ebx + ecx]
call fcn.1001b4b0
add esp, 4
add ebx, eax
mov eax, dword [esp + 0x10]
lea esi, [ebx + 4]
mov ebx, dword [esp + 0x4c]
add eax, 0xffffffe0
mov edi, dword [esp + 0x14]
mov ecx, ebx
mov edx, dword [ebp + 0xc]
sub ecx, edx
mov dword [esp + 0x20], eax
mov dword [esp + 0x50], ecx
mov eax, dword [edi + 0xc]
cmp ebx, dword [esp + 0x20]
ja 0x10050c6d
movups xmm0, xmmword [edx]
movups xmmword [eax], xmm0
cmp ecx, 0x10
jbe 0x10050c80
movups xmm0, xmmword [edx + 0x10]
lea eax, [ecx - 0x10]
mov ecx, dword [edi + 0xc]
add ecx, 0x10
lea edi, [ecx + eax]
mov dword [esp + 0x84], edi
mov edi, dword [esp + 0x14]
movups xmmword [ecx], xmm0
cmp eax, 0x10
jle 0x10050c7c
mov eax, dword [esp + 0x84]
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 0x10050c53
jmp 0x10050c7c
push dword [esp + 0x20]
mov ecx, eax
push ebx
call fcn.100161d0
add esp, 8
mov ecx, dword [esp + 0x50]
add dword [edi + 0xc], ecx
cmp ecx, 0xffff
jbe 0x10050c9d
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 0x10050e18
push dword [esp + 0x20]
mov ecx, eax
push ebx
call fcn.100161d0
add esp, 8
mov ecx, dword [esp + 0x50]
add dword [edi + 0xc], ecx
cmp ecx, 0xffff
jbe 0x10050ce2
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
jmp 0x10050e0c
push dword [esp + 0x10]
mov eax, ebx
lea edx, [esi + 4]
sub eax, esi
lea ecx, [ebx + 4]
mov dword [esp + 0x74], eax
call fcn.1001b4b0
mov edx, dword [ebp + 0xc]
add eax, 4
add esp, 4
mov dword [esp + 0x50], eax
cmp dword [esp + 0x24], esi
sbb ecx, ecx
neg ecx
cmp edx, ebx
sbb eax, eax
neg eax
test eax, ecx
je 0x10050d58
mov edi, dword [esp + 0x50]
nop dword [eax + eax]
mov al, byte [ebx - 1]
mov edx, dword [ebp + 0xc]
cmp al, byte [esi - 1]
jne 0x10050d50
dec esi
dec ebx
inc edi
cmp dword [esp + 0x24], esi
sbb ecx, ecx
neg ecx
cmp edx, ebx
sbb eax, eax
neg eax
test eax, ecx
jne 0x10050d30
mov dword [esp + 0x50], edi
mov edi, dword [esp + 0x14]
mov eax, dword [esp + 0x18]
mov esi, ebx
mov ecx, dword [edi + 0xc]
sub esi, edx
mov dword [esp + 0x34], eax
mov eax, dword [esp + 0x70]
mov dword [esp + 0x18], eax
mov eax, dword [esp + 0x10]
add eax, 0xffffffe0
mov dword [esp + 0x20], eax
cmp ebx, eax
ja 0x10050dda
movups xmm0, xmmword [edx]
movups xmmword [ecx], xmm0
cmp esi, 0x10
jbe 0x10050de4
mov ecx, dword [edi + 0xc]
lea eax, [esi - 0x10]
movups xmm0, xmmword [edx + 0x10]
add ecx, 0x10
lea edi, [ecx + eax]
mov dword [esp + 0x84], edi
mov edi, dword [esp + 0x14]
movups xmmword [ecx], xmm0
cmp eax, 0x10
jle 0x10050de4
mov eax, dword [esp + 0x84]
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 0x10050dc0
jmp 0x10050de4
push eax
push ebx
call fcn.100161d0
add esp, 8
add dword [edi + 0xc], esi
cmp esi, 0xffff
jbe 0x10050e01
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], si
mov esi, dword [esp + 0x50]
mov eax, dword [edi + 4]
mov ecx, dword [esp + 0x70]
add ecx, 3
mov dword [eax], ecx
lea ecx, [esi - 3]
cmp ecx, 0xffff
jbe 0x10050e35
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, esi
mov dword [ebp + 0xc], ebx
mov word [eax + 6], cx
add dword [edi + 4], 8
mov eax, dword [esp + 0x30]
cmp ebx, eax
ja 0x10050fce
mov eax, dword [esp + 0x38]
mov esi, dword [esp + 0x2c]
mov ecx, dword [esp + 0x40]
imul edx, dword [eax + esi + 2], 0x9e3779b1
add eax, 2
shr edx, cl
mov ecx, dword [esp + 0x28]
mov dword [ecx + edx*4], eax
mov eax, ebx
imul edx, dword [ebx - 2], 0x9e3779b1
sub eax, esi
mov ecx, dword [esp + 0x40]
shr edx, cl
sub eax, 2
mov ecx, dword [esp + 0x28]
mov dword [ecx + edx*4], eax
nop dword [eax]
mov edx, dword [esp + 0x1c]
mov eax, ebx
sub eax, esi
mov ecx, eax
mov dword [esp + 0x80], eax
sub ecx, dword [esp + 0x34]
cmp ecx, edx
jae 0x10050eb5
mov esi, ecx
sub esi, dword [esp + 0x54]
add esi, dword [esp + 0x58]
jmp 0x10050eb7
add esi, ecx
mov eax, edx
sub eax, ecx
dec eax
cmp eax, 3
jb 0x10050fca
mov eax, dword [esi]
cmp eax, dword [ebx]
jne 0x10050fca
mov edi, dword [esp + 0x10]
lea eax, [ebx + 4]
cmp ecx, edx
mov ecx, dword [esp + 0x10]
cmovb edi, dword [esp + 0x3c]
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.1001b4b0
mov ecx, eax
add esp, 4
mov dword [esp + 0x84], ecx
lea eax, [ecx + esi]
cmp eax, edi
jne 0x10050f29
push dword [esp + 0x10]
mov edx, dword [esp + 0x28]
lea eax, [ebx + 4]
add ecx, eax
call fcn.1001b4b0
mov ecx, dword [esp + 0x88]
add esp, 4
add ecx, eax
mov eax, dword [esp + 0x34]
lea esi, [ecx + 4]
mov ecx, dword [esp + 0x18]
mov edi, dword [esp + 0x14]
mov dword [esp + 0x18], eax
mov eax, dword [esp + 0x20]
mov dword [esp + 0x34], ecx
mov ecx, dword [edi + 0xc]
cmp ebx, eax
ja 0x10050f53
movups xmm0, xmmword [ebx]
movups xmmword [ecx], xmm0
jmp 0x10050f5f
push eax
push ebx
mov edx, ebx
call fcn.100161d0
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 0x10050f8e
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 + 0x28]
mov word [eax + 6], cx
add dword [edi + 4], 8
imul eax, dword [ebx], 0x9e3779b1
add ebx, esi
mov ecx, dword [esp + 0x40]
mov esi, dword [esp + 0x2c]
mov dword [ebp + 0xc], ebx
shr eax, cl
mov ecx, dword [esp + 0x80]
mov dword [edx + eax*4], ecx
mov eax, dword [esp + 0x30]
cmp ebx, eax
jbe 0x10050e90
jmp 0x10050fce
mov eax, dword [esp + 0x30]
mov esi, dword [esp + 0x5c]
add esi, ebx
mov dword [esp + 0x20], esi
cmp esi, eax
jbe 0x100508a0
mov eax, dword [ebp + 0xc]
mov edx, dword [ebp + 8]
mov ecx, dword [esp + 0x18]
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