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

Disassembly:
push ebp
mov ebp, esp
and esp, 0xfffffff0
sub esp, 0x34
push ebx
push esi
push edi
mov edi, ecx
mov edx, dword [edi + 0x70]
imul edx, dword [edi + 0x10]
mov eax, 0x51eb851f
imul edx
sar edx, 5
mov eax, edx
shr eax, 0x1f
lea edx, [edx + eax + 1]
lea ecx, [edi + 4]
push edx
call fcn.00515470
cmp dword [edi + 0x7c], 0
je 0x50e05a
mov ecx, dword [edi + 0x6c]
imul ecx, dword [edi + 0x38]
mov eax, 0x51eb851f
imul ecx
sar edx, 5
mov eax, edx
shr eax, 0x1f
lea esi, [edx + eax + 1]
push esi
lea ecx, [edi + 0x2c]
call fcn.00515470
mov ecx, dword [edi + 0x7c]
sub ecx, esi
mov dword [esp + 0x18], ecx
mov dword [esp + 0x1c], 0
lea eax, [esp + 0x1c]
js 0x50e055
lea eax, [esp + 0x18]
mov edx, dword [eax]
mov dword [edi + 0x7c], edx
mov eax, dword [edi + 0x68]
inc eax
and eax, 0x80000001
jns 0x50e06a
dec eax
or eax, 0xfffffffe
inc eax
mov dword [edi + 0x68], eax
mov esi, dword [edi + eax*4 + 0x54]
test esi, esi
je 0x50e128
lea esp, [esp]
mov ecx, dword [esi + 0x3c]
mov eax, dword [esi + 0x38]
lea edx, [edi + ecx*4 + 0x54]
mov ecx, dword [esi + 0x34]
mov ebx, eax
test ecx, ecx
je 0x50e098
mov dword [ecx + 0x38], eax
jmp 0x50e09a
mov dword [edx], eax
mov eax, dword [esi + 0x38]
test eax, eax
je 0x50e0a7
mov edx, dword [esi + 0x34]
mov dword [eax + 0x34], edx
mov dword [esi + 0x34], 0
mov eax, dword [edi + 0x5c]
mov dword [esi + 0x38], eax
mov eax, dword [edi + 0x5c]
test eax, eax
je 0x50e0be
mov dword [eax + 0x34], esi
mov dword [edi + 0x5c], esi
mov ecx, dword [esi + 0x30]
push ecx
lea ecx, [edi + 4]
call fcn.00515060
movq xmm0, qword [esi + 0x10]
movq qword [esp + 0x20], xmm0
movq xmm0, qword [esi + 0x18]
movq qword [esp + 0x28], xmm0
movq xmm0, qword [esi + 0x20]
push esi
lea edx, [esp + 0x24]
movq qword [esp + 0x34], xmm0
movq xmm0, qword [esi + 0x28]
push edx
lea ecx, [edi + 0x2c]
movq qword [esp + 0x40], xmm0
call fcn.00515230
mov dword [esi + 0x30], eax
mov dword [esi + 0x3c], 2
mov esi, ebx
test ebx, ebx
jne 0x50e080
mov eax, dword [edi + 0x38]
mov dword [edi + 0x7c], eax
mov byte [edi + 0x9a], 1
cmp byte [edi + 0x99], 0
mov dword [esp + 0x20], edi
je 0x50e165
mov edx, dword [edi + 0x2c]
mov eax, dword [edi + 4]
lea ecx, [esp + 0x20]
push ecx
lea ecx, [edi + 4]
push edx
push eax
call fcn.0050d810
cmp byte [edi + 0x99], 0
je 0x50e165
mov eax, dword [edi + 4]
lea ecx, [edi + 4]
lea edx, [esp + 0x20]
push edx
push eax
push eax
call fcn.0050d810
cmp byte [edi + 0x9a], 0
je 0x50e260
mov ecx, dword [edi + 0x60]
mov eax, dword [ecx]
mov edx, dword [eax + 0x18]
call edx
mov ecx, eax
cmp dword [ecx + 4], 0
mov dword [esp + 0x1c], ecx
jle 0x50e260
mov esi, dword [ecx + 4]
mov edx, dword [edi + 0x74]
imul edx, esi
mov eax, 0x51eb851f
imul edx
sar edx, 5
mov eax, edx
shr eax, 0x1f
add eax, edx
cmp dword [edi + 0x78], eax
lea edx, [edi + 0x78]
mov dword [esp + 0x18], eax
mov dword [esp + 0x20], esi
mov eax, edx
jg 0x50e1bc
lea eax, [esp + 0x18]
cmp esi, dword [eax]
jge 0x50e1c4
lea eax, [esp + 0x20]
mov edx, dword [eax]
xor ebx, ebx
mov dword [esp + 0x18], edx
test edx, edx
jle 0x50e23c
mov eax, dword [edi + 0x90]
add eax, ebx
cdq
idiv dword [ecx + 4]
shl edx, 4
add edx, dword [ecx + 0xc]
mov eax, dword [edx]
mov edx, dword [edx + 4]
mov ecx, dword [edx + 0x30]
mov esi, dword [eax + 0x30]
movaps xmm0, xmmword [ecx + 0x10]
movaps xmm1, xmmword [esi]
movaps xmm2, xmmword [ecx]
cmpltps xmm0, xmm1
movaps xmm1, xmmword [esi + 0x10]
cmpltps xmm1, xmm2
orps xmm0, xmm1
movaps xmmword [esp + 0x20], xmm0
mov ecx, dword [esp + 0x20]
or ecx, dword [esp + 0x24]
or ecx, dword [esp + 0x28]
je 0x50e22d
push dword [ebp + 8]
mov ecx, dword [edi + 0x60]
mov esi, dword [ecx]
push edx
mov edx, dword [esi + 8]
push eax
call edx
dec dword [esp + 0x18]
dec ebx
mov ecx, dword [esp + 0x1c]
inc ebx
cmp ebx, dword [esp + 0x18]
jl 0x50e1d0
mov edx, dword [esp + 0x18]
mov ecx, dword [ecx + 4]
test ecx, ecx
jle 0x50e256
mov eax, dword [edi + 0x90]
add eax, edx
cdq
idiv ecx
mov dword [edi + 0x90], edx
jmp 0x50e260
mov dword [edi + 0x90], 0
mov eax, 1
add dword [edi + 0x8c], eax
mov dword [edi + 0x78], eax
mov eax, dword [edi + 0x80]
mov byte [edi + 0x9a], 0
test eax, eax
jbe 0x50e2b3
mov ecx, dword [edi + 0x84]
fild dword [edi + 0x84]
test ecx, ecx
jge 0x50e295
fadd dword [0x565934]
mov edx, eax
mov dword [esp + 0x20], edx
fild dword [esp + 0x20]
test edx, edx
jge 0x50e2a9
fadd dword [0x565934]
fdivp st(1)
fstp dword [edi + 0x88]
jmp 0x50e2be
xorps xmm0, xmm0
movss dword [edi + 0x88], xmm0
shr dword [edi + 0x84], 1
shr eax, 1
mov dword [edi + 0x80], eax
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret 4