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

Disassembly:
movups xmmword [esp + 0x50], xmm0
movups xmm0, xmmword [ecx + eax + 0x20]
movups xmmword [esp + 0x40], xmm1
movups xmmword [esp + 0x60], xmm0
movups xmm0, xmmword [ecx + eax + 0x30]
movups xmmword [esp + 0x70], xmm0
movups xmm0, xmmword [ecx + eax + 0x40]
movd eax, xmm1
movups xmmword [esp + 0x80], xmm0
cmp eax, 0x53504d49
jne 0x531590
movq xmm0, qword [esp + 0x44]
mov edx, 0x20ab
mov eax, dword [esp + 0x4c]
mov ebx, dword [esp + 0x50]
movq qword [edi + 0x26], xmm0
mov dword [edi + 0x2e], eax
xor eax, eax
mov word [edi + 0x1e], ax
mov dword [edi - 4], eax
mov eax, dword [esp + 0x74]
mov dword [edi], eax
mov eax, dword [esp + 0x78]
mov dword [edi + 4], eax
mov eax, dword [esp + 0x80]
mov dword [edi + 8], eax
mov eax, dword [esp + 0x84]
mov dword [edi + 0xc], eax
mov eax, dword [esp + 0x7c]
test eax, eax
mov ecx, eax
cmove ecx, edx
cmp eax, 0x100
mov edx, 0x100
mov eax, ebx
cmovb ecx, edx
shr eax, 0x18
shl eax, 2
mov dword [edi + 0x14], ecx
mov word [edi + 0x1a], ax
cmp ax, dx
jbe 0x5313d0
mov word [edi + 0x1a], dx
mov eax, ebx
shr eax, 8
movzx eax, al
mov word [edi + 0x1c], ax
cmp eax, 0x40
jbe 0x5313ea
mov eax, 0x40
mov word [edi + 0x1c], ax
shr ebx, 0x10
xor eax, eax
test bl, 0x10
je 0x5313fd
mov word [edi + 0x1e], bp
mov eax, 2
movzx ecx, ax
test bl, 0x20
je 0x53140f
or eax, 8
mov word [edi + 0x1e], ax
movzx ecx, ax
movzx eax, cx
test bl, 0x40
je 0x531421
or ecx, 4
mov word [edi + 0x1e], cx
movzx eax, cx
movzx ecx, ax
test bl, bl
jns 0x531432
or eax, 0x10
mov word [edi + 0x1e], ax
movzx ecx, ax
mov al, byte [esp + 0x6f]
and al, 0x7f
movzx eax, al
shl ax, 2
mov word [edi + 0x18], ax
cmp ax, dx
jbe 0x53144c
mov word [edi + 0x18], dx
test byte [esp + 0x6f], 0x80
movzx edx, cx
je 0x531460
or ecx, 0x20
mov word [edi + 0x1e], cx
movzx edx, cx
movzx eax, byte [esp + 0x8f]
mov ebp, dword [esp + 0x88]
and eax, 7
movzx eax, byte [eax + 0xc5ec70]
mov byte [edi + 0x22], al
movzx eax, byte [esp + 0x8c]
mov byte [edi + 0x25], al
movzx eax, byte [esp + 0x8d]
and al, 0x7f
mov byte [edi + 0x24], al
movzx eax, byte [esp + 0x8e]
add eax, 3
shr eax, 2
mov byte [edi + 0x23], al
test ebp, ebp
je 0x531583
cmp ebp, dword [esp + 0xd98]
jae 0x531583
mov eax, dword [esp + 0x70]
test eax, eax
je 0x531583
cmp eax, 0xf42400
mov ecx, 0xf42400
cmova eax, ecx
mov cl, byte [esp + 0x6e]
mov dword [edi - 4], eax
movzx eax, cl
not eax
and eax, 1
test bl, 2
je 0x531525
or edx, 1
lea ecx, [eax + 5]
mov word [edi + 0x1e], dx
mov edx, ecx
or edx, 8
test bl, 4
cmove edx, ecx
test bl, 8
je 0x531563
mov eax, 0x215
cmp word [esp + 0xba], ax
jb 0x53151e
test byte [esp + 0x6e], 4
je 0x53151e
mov edx, 0x16
jmp 0x531563
mov edx, 0x14
jmp 0x531563
mov ch, bl
and ch, 4
cmp cl, 0xff
jne 0x531536
mov edx, 3
jmp 0x531563
mov edx, eax
or edx, 8
test ch, ch
cmove edx, eax
test bl, 8
je 0x531563
mov eax, 0x215
cmp word [esp + 0xba], ax
jb 0x53155e
mov edx, 0x12
test cl, 4
jne 0x531563
mov edx, 0x10
mov eax, dword [esp + 0xd98]
mov ecx, esi
sub eax, ebp
push eax
mov eax, dword [esp + 0xd98]
add eax, ebp
push eax
push edx
lea eax, [edi - 4]
push eax
call fcn.0050c610
mov ebx, dword [esp + 0x14]
mov ebp, 2
mov edx, dword [esp + 0x18]
mov ecx, dword [esp + 0x1c]
movups xmm0, xmmword [esp + 0x54]
mov ax, word [esp + 0x6c]
movups xmmword [ecx], xmm0
movq xmm0, qword [esp + 0x64]
movq qword [ecx + 0x10], xmm0
mov word [ecx + 0x18], ax
jmp 0x5315b6