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

Disassembly:
push ebp
push ebx
push edi
push esi
sub esp, 0xc0
cmp dword [edx + 0x1c], 0
mov dword [esp + 0xc], ecx
mov dword [esp + 4], edx
je 0x5adad1
mov eax, dword [esp + 4]
mov edx, 0x2df45158
pcmpeqd xmm1, xmm1
mov ecx, dword [eax + 0x20]
mov esi, dword [eax + 0x24]
mov ebp, dword [eax + 0x28]
xor ecx, dword [esp + 0xd4]
mov eax, ecx
mul edx
mov dword [esp], eax
imul eax, ecx, 0x2d7f954c
bswap ecx
add eax, edx
imul edx, esi, 0x2df45158
bswap esi
add edx, eax
mov eax, esi
imul esi, esi, 0xa7ae0bd2
mov dword [esp + 8], edx
mov edx, 0xb36a80d2
mul edx
add esi, edx
mov edx, dword [esp + 4]
mov ebx, eax
imul eax, ecx, 0xb36a80d2
mov ecx, ebp
not ebp
add eax, esi
bswap ebx
bswap ecx
bswap eax
xor ebx, dword [esp + 8]
xor eax, dword [esp]
mov edi, dword [edx + 0x2c]
mov dword [esp + 8], eax
imul ecx, eax
mov esi, edi
not edi
bswap esi
mul esi
imul esi, ebx
bswap ebx
mov dword [esp], eax
imul edi, ebx
mov eax, ebx
mov ebx, dword [esp + 8]
add edx, ecx
add esi, edx
mul ebp
add edx, edi
bswap eax
xor eax, esi
mov ecx, ebx
bswap ecx
imul ebp, ecx
mov ecx, ebx
add ebp, edx
mov edx, eax
bswap ebp
xor ebp, dword [esp]
test bl, 0x20
mov dword [esp], 0
cmovne edx, ebp
cmovne ebp, eax
shld ebp, edx, cl
mov ecx, dword [esp + 4]
mov edx, ebp
shr edx, 0x19
movd xmm0, edx
mov eax, dword [ecx + 0x10]
mov ecx, dword [ecx + 0x14]
punpcklbw xmm0, xmm0
pshuflw xmm0, xmm0, 0
pshufd xmm0, xmm0, 0
lea edx, [eax - 0x30]
and ebp, ecx
movdqa xmm3, xmm0
movdqu xmm2, xmmword [eax + ebp]
pcmpeqb xmm3, xmm2
pmovmskb ebx, xmm3
nop word cs:[eax + eax]
nop dword [eax]
test bx, bx
je 0x5ada70
tzcnt edi, ebx
lea esi, [ebx - 1]
add edi, ebp
and esi, ebx
mov ebx, dword [esp + 0xd4]
and edi, ecx
neg edi
lea edi, [edi + edi*2]
shl edi, 4
cmp dword [edx + edi], ebx
mov ebx, esi
jne 0x5ada40
jmp 0x5ada8b
pcmpeqb xmm2, xmm1
pmovmskb esi, xmm2
test esi, esi
jne 0x5adad1
mov esi, dword [esp]
lea ebp, [ebp + esi + 0x10]
add esi, 0x10
mov dword [esp], esi
jmp 0x5ada20
mov ecx, dword [eax + edi - 4]
mov edx, dword [esp + 0xc]
mov dword [edx + 0x28], ecx
movsd xmm0, qword [eax + edi - 0xc]
movsd qword [edx + 0x20], xmm0
movsd xmm0, qword [eax + edi - 0x14]
movsd qword [edx + 0x18], xmm0
movsd xmm0, qword [eax + edi - 0x1c]
movsd qword [edx + 0x10], xmm0
movsd xmm0, qword [eax + edi - 0x2c]
movsd xmm1, qword [eax + edi - 0x24]
movsd qword [edx + 8], xmm1
movsd qword [edx], xmm0
jmp 0x5adcac
mov eax, dword [esp + 4]
mov edi, dword [eax + 0x48]
lea ecx, [eax + 0x10]
mov dword [esp], ecx
test edi, edi
je 0x5adb24
mov eax, dword [esp + 4]
shl edi, 2
xor esi, esi
lea ebp, [esp + 0x64]
mov ebx, dword [eax + 0x40]
nop word cs:[eax + eax]
nop dword [eax]
mov edx, dword [ebx + esi*4]
mov ecx, ebp
add edx, 8
push dword [esp + 0xd4]
call fcn.005abf30
add esp, 4
cmp dword [esp + 0x64], 0
jne 0x5adb6a
inc esi
add edi, 0xfffffffc
jne 0x5adb00
mov eax, dword [esp + 4]
mov edi, dword [esp]
movsd xmm2, qword [eax + 0x68]
movsd xmm1, qword [eax + 0x60]
movq xmm0, qword [eax + 0x70]
mov esi, dword [eax + 0x4c]
movsd qword [esp + 0x28], xmm2
movsd qword [esp + 0x20], xmm1
movq xmm2, qword [eax + 0x58]
movq xmm1, qword [eax + 0x50]
movq qword [esp + 0x30], xmm0
movq qword [esp + 0x18], xmm2
movq qword [esp + 0x10], xmm1
jmp 0x5adc12
movsd xmm1, qword [esp + 0x70]
mov dword [esp + 0x38], esi
movsd xmm0, qword [esp + 0x68]
movsd xmm2, qword [esp + 0x80]
mov edi, dword [esp]
lea eax, [esp + 0x38]
lea ecx, [esp + 0x90]
movsd qword [esp + 0x44], xmm1
movsd xmm1, qword [esp + 0x78]
movsd qword [esp + 0x3c], xmm0
movsd qword [esp + 0x54], xmm2
mov edx, edi
movsd qword [esp + 0x4c], xmm1
movsd xmm1, qword [esp + 0x88]
movsd qword [esp + 0x5c], xmm1
push eax
push dword [esp + 0xd8]
call fcn.005b3f00
add esp, 8
movsd xmm2, qword [esp + 0x80]
movsd xmm1, qword [esp + 0x78]
movsd xmm0, qword [esp + 0x88]
movsd qword [esp + 0x28], xmm2
movsd qword [esp + 0x20], xmm1
movsd xmm2, qword [esp + 0x68]
movsd xmm1, qword [esp + 0x70]
movsd qword [esp + 0x30], xmm0
movsd qword [esp + 0x18], xmm1
movsd qword [esp + 0x10], xmm2
movsd xmm1, qword [esp + 0x18]
mov dword [esp + 0x38], esi
movsd xmm0, qword [esp + 0x10]
movsd xmm2, qword [esp + 0x28]
lea eax, [esp + 0x38]
lea ecx, [esp + 0x90]
mov edx, edi
movsd qword [esp + 0x44], xmm1
movsd xmm1, qword [esp + 0x20]
movsd qword [esp + 0x3c], xmm0
movsd qword [esp + 0x54], xmm2
movsd qword [esp + 0x4c], xmm1
movsd xmm1, qword [esp + 0x30]
movsd qword [esp + 0x5c], xmm1
push eax
push dword [esp + 0xd8]
call fcn.005b3f00
add esp, 8
mov eax, dword [esp + 0xc]
movsd xmm1, qword [esp + 0x18]
movq xmm0, qword [esp + 0x10]
movq xmm2, qword [esp + 0x28]
mov dword [eax], esi
movsd qword [eax + 0xc], xmm1
movsd xmm1, qword [esp + 0x20]
movq qword [eax + 4], xmm0
movq qword [eax + 0x1c], xmm2
movsd qword [eax + 0x14], xmm1
movq xmm1, qword [esp + 0x30]
movq qword [eax + 0x24], xmm1
add esp, 0xc0
pop esi
pop edi
pop ebx
pop ebp
ret