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

Disassembly:
push ebp
mov ebp, esp
push edi
push esi
push ebx
and esp, 0xfffffff0
sub esp, 0x170
mov eax, dword [ebp + 0xc]
mov edx, dword [ebp + 8]
movdqa xmm1, xmmword [0x4c0d80]
mov ebx, dword [ebp + 8]
mov edi, dword [ebp + 8]
movdqu xmm0, xmmword [eax]
movdqa xmm3, xmm1
movdqa xmm6, xmm1
mov ecx, dword [edx]
movdqu xmm4, xmmword [eax + 0x10]
pand xmm3, xmm0
movdqa xmm7, xmm1
psrlw xmm0, 8
movdqu xmm2, xmmword [eax + 0x20]
pand xmm6, xmm4
psrlw xmm4, 8
mov edx, dword [ebp + 8]
movdqu xmm5, xmmword [eax + 0x30]
packuswb xmm0, xmm4
movdqa xmm4, xmm1
mov esi, dword [ebx + 4]
pand xmm7, xmm2
psrlw xmm2, 8
mov eax, dword [edi + 8]
pand xmm4, xmm5
psrlw xmm5, 8
mov dword [esp + 0xf0], ecx
packuswb xmm3, xmm6
mov ecx, dword [edx + 0xc]
packuswb xmm2, xmm5
mov dword [esp + 0xf4], esi
packuswb xmm7, xmm4
mov dword [esp + 0xf8], eax
movdqa xmm5, xmm1
movdqa xmm6, xmm1
pand xmm5, xmm3
psrlw xmm3, 8
pand xmm6, xmm7
psrlw xmm7, 8
packuswb xmm3, xmm7
movdqa xmm7, xmm1
pand xmm1, xmm2
psrlw xmm2, 8
pand xmm7, xmm0
psrlw xmm0, 8
packuswb xmm5, xmm6
movdqa xmm4, xmm3
packuswb xmm0, xmm2
packuswb xmm7, xmm1
pxor xmm1, xmm1
movdqa xmm2, xmm5
movdqa xmm6, xmm0
punpckhbw xmm5, xmm1
punpcklbw xmm2, xmm1
punpckhbw xmm3, xmm1
movaps xmmword [esp + 0xe0], xmm5
movdqa xmm5, xmm7
punpckhbw xmm7, xmm1
punpcklbw xmm5, xmm1
punpcklbw xmm4, xmm1
punpcklbw xmm6, xmm1
punpckhbw xmm0, xmm1
pxor xmm1, xmm1
movaps xmmword [esp + 0xd0], xmm7
movdqa xmm7, xmm5
movaps xmmword [esp + 0xc0], xmm3
movdqa xmm3, xmm2
punpcklwd xmm7, xmm1
punpcklwd xmm3, xmm1
punpckhwd xmm5, xmm1
pslld xmm7, 0x10
punpckhwd xmm2, xmm1
pslld xmm3, 0x18
por xmm3, xmm7
movdqa xmm7, xmm6
pslld xmm5, 0x10
punpckhwd xmm6, xmm1
punpcklwd xmm7, xmm1
pslld xmm2, 0x18
por xmm2, xmm5
por xmm3, xmm7
movdqa xmm7, xmm4
por xmm2, xmm6
punpckhwd xmm4, xmm1
punpcklwd xmm7, xmm1
movdqa xmm6, xmmword [esp + 0xd0]
pslld xmm4, 8
por xmm4, xmm2
pslld xmm7, 8
por xmm3, xmm7
movdqa xmm7, xmmword [esp + 0xe0]
movdqa xmm2, xmm6
movaps xmmword [esp + 0x140], xmm4
punpcklwd xmm2, xmm1
movaps xmmword [esp + 0x130], xmm3
movdqa xmm3, xmm7
movdqa xmm4, xmm0
pslld xmm2, 0x10
punpckhwd xmm6, xmm1
punpcklwd xmm3, xmm1
punpcklwd xmm4, xmm1
punpckhwd xmm7, xmm1
pslld xmm6, 0x10
movdqa xmm5, xmm3
punpckhwd xmm0, xmm1
pslld xmm5, 0x18
por xmm2, xmm5
pslld xmm7, 0x18
movdqa xmm5, xmmword [esp + 0xc0]
por xmm6, xmm7
movdqa xmm3, xmm5
por xmm2, xmm4
punpcklwd xmm3, xmm1
por xmm0, xmm6
pslld xmm3, 8
por xmm2, xmm3
movaps xmmword [esp + 0x150], xmm2
movdqa xmm2, xmm5
punpckhwd xmm2, xmm1
movdqa xmm1, xmm2
pslld xmm1, 8
por xmm0, xmm1
movaps xmmword [esp + 0x160], xmm0
mov dword [esp + 0xfc], ecx
mov edx, dword [ebp + 8]
mov ecx, dword [edx + 0x18]
mov edx, dword [ebp + 8]
mov edi, dword [ebp + 8]
mov ebx, dword [ebp + 8]
movdqa xmm0, xmmword [0x4c0d90]
mov dword [esp + 0x108], ecx
mov ecx, dword [edx + 0x24]
mov eax, dword [edi + 0x14]
mov edi, dword [ebp + 8]
mov esi, dword [ebx + 0x10]
mov ebx, dword [ebp + 8]
mov dword [esp + 0xc], ecx
xor ecx, 0x85a308d3
mov dword [esp + 0x104], eax
mov dword [esp + 0xa0], ecx
mov eax, dword [edi + 0x20]
mov ecx, dword [ebp + 8]
mov dword [esp + 0x100], esi
mov edi, dword [ebp + 8]
mov esi, dword [ebx + 0x1c]
mov ebx, dword [ebp + 8]
movdqu xmm4, xmmword [ecx + 0x20]
mov dword [esp + 0x10], eax
xor eax, 0x243f6a88
mov dword [esp + 0x10c], esi
mov dword [esp + 0xac], eax
mov esi, dword [ebx + 0x28]
mov eax, dword [edi + 0x2c]
pxor xmm0, xmm4
movaps xmmword [esp + 0xe0], xmm4
mov dword [esp + 8], esi
mov dword [esp + 4], eax
xor esi, 0x13198a2e
xor eax, 0x3707344
mov dword [esp + 0x94], esi
mov dword [esp + 0xb0], eax
movaps xmmword [esp + 0x110], xmm0
mov edx, dword [ecx + 0x3c]
movdqa xmm5, xmmword [0x4c0da0]
test edx, edx
movaps xmmword [esp + 0x120], xmm5
jne 0x515446
mov esi, dword [ebp + 8]
mov ebx, dword [ecx + 0x30]
mov edi, dword [esi + 0x34]
mov ecx, ebx
xor ebx, 0x299f31d0
xor ecx, 0xa4093822
mov dword [esp + 0xd0], ebx
mov eax, edi
xor edi, 0xec4e6c89
xor eax, 0x82efa98
mov dword [esp + 0xbc], edi
mov dword [esp + 0xc0], eax
lea esi, [esi]
mov ebx, dword [esp + 0x100]
mov esi, dword [esp + 0xf8]
mov edx, dword [esp + 0xfc]
mov edi, dword [esp + 0x10c]
mov eax, dword [esp + 0xf0]
mov dword [esp + 0x50], 0xbe5466cf
mov dword [esp + 0xb4], ebx
mov dword [esp + 0x9c], esi
mov ebx, dword [esp + 0xf4]
mov esi, dword [esp + 0x108]
mov dword [esp + 0x90], edx
mov edx, dword [esp + 0x104]
mov dword [esp + 0x8c], edi
mov edi, 2
mov dword [esp + 0xb8], eax
mov dword [esp + 0xa8], ebx
mov dword [esp + 0x98], esi
mov ebx, 0x4c0cb0
mov esi, 1
mov dword [esp + 0xa4], edx
mov dword [esp + 0x54], 0x34e90c6c
mov dword [esp + 0x58], 0x452821e6
mov dword [esp + 0x5c], 0x38d01377
mov edx, 0x85a308d3
mov dword [esp + 0x60], 0xc0ac29b7
mov dword [esp + 0x64], 0xc97c50dd
xor eax, eax
mov dword [esp + 0x68], 0x3f84d5b5
mov dword [esp + 0x6c], 0xb5470917
mov dword [esp + 0x70], 0x82efa98
mov dword [esp + 0x74], 0xec4e6c89
mov dword [esp + 0x78], 0xa4093822
mov dword [esp + 0x7c], 0x299f31d0
mov dword [esp + 0x80], 0x13198a2e
mov dword [esp + 0x84], 0x3707344
mov dword [esp + 0x88], 0x243f6a88
mov dword [esp + 0x28], 3
mov dword [esp + 0x34], 4
mov dword [esp + 0xe0], edi
mov edi, esi
mov dword [esp + 0x40], 5
mov dword [esp + 0x44], 6
mov dword [esp + 0x48], 7
mov dword [esp + 0x4c], 0xe
mov dword [esp + 0x20], 0xf
mov dword [esp + 0x24], 0xc
mov dword [esp + 0x2c], 0xd
mov dword [esp + 0x30], 8
mov dword [esp + 0x38], 9
mov dword [esp + 0x3c], 0xa
mov dword [esp + 0x1c], 0xb
mov dword [esp + 0x18], ebx
mov dword [esp + 0x14], esi
jmp 0x514ed9
movzx eax, byte [edi]
movzx esi, byte [edi + 3]
add edi, 0x10
movzx edx, byte [edi - 0xf]
mov ebx, dword [eax*4 + 0x4c0c60]
mov dword [esp + 0x28], esi
mov dword [esp + 0x14], edx
mov edx, dword [edx*4 + 0x4c0c60]
mov dword [esp + 0x88], ebx
mov ebx, dword [esi*4 + 0x4c0c60]
movzx esi, byte [edi - 0xb]
mov dword [esp + 0x84], ebx
movzx ebx, byte [edi - 0xe]
mov dword [esp + 0x40], esi
mov dword [esp + 0xe0], ebx
mov ebx, dword [ebx*4 + 0x4c0c60]
mov dword [esp + 0x80], ebx
mov ebx, dword [esi*4 + 0x4c0c60]
mov dword [esp + 0x7c], ebx
movzx ebx, byte [edi - 0xc]
mov esi, dword [ebx*4 + 0x4c0c60]
mov dword [esp + 0x34], ebx
mov dword [esp + 0x78], esi
movzx esi, byte [edi - 9]
mov ebx, dword [esi*4 + 0x4c0c60]
mov dword [esp + 0x48], esi
mov dword [esp + 0x74], ebx
movzx ebx, byte [edi - 0xa]
mov esi, dword [ebx*4 + 0x4c0c60]
mov dword [esp + 0x44], ebx
mov dword [esp + 0x70], esi
movzx esi, byte [edi - 1]
mov dword [esp + 0x20], esi
mov ebx, dword [esi*4 + 0x4c0c60]
mov dword [esp + 0x6c], ebx
movzx ebx, byte [edi - 2]
mov esi, dword [ebx*4 + 0x4c0c60]
mov dword [esp + 0x4c], ebx
mov dword [esp + 0x68], esi
movzx esi, byte [edi - 3]
mov ebx, dword [esi*4 + 0x4c0c60]
mov dword [esp + 0x2c], esi
mov dword [esp + 0x64], ebx
movzx ebx, byte [edi - 4]
mov esi, dword [ebx*4 + 0x4c0c60]
mov dword [esp + 0x24], ebx
mov dword [esp + 0x60], esi
movzx esi, byte [edi - 7]
mov ebx, dword [esi*4 + 0x4c0c60]
mov dword [esp + 0x38], esi
mov dword [esp + 0x5c], ebx
movzx ebx, byte [edi - 8]
mov esi, dword [ebx*4 + 0x4c0c60]
mov dword [esp + 0x30], ebx
mov dword [esp + 0x58], esi
movzx esi, byte [edi - 5]
mov ebx, dword [esi*4 + 0x4c0c60]
mov dword [esp + 0x1c], esi
mov dword [esp + 0x54], ebx
movzx ebx, byte [edi - 6]
mov dword [esp + 0x18], edi
mov edi, dword [esp + 0x14]
mov esi, dword [ebx*4 + 0x4c0c60]
mov dword [esp + 0x3c], ebx
mov dword [esp + 0x50], esi
xor edx, dword [esp + eax*4 + 0x130]
mov esi, dword [esp + 0xb4]
lea eax, [edx + esi]
add eax, dword [esp + 0xb8]
mov edx, dword [esp + 0xac]
xor ecx, eax
rol ecx, 0x10
add edx, ecx
xor esi, edx
mov ebx, edx
mov edx, esi
mov esi, dword [esp + 0x88]
xor esi, dword [esp + edi*4 + 0x130]
ror edx, 0xc
add eax, esi
mov esi, dword [esp + 0xa4]
lea edi, [eax + edx]
mov eax, dword [esp + 0xe0]
xor ecx, edi
mov dword [esp + 0xb8], edi
mov edi, dword [esp + 0xa0]
ror ecx, 8
add ebx, ecx
mov dword [esp + 0x88], ecx
mov ecx, dword [esp + 0x28]
xor edx, ebx
mov dword [esp + 0xac], ebx
mov ebx, dword [esp + 0xa8]
ror edx, 7
mov dword [esp + 0xb4], edx
mov edx, dword [esp + 0x84]
xor edx, dword [esp + eax*4 + 0x130]
mov eax, dword [esp + 0xd0]
add edx, esi
add ebx, edx
xor eax, ebx
rol eax, 0x10
add edi, eax
xor esi, edi
mov edx, esi
mov esi, dword [esp + 0x80]
xor esi, dword [esp + ecx*4 + 0x130]
ror edx, 0xc
mov ecx, dword [esp + 0xc0]
lea ebx, [ebx + esi]
mov esi, dword [esp + 0x7c]
add ebx, edx
xor eax, ebx
mov dword [esp + 0xe0], ebx
mov ebx, dword [esp + 0x40]
ror eax, 8
add edi, eax
mov dword [esp + 0xd0], eax
mov eax, dword [esp + 0x98]
xor edx, edi
mov dword [esp + 0xa8], edi
mov edi, dword [esp + 0x34]
ror edx, 7
mov dword [esp + 0xa4], edx
mov edx, dword [esp + 0x94]
xor esi, dword [esp + edi*4 + 0x130]
add esi, eax
add esi, dword [esp + 0x9c]
mov edi, dword [esp + 0x78]
xor ecx, esi
xor edi, dword [esp + ebx*4 + 0x130]
mov ebx, dword [esp + 0x48]
rol ecx, 0x10
add edx, ecx
xor eax, edx
ror eax, 0xc
add esi, edi
mov edi, dword [esp + 0xb0]
add esi, eax
xor ecx, esi
mov dword [esp + 0x9c], esi
mov esi, dword [esp + 0x44]
ror ecx, 8
add edx, ecx
mov dword [esp + 0xc0], ecx
mov ecx, dword [esp + 0xbc]
xor eax, edx
mov dword [esp + 0x98], edx
mov edx, dword [esp + 0x8c]
ror eax, 7
mov dword [esp + 0x84], eax
mov eax, dword [esp + 0x74]
xor eax, dword [esp + esi*4 + 0x130]
mov esi, eax
mov eax, dword [esp + 0x70]
xor eax, dword [esp + ebx*4 + 0x130]
add esi, edx
add esi, dword [esp + 0x90]
mov ebx, dword [esp + 0x20]
xor ecx, esi
add eax, esi
mov esi, dword [esp + 0x4c]
rol ecx, 0x10
add edi, ecx
xor edx, edi
ror edx, 0xc
add eax, edx
xor ecx, eax
ror ecx, 8
add edi, ecx
mov dword [esp + 0xbc], ecx
mov ecx, dword [esp + 0x6c]
xor ecx, dword [esp + esi*4 + 0x130]
xor edx, edi
mov dword [esp + 0xb0], edi
ror edx, 7
mov edi, dword [esp + 0xa8]
mov esi, dword [esp + 0x68]
mov dword [esp + 0x94], edx
mov edx, dword [esp + 0xb4]
add eax, ecx
mov ecx, dword [esp + 0xc0]
add eax, edx
xor ecx, eax
xor esi, dword [esp + ebx*4 + 0x130]
rol ecx, 0x10
add edi, ecx
xor edx, edi
ror edx, 0xc
add esi, eax
lea eax, [esi + edx]
xor ecx, eax
mov dword [esp + 0x90], eax
ror ecx, 8
add edi, ecx
mov dword [esp + 0xc0], ecx
xor edx, edi
mov dword [esp + 0xa0], edi
ror edx, 7
mov dword [esp + 0xb4], edx
mov ebx, dword [esp + 0x24]
mov edi, dword [esp + 0x64]
mov ecx, dword [esp + 0x9c]
mov esi, dword [esp + 0x94]
mov eax, dword [esp + 0xd0]
xor edi, dword [esp + ebx*4 + 0x130]
mov ebx, dword [esp + 0x2c]
mov edx, esi
add ecx, edi
mov edi, dword [esp + 0xac]
add ecx, esi
mov esi, dword [esp + 0x60]
xor esi, dword [esp + ebx*4 + 0x130]
xor eax, ecx
mov ebx, dword [esp + 0x30]
rol eax, 0x10
add edi, eax
xor edx, edi
add esi, ecx
ror edx, 0xc
lea ecx, [esi + edx]
mov esi, dword [esp + 0x98]
xor eax, ecx
mov dword [esp + 0x9c], ecx
mov ecx, dword [esp + 0xbc]
ror eax, 8
add edi, eax
mov dword [esp + 0xd0], eax
mov eax, dword [esp + 0x5c]
xor eax, dword [esp + ebx*4 + 0x130]
xor edx, edi
mov dword [esp + 0xac], edi
add eax, dword [esp + 0xb8]
mov edi, dword [esp + 0xa4]
ror edx, 7
mov ebx, dword [esp + 0x38]
mov dword [esp + 0x8c], edx
add eax, edi
xor ecx, eax
rol ecx, 0x10
lea esi, [esi + ecx]
xor edi, esi
mov edx, edi
mov edi, dword [esp + 0x58]
xor edi, dword [esp + ebx*4 + 0x130]
ror edx, 0xc
add eax, edi
lea eax, [eax + edx]
xor ecx, eax
mov dword [esp + 0xb8], eax
mov ebx, ecx
mov ecx, dword [esp + 0x3c]
ror ebx, 8
add esi, ebx
mov dword [esp + 0xbc], ebx
xor edx, esi
mov dword [esp + 0x94], esi
mov esi, dword [esp + 0xe0]
ror edx, 7
mov dword [esp + 0xa4], edx
mov edx, dword [esp + 0x54]
xor edx, dword [esp + ecx*4 + 0x130]
mov eax, dword [esp + 0x84]
mov ecx, dword [esp + 0x88]
mov ebx, dword [esp + 0x1c]
mov edi, dword [esp + 0xb0]
add esi, edx
mov edx, dword [esp + 0x50]
xor edx, dword [esp + ebx*4 + 0x130]
add esi, eax
xor ecx, esi
rol ecx, 0x10
add edi, ecx
add esi, edx
xor eax, edi
ror eax, 0xc
lea esi, [esi + eax]
xor ecx, esi
mov dword [esp + 0xa8], esi
ror ecx, 8
add edi, ecx
xor eax, edi
mov dword [esp + 0xb0], edi
mov edi, dword [esp + 0x18]
ror eax, 7
mov dword [esp + 0x98], eax
mov eax, 0x4c0d80
cmp eax, edi
jne 0x514d9b
movd xmm6, dword [esp + 0x90]
mov dword [esp + 0xe0], ecx
movd xmm7, dword [esp + 0xa8]
mov edi, dword [ebp + 8]
movd xmm4, dword [esp + 0x8c]
movd xmm5, dword [esp + 0xa4]
movd xmm3, dword [esp + 0x9c]
movd xmm2, dword [esp + 0xb8]
movd xmm1, dword [esp + 0x98]
punpckldq xmm3, xmm6
movd xmm0, dword [esp + 0xb4]
punpckldq xmm2, xmm7
punpckldq xmm1, xmm4
movd xmm6, dword [esp + 0xb0]
punpckldq xmm0, xmm5
movd xmm7, dword [esp + 0xa0]
punpcklqdq xmm2, xmm3
movd xmm4, dword [esp + 0xbc]
movd xmm3, dword [esp + 0x94]
punpcklqdq xmm0, xmm1
movd xmm5, dword [esp + 0xd0]
movaps xmmword [esp + 0xf0], xmm2
movd esi, xmm2
punpckldq xmm3, xmm6
movd ebx, xmm0
movaps xmmword [esp + 0x100], xmm0
mov eax, dword [esp + 0xf4]
xor dword [edi], esi
movd xmm2, dword [esp + 0xac]
movd xmm1, dword [esp + 0xc0]
movd xmm0, dword [esp + 0xe0]
punpckldq xmm2, xmm7
punpckldq xmm1, xmm4
mov esi, dword [esp + 0xf8]
punpckldq xmm0, xmm5
xor dword [edi + 4], eax
punpcklqdq xmm2, xmm3
xor dword [edi + 8], esi
mov eax, dword [esp + 0xfc]
mov esi, edi
punpcklqdq xmm0, xmm1
movaps xmmword [esp + 0x110], xmm2
movd edx, xmm2
movaps xmmword [esp + 0x120], xmm0
movd ecx, xmm0
xor dword [edi + 0xc], eax
xor dword [edi + 0x10], ebx
mov ebx, edi
mov eax, dword [esp + 0x104]
xor dword [edi + 0x14], eax
mov edi, dword [esp + 0x108]
mov eax, ebx
xor dword [esi + 0x18], edi
xor dword [ebx], edx
mov esi, dword [esp + 0x10c]
mov edx, dword [esp + 0x114]
mov edi, dword [esp + 0x118]
xor dword [ebx + 0x1c], esi
xor dword [ebx + 4], edx
mov esi, dword [esp + 0x11c]
xor dword [ebx + 8], edi
mov edx, dword [esp + 0x128]
xor dword [ebx + 0xc], esi
xor dword [ebx + 0x10], ecx
mov edi, dword [esp + 0x12c]
mov ecx, dword [esp + 0x124]
xor dword [ebx + 0x18], edx
xor dword [ebx + 0x14], ecx
xor dword [ebx + 0x1c], edi
mov esi, dword [esp + 0x10]
xor dword [ebx], esi
xor dword [eax + 0x10], esi
mov ebx, dword [esp + 0xc]
mov edi, dword [esp + 8]
xor dword [eax + 4], ebx
xor dword [eax + 8], edi
xor dword [eax + 0x14], ebx
xor dword [eax + 0x18], edi
mov ecx, dword [esp + 4]
xor dword [eax + 0xc], ecx
xor dword [eax + 0x1c], ecx
lea esp, [ebp - 0xc]
pop ebx
pop esi
pop edi
pop ebp
ret
mov ecx, 0xa4093822
mov dword [esp + 0xbc], 0xec4e6c89
mov dword [esp + 0xd0], 0x299f31d0
mov dword [esp + 0xc0], 0x82efa98
jmp 0x514c16