Function at 0x10504b40
Capabilities:
Enumerate pe sections
Resolve function by parsing pe exports

Disassembly:
push ebp
mov ebp, esp
and esp, 0xfffffff0
sub esp, 0x788
mov eax, dword [0x10a78b80]
xor eax, esp
mov dword [esp + 0x784], eax
mov eax, dword [ebp + 0xc]
xorps xmm0, xmm0
push esi
mov esi, dword [ebp + 0x20]
mov dword [esp + 0xc], eax
mov eax, dword [ebp + 0x10]
push edi
mov edi, dword [ebp + 0x1c]
mov dword [esi + 0xf88], eax
mov eax, dword [ebp + 0x14]
mov dword [esi + 0xf8c], eax
mov eax, dword [ebp + 0x18]
mov dword [esi + 0xf90], eax
movups xmmword [esi + 0xd94], xmm0
mov byte [esi + 0xdd4], 0
movups xmmword [esi + 0xda4], xmm0
mov dword [esp + 0x3c], edi
movups xmmword [esi + 0xdb4], xmm0
mov al, byte [edi]
mov dword [esp + 0x18], esi
test al, al
jne 0x10504c63
mov eax, dword [esp + 0x10]
cmp byte [eax + 3], 0
jbe 0x105053a0
mov ecx, 0xfffff153
mov dword [esp + 0x3c], 0xffffe000
movss xmm0, dword [esp + 0x3c]
lea edi, [esi + 0xead]
mov dword [esp + 0x1c], 0xffffe000
lea edx, [esi + 0x6c0]
movss xmm1, dword [esp + 0x1c]
sub ecx, esi
mov dword [esp + 0x38], 0xffffe000
movss xmm2, dword [esp + 0x38]
mov dword [esp + 0x34], 0xffffe000
movss xmm3, dword [esp + 0x34]
mov dword [esp + 0x30], ecx
movss dword [edx - 0x6c0], xmm0
lea edx, [edx + 4]
movss dword [edx - 0x364], xmm1
movss dword [edx - 4], xmm2
movss dword [edx + 0x35c], xmm3
mov byte [edi - 0xd8], 0
mov byte [edi], 0
inc edi
movzx eax, byte [eax + 3]
add ecx, edi
cmp ecx, eax
mov eax, dword [esp + 0x10]
mov ecx, dword [esp + 0x30]
jb 0x10504c12
pop edi
pop esi
mov ecx, dword [esp + 0x784]
xor ecx, esp
call fcn.105116c0
mov esp, ebp
pop ebp
ret
cmp al, 1
je 0x10504f23
cmp al, 2
je 0x10504f23
movzx eax, word [edi + 6]
movzx ecx, byte [edi + 1]
mov esi, dword [esp + 0x10]
push eax
mov dword [esp + 0x20], ecx
push ecx
mov ecx, esi
call fcn.104ff510
movzx ecx, word [edi + 4]
mov dword [esp + 0x28], eax
lea eax, [esp + 0xc8]
push eax
lea eax, [esp + 0x42c]
movzx ecx, word [esi + ecx*2 + 0xac6ff0]
push eax
lea ecx, [ecx + ecx*2]
mov al, byte [esi + ecx*2 + 0xac7ff5]
and al, 1
movzx eax, al
push eax
movzx eax, byte [esi + ecx*2 + 0xac7ff2]
imul eax, eax, 0x1fb60
add eax, 0x250
add eax, esi
push eax
push edi
push esi
call fcn.10505540
movaps xmm1, xmmword [0x105fe940]
xor edx, edx
movsx ecx, byte [edi + 3]
add esp, 0x18
movd eax, xmm1
movaps xmm0, xmm1
psrldq xmm0, 4
cmp eax, ecx
movd eax, xmm0
movaps xmm0, xmm1
psrldq xmm1, 0xc
setne dl
psrldq xmm0, 8
dec edx
mov dword [esp + 0x24], edx
xor edx, edx
cmp eax, ecx
movd eax, xmm0
setne dl
dec edx
mov dword [esp + 0x20], edx
xor edx, edx
cmp eax, ecx
movd eax, xmm1
setne dl
dec edx
mov dword [esp + 0x5c], edx
xor edx, edx
cmp eax, ecx
setne dl
xor esi, esi
dec edx
mov dword [esp + 0x34], esi
mov dword [esp + 0x7c], edx
cmp dword [esp + 0x1c], esi
jbe 0x105053a0
mov eax, dword [esp + 0x28]
add eax, 0xe0
mov dword [esp + 0x10], eax
lea eax, [edi + 0x14]
mov dword [esp + 0x38], eax
lea ecx, [esp + 0x90]
push ecx
lea ecx, [esp + 0xa4]
push ecx
lea ecx, [esp + 0x1f]
push ecx
lea ecx, [esp + 0x17]
push ecx
push eax
movzx eax, byte [esi + edi + 8]
push eax
push dword [ebp + 8]
call fcn.10503bd0
movzx eax, byte [esp + 0x27]
add esp, 0x1c
neg eax
sbb eax, eax
mov dword [esp + 0x60], eax
mov dword [esp + 0x64], eax
mov dword [esp + 0x68], eax
movzx eax, byte [esp + 0x17]
neg eax
sbb eax, eax
mov dword [esp + 0x6c], eax
mov eax, dword [esp + 0x28]
movzx eax, byte [eax + esi + 4]
mov dword [esp + 0x30], eax
test eax, eax
je 0x10504eed
mov eax, dword [esp + 0x10]
movaps xmm4, xmmword [esp + 0x60]
mov dword [esp + 0x78], eax
movzx esi, byte [eax]
cmp dword [esp + 0x7c], 0
mov dword [esp + 0xc], esi
mov edi, dword [esp + esi*4 + 0xc8]
mov esi, dword [esp + esi*4 + 0x428]
mov edx, esi
cmovl edx, edi
mov ecx, esi
cmp dword [esp + 0x5c], 0
mov eax, esi
mov dword [esp + 0x8c], edx
cmovl ecx, edi
cmp dword [esp + 0x20], 0
mov dword [esp + 0x88], ecx
cmovl eax, edi
cmp dword [esp + 0x24], 0
mov dword [esp + 0x84], eax
cmovl esi, edi
sub esp, 0x10
mov eax, esp
mov dword [esp + 0x90], esi
movups xmm0, xmmword [esp + 0x90]
sub esp, 0x10
movups xmmword [eax], xmm0
mov eax, esp
sub esp, 0x10
movups xmm0, xmmword [esp + 0xc0]
movups xmmword [eax], xmm0
mov eax, esp
movups xmm0, xmmword [esp + 0xd0]
push dword [ebp + 8]
movups xmmword [eax], xmm0
lea eax, [esp + 0xe4]
push eax
call fcn.105053d0
movups xmm0, xmmword [esp + 0xe8]
add esp, 0x28
mov eax, esp
sub esp, 0x10
movups xmmword [eax], xmm4
mov eax, esp
movups xmmword [eax], xmm0
lea eax, [esp + 0x60]
push eax
call fcn.10504430
mov eax, dword [esp + 0x30]
add esp, 0x24
mov esi, dword [esp + 0x18]
movss xmm0, dword [esp + 0x40]
movaps xmm4, xmmword [esp + 0x60]
movss dword [esi + eax*4], xmm0
movss xmm0, dword [esp + 0x44]
movss dword [esi + eax*4 + 0x360], xmm0
movss xmm0, dword [esp + 0x48]
movss dword [esi + eax*4 + 0x6c0], xmm0
movss xmm0, dword [esp + 0x4c]
movss dword [esi + eax*4 + 0xa20], xmm0
mov eax, dword [esp + 0x78]
inc eax
sub dword [esp + 0x30], 1
mov dword [esp + 0x78], eax
jne 0x10504dd0
mov esi, dword [esp + 0x34]
mov edi, dword [esp + 0x3c]
mov eax, dword [esp + 0x38]
inc esi
add dword [esp + 0x10], 0xd8
add eax, 8
mov dword [esp + 0x34], esi
mov dword [esp + 0x38], eax
cmp esi, dword [esp + 0x1c]
jl 0x10504d60
pop edi
pop esi
mov ecx, dword [esp + 0x784]
xor ecx, esp
call fcn.105116c0
mov esp, ebp
pop ebp
ret
xor cl, cl
mov byte [esp + 0xb], cl
cmp al, 2
jne 0x1050527b
cmp dword [ebp + 8], 0
mov edx, dword [edi + 0x1c]
mov eax, dword [edi + 0x14]
mov ecx, dword [edi + 0x18]
mov esi, dword [edi + 0x20]
mov dword [esp + 0x60], eax
mov dword [esp + 0x64], ecx
mov dword [esp + 0x68], edx
mov dword [esp + 0x6c], esi
movaps xmm2, xmmword [esp + 0x60]
mov dword [esp + 0x28], edx
jne 0x10504fcf
cmp dword [0x10b47804], 2
movaps xmm0, xmmword [0x10a4b690]
psrad xmm2, 8
movaps xmmword [esp + 0xa0], xmm0
movaps xmmword [esp + 0xb0], xmm2
jl 0x10504f8c
pmulld xmm2, xmm0
jmp 0x10504fb6
xor ecx, ecx
nop
mov eax, dword [esp + ecx + 0xb0]
imul eax, dword [esp + ecx + 0xa0]
mov dword [esp + ecx + 0x90], eax
add ecx, 4
cmp ecx, 0x10
jl 0x10504f90
movaps xmm2, xmmword [esp + 0x90]
movaps xmmword [esp + 0x60], xmm2
mov edx, dword [esp + 0x68]
mov esi, dword [esp + 0x6c]
mov ecx, dword [esp + 0x64]
mov eax, dword [esp + 0x60]
mov dword [esp + 0x28], edx
xor edx, edx
movaps xmm1, xmmword [0x10a47c60]
cmp eax, 0xffff
movaps xmm0, xmm2
pslld xmm0, 8
setne dl
dec edx
mov dword [esp + 0x3c], edx
xor edx, edx
cmp ecx, 0xffff
movups xmmword [esp + 0x80], xmm0
setne dl
dec edx
movaps xmm0, xmm2
cmp dword [esp + 0x28], 0xffff
mov dword [esp + 0x7c], edx
mov edx, 0
setne dl
psrld xmm0, 8
dec edx
andnps xmm0, xmmword [0x107a4350]
mov dword [esp + 0x5c], edx
andps xmm0, xmm2
xor edx, edx
cmp esi, 0xffff
cvtdq2ps xmm0, xmm0
setne dl
dec edx
mov dword [esp + 0x20], edx
xor edx, edx
cmp eax, 4
setge dl
psrld xmm0, 0x17
xor eax, eax
dec edx
cmp ecx, 4
mov dword [esp + 0x78], edx
psubd xmm1, xmm0
mov edx, 0x20
setge al
movaps xmm0, xmm1
dec eax
psrldq xmm0, 0xc
mov dword [esp + 0x30], eax
xor eax, eax
cmp dword [esp + 0x28], 4
setge al
dec eax
mov dword [esp + 0x34], eax
xor eax, eax
cmp esi, 4
mov esi, edx
setge al
xor ecx, ecx
dec eax
mov dword [esp + 0x38], eax
movd eax, xmm0
movaps xmm0, xmm1
psrldq xmm0, 8
test eax, eax
cmovg ecx, eax
movd eax, xmm0
mov dword [esp + 0xc], ecx
movaps xmm0, xmm1
xor ecx, ecx
psrldq xmm0, 4
test eax, eax
cmovg ecx, eax
movd eax, xmm0
mov dword [esp + 0x24], ecx
xor ecx, ecx
test eax, eax
cmovg ecx, eax
movd eax, xmm1
xor edi, edi
mov dword [esp + 0x1c], ecx
mov ecx, edx
test eax, eax
cmovg edi, eax
cmp dword [esp + 0xc], edx
cmovl esi, dword [esp + 0xc]
cmp dword [esp + 0x24], ecx
mov eax, edx
movaps xmm0, xmmword [0x106245d0]
cmovl ecx, dword [esp + 0x24]
cmp dword [esp + 0x1c], eax
mov dword [esp + 0x48], ecx
cmovl eax, dword [esp + 0x1c]
cmp edi, edx
mov dword [esp + 0x44], eax
cmovl edx, edi
mov dword [esp + 0x4c], esi
cmp dword [0x10b47804], 2
mov dword [esp + 0x40], edx
movups xmm3, xmmword [esp + 0x40]
movaps xmmword [esp + 0xb0], xmm2
psubd xmm3, xmmword [0x10952b40]
paddd xmm0, xmm3
paddd xmm0, xmmword [0x10a47560]
pslld xmm0, 0x17
cvttps2dq xmm0, xmm0
movaps xmmword [esp + 0xa0], xmm0
jl 0x10505152
pmulld xmm2, xmm0
jmp 0x10505186
xor ecx, ecx
nop dword [eax]
nop dword [eax + eax]
mov eax, dword [esp + ecx + 0xb0]
imul eax, dword [esp + ecx + 0xa0]
mov dword [esp + ecx + 0x90], eax
add ecx, 4
cmp ecx, 0x10
jl 0x10505160
movups xmm2, xmmword [esp + 0x90]
movaps xmm0, xmmword [0x10a47c90]
mov edx, 0x3c00
movaps xmm1, xmmword [0x10a47c50]
andps xmm0, xmm2
cmp dword [esp + 0x20], 0
psubd xmm1, xmm3
psrld xmm0, 6
pslld xmm1, 0xa
orps xmm1, xmm0
movaps xmm0, xmm1
movd esi, xmm1
psrldq xmm0, 0xc
movd ecx, xmm0
movaps xmm0, xmm1
psrldq xmm0, 8
movd eax, xmm0
movaps xmm0, xmm1
cmovl ecx, edx
psrldq xmm0, 4
cmp dword [esp + 0x5c], 0
movd edi, xmm0
cmovl eax, edx
cmp dword [esp + 0x7c], 0
cmovl edi, edx
cmp dword [esp + 0x3c], 0
cmovl esi, edx
cmp dword [esp + 0x38], 0
cmovl ecx, dword [esp + 0x8c]
cmp dword [esp + 0x34], 0
push ecx
cmovl eax, dword [esp + 0x8c]
cmp dword [esp + 0x34], 0
mov dword [esp + 0x10], eax
cmovl edi, dword [esp + 0x88]
cmp dword [esp + 0x7c], 0
cmovl esi, dword [esp + 0x84]
call fcn.104ffb20
push dword [esp + 0x10]
fstp dword [esp + 0x28]
call fcn.104ffb20
fstp dword [esp + 0x2c]
push edi
call fcn.104ffb20
fstp dword [esp + 0x18]
push esi
call fcn.104ffb20
movss xmm0, dword [esp + 0x1c]
mov cl, byte [esp + 0x1b]
movss dword [esp + 0x54], xmm0
movss xmm0, dword [esp + 0x34]
movss dword [esp + 0x58], xmm0
movss xmm0, dword [esp + 0x30]
jmp 0x10505308
mov eax, dword [ebp + 8]
cmp eax, 3
ja case.default.0x10505287
jmp dword [eax*4 + 0x105053b4]
mov dword [esp + 0xc], 0xffffe000
movss xmm0, dword [esp + 0xc]
shufps xmm0, xmm0, 0
movaps xmmword [esp + 0x40], xmm0
jmp 0x10505319
mov eax, dword [edi + 0x14]
mov edi, dword [edi + 0x18]
mov dword [esp + 0xc], eax
mov eax, dword [esp + 0x3c]
push dword [eax + 0x20]
mov esi, dword [eax + 0x1c]
call fcn.104ffb20
fstp dword [esp + 0x60]
push esi
call fcn.104ffb20
fstp dword [esp + 0x28]
push edi
call fcn.104ffb20
push dword [esp + 0x18]
fstp dword [esp + 0x34]
call fcn.104ffb20
movss xmm0, dword [esp + 0x34]
mov cl, 1
movss dword [esp + 0x54], xmm0
movss xmm0, dword [esp + 0x30]
movss dword [esp + 0x58], xmm0
movss xmm0, dword [esp + 0x6c]
mov byte [esp + 0x1b], cl
mov esi, dword [esp + 0x28]
add esp, 0x10
fstp dword [esp + 0x40]
movss dword [esp + 0x4c], xmm0
movaps xmm0, xmmword [esp + 0x40]
movaps xmmword [esp + 0x60], xmm0
mov eax, dword [esp + 0x10]
cmp byte [eax + 3], 0
jbe 0x105053a0
movss xmm0, dword [esp + 0x6c]
lea edi, [esi + 0xead]
movss xmm1, dword [esp + 0x68]
lea edx, [esi + 0x6c0]
movss xmm2, dword [esp + 0x64]
movss xmm3, dword [esp + 0x60]
mov dword [esp + 0x18], 0xfffff153
sub dword [esp + 0x18], esi
movss dword [edx - 0x6c0], xmm3
lea edx, [edx + 4]
movss dword [edx - 0x364], xmm2
movss dword [edx - 4], xmm1
movss dword [edx + 0x35c], xmm0
mov byte [edi - 0xd8], cl
mov byte [edi], cl
inc edi
mov ecx, dword [esp + 0x18]
movzx eax, byte [eax + 3]
add ecx, edi
cmp ecx, eax
mov eax, dword [esp + 0x10]
mov cl, byte [esp + 0xb]
jb 0x10505361
mov ecx, dword [esp + 0x78c]
pop edi
pop esi
xor ecx, esp
call fcn.105116c0
mov esp, ebp
pop ebp
ret