Function at 0x44e750
Capabilities:
Encrypt data using curve25519

Disassembly:
push ebp
mov ebp, esp
and esp, 0xfffffff0
sub esp, 0x838
mov eax, dword [0x4c9100]
xor eax, esp
mov dword [esp + 0x834], eax
mov eax, dword [ebp + 8]
lea edx, [esp + 0x6a0]
push esi
mov esi, dword [ebp + 0xc]
mov dword [esp + 0xa8], eax
xor eax, eax
push edi
mov dword [esp + 0x6d0], 0xffffffff
mov dword [esp + 0x6d4], 0x20
mov byte [esp + 0x6c9], 1
mov dword [esp + 0x6d8], edx
mov cl, byte [eax + esi]
mov byte [edx + eax], cl
inc eax
cmp eax, 0x20
jae 0x44e7bc
mov edx, dword [esp + 0x6d8]
jmp 0x44e7a7
mov eax, dword [esp + 0x6d8]
push 0x2c
push 0
mov dword [esp + 0x7a8], 1
and byte [eax], 0xf8
mov eax, dword [esp + 0x6e0]
and byte [eax + 0x1f], 0x7f
mov eax, dword [esp + 0x6e0]
or byte [eax + 0x1f], 0x40
lea eax, [esp + 0x7ac]
push eax
call fcn.00479c40
push 0x2c
lea eax, [esp + 0x724]
mov dword [esp + 0x720], 1
push 0
push eax
call fcn.00479c40
push 0x30
lea eax, [esp + 0x75c]
push 0
push eax
call fcn.00479c40
mov eax, dword [ebp + 0x10]
mov edi, dword [eax + 0xc]
mov ecx, dword [eax]
mov edx, dword [eax + 4]
mov esi, dword [eax + 8]
mov dword [esp + 0x30], edi
mov edi, dword [eax + 0x10]
mov dword [esp + 0xc0], edi
mov edi, dword [eax + 0x14]
mov dword [esp + 0xc4], edi
mov edi, dword [eax + 0x18]
mov eax, dword [eax + 0x1c]
mov dword [esp + 0xcc], eax
mov eax, ecx
and eax, 0x3ffffff
shr ecx, 0x1a
mov dword [esp + 0x704], eax
mov eax, edx
shl eax, 6
or eax, ecx
shr edx, 0x13
and eax, 0x1ffffff
mov ecx, dword [esp + 0xc0]
mov dword [esp + 0x708], eax
mov eax, esi
shl eax, 0xd
or eax, edx
mov dword [esp + 0xc8], edi
mov edi, dword [esp + 0x30]
and eax, 0x3ffffff
mov edx, dword [esp + 0xc4]
mov dword [esp + 0x70c], eax
mov eax, edi
shl eax, 0x13
shr esi, 0xd
or eax, esi
shr edi, 6
and eax, 0x1ffffff
mov dword [esp + 0x714], edi
mov dword [esp + 0x710], eax
mov eax, ecx
and eax, 0x1ffffff
shr ecx, 0x19
mov dword [esp + 0x718], eax
mov eax, edx
shl eax, 7
or ecx, eax
shr edx, 0x13
and ecx, 0x3ffffff
mov dword [esp + 0x71c], ecx
mov ecx, dword [esp + 0xc8]
mov eax, ecx
shl eax, 0xd
or eax, edx
mov edx, dword [esp + 0xcc]
and eax, 0x1ffffff
mov dword [esp + 0x720], eax
mov eax, edx
shl eax, 0x14
shr ecx, 0xc
or eax, ecx
shr edx, 6
and eax, 0x3ffffff
mov dword [esp + 0x72c], 0
mov dword [esp + 0x724], eax
and edx, 0x1ffffff
lea eax, [esp + 0x704]
mov dword [esp + 0x728], edx
push eax
lea eax, [esp + 0x598]
mov dword [esp + 0x734], 0
push eax
call fcn.0044e070
movaps xmm5, xmmword [esp + 0x77c]
mov edx, 0xfe
movaps xmm1, xmmword [esp + 0x7ec]
add esp, 0x2c
movaps xmm0, xmmword [esp + 0x760]
xor edi, edi
movaps xmm3, xmmword [esp + 0x740]
movaps xmm7, xmmword [esp + 0x7b0]
movaps xmm6, xmmword [esp + 0x7a0]
movaps xmm2, xmmword [esp + 0x700]
movaps xmm4, xmmword [esp + 0x6f0]
movaps xmmword [esp + 0x30], xmm5
movaps xmm5, xmmword [esp + 0x6e0]
mov dword [esp + 0xc], edx
movaps xmmword [esp + 0x70], xmm1
movaps xmmword [esp + 0x60], xmm0
movaps xmmword [esp + 0x80], xmm3
jmp 0x44e9e5
movaps xmm7, xmmword [esp + 0x50]
mov eax, dword [esp + 0x6d8]
mov ecx, edx
shr ecx, 3
pxor xmm4, xmm7
pxor xmm2, xmm1
pxor xmm5, xmm6
movaps xmm1, xmm5
movaps xmmword [esp + 0x10], xmm2
movzx esi, byte [ecx + eax]
movzx ecx, dl
and ecx, 7
shr esi, cl
and esi, 1
xor edi, esi
neg edi
movd xmm0, edi
mov edi, esi
pshufd xmm3, xmm0, 0
movaps xmm0, xmm4
pand xmm0, xmm3
pand xmm1, xmm3
pxor xmm0, xmm7
pxor xmm1, xmm6
movaps xmm7, xmm0
movaps xmmword [esp + 0x40], xmm0
pxor xmm7, xmm4
movaps xmmword [esp + 0x20], xmm1
pand xmm2, xmm3
movaps xmmword [esp + 0xb0], xmm7
pxor xmm2, xmmword [esp + 0x70]
movaps xmm6, xmm1
movaps xmm7, xmmword [esp + 0x30]
pxor xmm6, xmm5
movaps xmm1, xmmword [esp + 0x720]
movaps xmm0, xmm2
pxor xmm0, xmmword [esp + 0x10]
pxor xmm1, xmm7
movaps xmmword [esp + 0x70], xmm0
movaps xmm5, xmm1
movaps xmm0, xmmword [esp + 0x710]
pand xmm5, xmm3
pxor xmm0, xmmword [esp + 0x80]
pxor xmm5, xmm7
movaps xmmword [esp + 0x50], xmm2
movaps xmm4, xmm0
movaps xmm2, xmmword [esp + 0x730]
pand xmm4, xmm3
pxor xmm2, xmmword [esp + 0x60]
pxor xmm4, xmmword [esp + 0x80]
movaps xmm7, xmm2
pand xmm7, xmm3
movaps xmmword [esp + 0x30], xmm4
movaps xmmword [esp + 0x10], xmm7
movaps xmm3, xmmword [esp + 0x10]
pxor xmm3, xmmword [esp + 0x60]
movaps xmmword [esp + 0x10], xmm3
movaps xmm3, xmm4
pxor xmm3, xmm0
movaps xmmword [esp + 0x80], xmm5
movaps xmm4, xmm5
movaps xmm5, xmmword [esp + 0x10]
pxor xmm4, xmm1
pxor xmm5, xmm2
movaps xmm1, xmmword [esp + 0x20]
movaps xmm0, xmm1
punpckhdq xmm1, xmm6
punpckldq xmm0, xmm6
movaps xmm6, xmmword [esp + 0x30]
movaps xmmword [esp + 0x60], xmm0
movaps xmm0, xmmword [esp + 0x40]
movaps xmm2, xmm0
movaps xmmword [esp + 0x20], xmm1
punpckhdq xmm0, xmmword [esp + 0xb0]
punpckldq xmm2, xmmword [esp + 0xb0]
movaps xmmword [esp + 0x40], xmm0
movaps xmm0, xmmword [esp + 0x50]
punpckldq xmm0, xmmword [esp + 0x70]
movaps xmmword [esp + 0x50], xmm0
movaps xmm0, xmm6
punpckldq xmm0, xmm3
punpckhdq xmm6, xmm3
movaps xmm3, xmmword [esp + 0x10]
movaps xmm7, xmmword [esp + 0x80]
punpckldq xmm3, xmm5
movaps xmm1, xmm7
punpckldq xmm1, xmm4
movaps xmm5, xmm0
punpckhdq xmm7, xmm4
movaps xmm4, xmmword [esp + 0x60]
movaps xmmword [esp + 0x10], xmm3
paddd xmm5, xmm4
paddd xmm4, xmmword [0x4b0c60]
movaps xmm3, xmm6
paddd xmm3, xmmword [esp + 0x20]
psubd xmm4, xmm0
movaps xmm0, xmmword [esp + 0x20]
movups xmmword [esp + 0x80], xmm3
movups xmmword [esp + 0x30], xmm5
movaps xmm5, xmmword [esp + 0x40]
movaps xmm3, xmm1
paddd xmm3, xmm2
movups xmmword [esp + 0x70], xmm3
movaps xmm3, xmm7
paddd xmm3, xmm5
movups xmmword [esp + 0x40], xmm3
movaps xmm3, xmmword [esp + 0x10]
paddd xmm3, xmmword [esp + 0x50]
movups xmmword [esp + 0x60], xmm3
movaps xmm3, xmmword [0x4b0c70]
paddd xmm0, xmm3
paddd xmm2, xmm3
psubd xmm0, xmm6
psubd xmm2, xmm1
movaps xmm6, xmm4
movaps xmmword [esp + 0x20], xmm0
punpcklqdq xmm6, xmm2
paddd xmm5, xmm3
psubd xmm5, xmm7
punpckhqdq xmm4, xmm2
movaps xmm2, xmmword [esp + 0x20]
movaps xmm7, xmm0
punpcklqdq xmm7, xmm5
movaps xmm0, xmm6
pand xmm6, xmmword [0x4b0bd0]
psrld xmm0, 0x1a
punpckhqdq xmm2, xmm5
paddd xmm4, xmm0
movaps xmm0, xmm7
pand xmm7, xmmword [0x4b0bd0]
movaps xmm1, xmm4
pand xmm4, xmmword [0x4b0be0]
psrld xmm0, 0x1a
psrld xmm1, 0x19
paddd xmm2, xmm0
movaps xmmword [esp + 0x20], xmm2
paddd xmm7, xmm1
movaps xmm5, xmmword [esp + 0x20]
pand xmm5, xmmword [0x4b0be0]
psrld xmm2, 0x19
movaps xmmword [esp + 0x20], xmm5
movaps xmm5, xmm7
punpcklqdq xmm5, xmmword [esp + 0x20]
movaps xmm0, xmm2
punpckhqdq xmm7, xmmword [esp + 0x20]
pslldq xmm0, 8
paddd xmm6, xmm0
psrldq xmm2, 8
pshufd xmm0, xmmword [esp + 0x30], 0x50
movaps xmm1, xmm6
punpcklqdq xmm1, xmm4
punpckhqdq xmm6, xmm4
movaps xmm4, xmmword [esp + 0x50]
paddd xmm4, xmm3
movaps xmmword [esp + 0x430], xmm0
psubd xmm4, xmmword [esp + 0x10]
pshufd xmm0, xmmword [esp + 0x30], 0xfa
paddd xmm4, xmm2
movups xmmword [esp + 0x2d0], xmm1
movups xmmword [esp + 0x170], xmm5
movaps xmmword [esp + 0x180], xmm6
movaps xmmword [esp + 0xc0], xmm7
movaps xmmword [esp + 0x50], xmm4
movaps xmmword [esp + 0x440], xmm0
lea eax, [esp + 0x390]
pshufd xmm0, xmmword [esp + 0x80], 0x50
movaps xmmword [esp + 0x450], xmm0
pshufd xmm0, xmmword [esp + 0x80], 0xfa
movaps xmmword [esp + 0x460], xmm0
pshufd xmm0, xmmword [esp + 0x70], 0x50
movaps xmmword [esp + 0x470], xmm0
pshufd xmm0, xmmword [esp + 0x70], 0xfa
movaps xmmword [esp + 0x480], xmm0
pshufd xmm0, xmmword [esp + 0x40], 0x50
movaps xmmword [esp + 0x490], xmm0
pshufd xmm0, xmmword [esp + 0x40], 0xfa
movaps xmmword [esp + 0x4a0], xmm0
pshufd xmm0, xmmword [esp + 0x60], 0x50
movaps xmmword [esp + 0x4b0], xmm0
pshufd xmm0, xmmword [esp + 0x60], 0xfa
movaps xmmword [esp + 0x4c0], xmm0
pshufd xmm0, xmm1, 5
movaps xmmword [esp + 0x390], xmm0
pshufd xmm0, xmm1, 0xaf
movaps xmmword [esp + 0x3a0], xmm0
pshufd xmm0, xmm5, 5
movaps xmmword [esp + 0x3b0], xmm0
pshufd xmm0, xmm5, 0xaf
movaps xmmword [esp + 0x3c0], xmm0
pshufd xmm0, xmm6, 5
movaps xmmword [esp + 0x3d0], xmm0
pshufd xmm0, xmm6, 0xaf
movaps xmmword [esp + 0x3e0], xmm0
pshufd xmm0, xmm7, 5
movaps xmmword [esp + 0x3f0], xmm0
push eax
pshufd xmm0, xmm7, 0xaf
lea eax, [esp + 0x434]
movaps xmmword [esp + 0x404], xmm0
pshufd xmm0, xmm4, 5
push eax
movaps xmmword [esp + 0x418], xmm0
lea eax, [esp + 0x4d8]
pshufd xmm0, xmm4, 0xaf
push eax
movaps xmmword [esp + 0x42c], xmm0
call fcn.0044d870
lea eax, [esp + 0x4dc]
push eax
call fcn.0044c8a0
lea eax, [esp + 0x4e0]
push eax
lea eax, [esp + 0x304]
push eax
call fcn.0044fac0
movaps xmm7, xmmword [esp + 0x328]
movaps xmm1, xmmword [esp + 0x308]
movaps xmm0, xmm7
punpckldq xmm0, xmmword [esp + 0x338]
punpckldq xmm1, xmmword [esp + 0x318]
movaps xmm4, xmmword [esp + 0x368]
movaps xmm2, xmmword [esp + 0x348]
punpckldq xmm2, xmmword [esp + 0x358]
punpckhdq xmm7, xmmword [esp + 0x338]
punpcklqdq xmm1, xmm0
movaps xmm0, xmm4
punpckldq xmm0, xmmword [esp + 0x378]
punpckhdq xmm4, xmmword [esp + 0x378]
punpcklqdq xmm2, xmm0
movaps xmmword [esp + 0xc8], xmm2
movaps xmm2, xmmword [esp + 0x388]
movaps xmm5, xmm2
movaps xmmword [esp + 0x38], xmm1
punpckldq xmm5, xmmword [esp + 0x398]
movaps xmmword [esp + 0x28], xmm5
movaps xmm5, xmmword [esp + 0x308]
punpckhdq xmm5, xmmword [esp + 0x318]
movaps xmmword [esp + 0x2f8], xmm5
movaps xmm5, xmmword [esp + 0x2f8]
punpcklqdq xmm5, xmm7
movaps xmmword [esp + 0x728], xmm5
movaps xmm5, xmmword [esp + 0x348]
punpckhdq xmm5, xmmword [esp + 0x358]
punpcklqdq xmm5, xmm4
punpckhdq xmm2, xmmword [esp + 0x398]
lea eax, [esp + 0x588]
push eax
lea eax, [esp + 0x72c]
movaps xmmword [esp + 0x73c], xmm5
push eax
push eax
movaps xmmword [esp + 0x754], xmm2
call fcn.0044e1d0
movups xmm2, xmmword [esp + 0x54]
lea eax, [esp + 0xf4]
movups xmm1, xmmword [esp + 0x84]
push eax
movaps xmm0, xmm2
punpckhqdq xmm2, xmmword [esp + 0x2f8]
punpcklqdq xmm0, xmmword [esp + 0x2f8]
lea eax, [esp + 0x1b8]
movaps xmmword [esp + 0x108], xmm2
movups xmm2, xmmword [esp + 0xa8]
push eax
movaps xmmword [esp + 0xfc], xmm0
movaps xmm0, xmm2
punpckhqdq xmm2, xmmword [esp + 0x19c]
punpcklqdq xmm0, xmmword [esp + 0x19c]
movaps xmmword [esp + 0x12c], xmm2
movups xmm2, xmmword [esp + 0x9c]
movaps xmmword [esp + 0x11c], xmm0
movaps xmm0, xmm2
punpckhqdq xmm2, xmmword [esp + 0x1ac]
punpcklqdq xmm0, xmmword [esp + 0x1ac]
movaps xmmword [esp + 0x14c], xmm2
movups xmm2, xmmword [esp + 0x6c]
movaps xmmword [esp + 0x13c], xmm0
movaps xmm0, xmm2
punpckhqdq xmm2, xmmword [esp + 0xec]
punpcklqdq xmm0, xmmword [esp + 0xec]
movaps xmmword [esp + 0x15c], xmm0
movaps xmm0, xmm1
punpcklqdq xmm0, xmmword [esp + 0x7c]
punpckhqdq xmm1, xmmword [esp + 0x7c]
movaps xmmword [esp + 0x16c], xmm2
movaps xmmword [esp + 0x17c], xmm0
movaps xmmword [esp + 0x18c], xmm1
call fcn.0044fac0
movaps xmm7, xmmword [0x4b0c20]
movaps xmm0, xmmword [esp + 0x1bc]
movaps xmm2, xmmword [esp + 0x1cc]
movaps xmm1, xmmword [esp + 0x1fc]
movaps xmm3, xmmword [esp + 0x20c]
pmuludq xmm0, xmm7
movaps xmm6, xmmword [0x4b0bb0]
pmuludq xmm1, xmm7
pmuludq xmm2, xmm7
pmuludq xmm3, xmm7
movups xmmword [esp + 0xec], xmm0
psrlq xmm0, 0x1a
movups xmmword [esp + 0x6c], xmm1
paddq xmm2, xmm0
movaps xmm0, xmm1
movaps xmm1, xmmword [esp + 0x1dc]
psrlq xmm0, 0x1a
pmuludq xmm1, xmm7
paddq xmm3, xmm0
movaps xmm0, xmm2
psrlq xmm0, 0x19
movups xmmword [esp + 0x1ac], xmm2
movaps xmm2, xmmword [esp + 0x21c]
paddq xmm1, xmm0
movaps xmm0, xmm3
pmuludq xmm2, xmm7
psrlq xmm0, 0x19
movups xmmword [esp + 0x19c], xmm3
movaps xmm3, xmmword [esp + 0x1ec]
paddq xmm2, xmm0
pmuludq xmm3, xmm7
movaps xmm0, xmm1
pand xmm0, xmm6
movaps xmmword [esp + 0x27c], xmm0
movaps xmm0, xmm2
pand xmm0, xmm6
movaps xmmword [esp + 0x2bc], xmm0
movaps xmm4, xmmword [esp + 0x22c]
lea eax, [esp + 0x25c]
movaps xmm5, xmmword [0x4b0bc0]
psrlq xmm1, 0x1a
psrlq xmm2, 0x1a
paddq xmm3, xmm1
pmuludq xmm4, xmm7
movaps xmm1, xmmword [esp + 0x23c]
movaps xmm0, xmm3
pand xmm0, xmm5
pmuludq xmm1, xmm7
movaps xmmword [esp + 0x28c], xmm0
psrlq xmm3, 0x19
paddq xmm4, xmm2
movaps xmm2, xmmword [esp + 0x24c]
movaps xmm0, xmm4
pmuludq xmm2, xmm7
pand xmm0, xmm5
psrlq xmm4, 0x19
movaps xmmword [esp + 0x2cc], xmm0
movups xmm0, xmmword [esp + 0x6c]
push eax
paddq xmm1, xmm4
lea eax, [esp + 0x1c0]
pand xmm0, xmm6
paddq xmm0, xmm3
movups xmmword [esp + 0x70], xmm0
push eax
movaps xmm0, xmm1
psrlq xmm1, 0x1a
pand xmm0, xmm6
lea eax, [esp + 0x104]
movaps xmmword [esp + 0x2e4], xmm0
paddq xmm2, xmm1
movups xmm1, xmmword [esp + 0x74]
push eax
movaps xmm0, xmm2
psrlq xmm2, 0x19
pand xmm0, xmm5
pmuludq xmm2, xmmword [0x4b0bf0]
movaps xmmword [esp + 0x2f8], xmm0
movups xmm0, xmmword [esp + 0xf8]
pand xmm0, xmm6
paddq xmm2, xmm0
movaps xmm0, xmm2
psrlq xmm2, 0x1a
pand xmm0, xmm6
movaps xmmword [esp + 0x268], xmm0
movaps xmm0, xmm1
pand xmm0, xmm6
psrlq xmm1, 0x1a
movaps xmmword [esp + 0x2a8], xmm0
movups xmm0, xmmword [esp + 0x1b8]
pand xmm0, xmm5
paddq xmm0, xmm2
movaps xmmword [esp + 0x278], xmm0
movups xmm0, xmmword [esp + 0x1a8]
pand xmm0, xmm5
paddq xmm0, xmm1
movaps xmmword [esp + 0x2b8], xmm0
call fcn.0044ce60
movaps xmm7, xmmword [esp + 0x108]
add esp, 0x38
movaps xmm6, xmmword [esp + 0xf0]
movaps xmm1, xmm7
punpckldq xmm1, xmmword [esp + 0xe0]
movaps xmm0, xmm6
punpckldq xmm0, xmmword [esp + 0x100]
movaps xmm3, xmmword [esp + 0x130]
punpcklqdq xmm1, xmm0
movaps xmm0, xmmword [esp + 0x110]
punpckldq xmm0, xmmword [esp + 0x120]
movaps xmmword [esp + 0x50], xmm0
movaps xmm0, xmm3
movaps xmm5, xmmword [esp + 0x50]
punpckldq xmm0, xmmword [esp + 0x140]
punpcklqdq xmm5, xmm0
movaps xmmword [esp + 0x50], xmm5
movaps xmm5, xmmword [esp + 0x150]
punpckldq xmm5, xmmword [esp + 0x160]
movaps xmmword [esp + 0x40], xmm1
movaps xmm4, xmmword [esp + 0x110]
punpckhdq xmm4, xmmword [esp + 0x120]
mov edx, dword [esp + 0xc]
punpckhdq xmm6, xmmword [esp + 0x100]
dec edx
punpckhdq xmm3, xmmword [esp + 0x140]
movaps xmm1, xmmword [esp + 0x150]
punpckhdq xmm7, xmmword [esp + 0xe0]
punpckhdq xmm1, xmmword [esp + 0x160]
movaps xmm2, xmmword [esp + 0x10]
punpcklqdq xmm4, xmm3
punpcklqdq xmm7, xmm6
movaps xmm6, xmmword [esp + 0x40]
movaps xmmword [esp + 0x70], xmm5
movaps xmm5, xmmword [esp + 0x20]
movaps xmmword [esp + 0x30], xmm4
movaps xmm4, xmmword [esp + 0xb0]
movaps xmmword [esp + 0x60], xmm1
movaps xmm1, xmmword [esp + 0x70]
movaps xmmword [esp + 0x80], xmm7
mov dword [esp + 0xc], edx
cmp edx, 3
jae 0x44e9e0
pxor xmm2, xmmword [esp + 0x70]
neg esi
movaps xmm6, xmmword [esp + 0x720]
pxor xmm6, xmmword [esp + 0x30]
movaps xmm7, xmmword [esp + 0xb0]
movaps xmm1, xmmword [esp + 0x20]
movaps xmm4, xmmword [esp + 0x710]
pxor xmm1, xmmword [esp + 0x40]
pxor xmm7, xmmword [esp + 0x50]
pxor xmm4, xmmword [esp + 0x80]
movd xmm0, esi
mov esi, 3
pshufd xmm0, xmm0, 0
pand xmm2, xmm0
pand xmm6, xmm0
pxor xmm2, xmmword [esp + 0x70]
pand xmm1, xmm0
pxor xmm6, xmmword [esp + 0x30]
pand xmm7, xmm0
pxor xmm1, xmmword [esp + 0x40]
pand xmm4, xmm0
pxor xmm7, xmmword [esp + 0x50]
pxor xmm4, xmmword [esp + 0x80]
movaps xmmword [esp + 0x10], xmm2
movaps xmm2, xmmword [esp + 0x730]
pxor xmm2, xmmword [esp + 0x60]
pand xmm2, xmm0
movaps xmmword [esp + 0xb0], xmm6
pxor xmm2, xmmword [esp + 0x60]
movaps xmmword [esp + 0x30], xmm2
nop dword [eax + eax]
movaps xmm5, xmm4
lea eax, [esp + 0xd0]
paddd xmm5, xmm1
paddd xmm6, xmm7
paddd xmm1, xmmword [0x4b0c30]
paddd xmm7, xmmword [0x4b0c40]
psubd xmm1, xmm4
psubd xmm7, xmmword [esp + 0xb0]
pshufd xmm2, xmm1, 0xf5
pand xmm2, xmmword [0x4b0b80]
movaps xmm3, xmm2
pshufd xmm4, xmm1, 0xa0
pand xmm4, xmmword [0x4b0b80]
pand xmm2, xmmword [0x4b0bc0]
movaps xmm1, xmm4
pand xmm4, xmmword [0x4b0bb0]
psrld xmm3, 0x19
psrld xmm1, 0x1a
movaps xmm0, xmm3
psrldq xmm3, 8
pslldq xmm0, 8
paddd xmm2, xmm1
movaps xmm1, xmmword [esp + 0x30]
paddd xmm4, xmm0
movaps xmm0, xmm4
paddd xmm7, xmm3
punpckldq xmm0, xmm2
movaps xmm3, xmm5
punpckhdq xmm4, xmm2
movaps xmm2, xmm6
punpcklqdq xmm0, xmm4
punpcklqdq xmm3, xmm0
punpckhqdq xmm5, xmm0
movaps xmm0, xmmword [esp + 0x10]
paddd xmm1, xmm0
punpcklqdq xmm2, xmm7
paddd xmm0, xmmword [0x4b0c50]
psubd xmm0, xmmword [esp + 0x30]
punpcklqdq xmm1, xmm0
pshufd xmm0, xmm3, 0xf5
movaps xmmword [esp + 0xe0], xmm0
pshufd xmm0, xmm5, 0xf5
movaps xmmword [esp + 0x100], xmm0
pshufd xmm0, xmm2, 0xf5
punpckhqdq xmm6, xmm7
movaps xmmword [esp + 0x120], xmm0
pshufd xmm0, xmm6, 0xf5
push eax
movaps xmmword [esp + 0x144], xmm0
lea eax, [esp + 0x194]
pshufd xmm0, xmm1, 0xf5
push eax
movaps xmmword [esp + 0xd8], xmm3
movaps xmmword [esp + 0xf8], xmm5
movaps xmmword [esp + 0x118], xmm2
movaps xmmword [esp + 0x138], xmm6
movaps xmmword [esp + 0x158], xmm1
movaps xmmword [esp + 0x168], xmm0
call fcn.0044fac0
movaps xmm5, xmmword [0x4b0c20]
movaps xmm6, xmmword [esp + 0x198]
movaps xmm7, xmmword [esp + 0x1a8]
movaps xmm1, xmmword [esp + 0x1d8]
movaps xmm3, xmmword [esp + 0x1e8]
pmuludq xmm6, xmm5
pmuludq xmm1, xmm5
pmuludq xmm7, xmm5
pmuludq xmm3, xmm5
movaps xmm0, xmm6
psrlq xmm0, 0x1a
movups xmmword [esp + 0x38], xmm1
paddq xmm7, xmm0
movaps xmm0, xmm1
movaps xmm1, xmmword [esp + 0x1b8]
psrlq xmm0, 0x1a
pmuludq xmm1, xmm5
paddq xmm3, xmm0
movaps xmm0, xmm7
psrlq xmm0, 0x19
movups xmmword [esp + 0xc8], xmm3
paddq xmm1, xmm0
movaps xmm2, xmmword [esp + 0x1f8]
lea eax, [esp + 0x238]
movaps xmm4, xmmword [esp + 0x208]
movaps xmm0, xmm3
movaps xmm3, xmmword [esp + 0x1c8]
psrlq xmm0, 0x19
pmuludq xmm2, xmm5
pmuludq xmm3, xmm5
pmuludq xmm4, xmm5
push eax
lea eax, [esp + 0x19c]
paddq xmm2, xmm0
movaps xmm0, xmm1
pand xmm0, xmmword [0x4b0bb0]
movaps xmmword [esp + 0x25c], xmm0
movaps xmm0, xmm2
pand xmm0, xmmword [0x4b0bb0]
movaps xmmword [esp + 0x29c], xmm0
psrlq xmm1, 0x1a
psrlq xmm2, 0x1a
paddq xmm3, xmm1
movaps xmm1, xmmword [esp + 0x21c]
paddq xmm4, xmm2
pmuludq xmm1, xmm5
movaps xmm2, xmmword [esp + 0x22c]
movaps xmm0, xmm3
pand xmm0, xmmword [0x4b0bc0]
movaps xmmword [esp + 0x26c], xmm0
movaps xmm0, xmm4
pand xmm0, xmmword [0x4b0bc0]
movaps xmmword [esp + 0x2ac], xmm0
movups xmm0, xmmword [esp + 0x3c]
push eax
psrlq xmm3, 0x19
lea eax, [esp + 0xe0]
pand xmm0, xmmword [0x4b0bb0]
paddq xmm0, xmm3
psrlq xmm4, 0x19
movaps xmm3, xmmword [0x4b0bb0]
movups xmmword [esp + 0x40], xmm0
push eax
paddq xmm1, xmm4
pmuludq xmm2, xmm5
movaps xmm4, xmmword [0x4b0bc0]
movaps xmm0, xmm1
pand xmm0, xmm3
psrlq xmm1, 0x1a
movaps xmmword [esp + 0x2c4], xmm0
pand xmm6, xmm3
pand xmm7, xmm4
paddq xmm2, xmm1
movups xmm1, xmmword [esp + 0x44]
movaps xmm0, xmm2
psrlq xmm2, 0x19
pand xmm0, xmm4
pmuludq xmm2, xmmword [0x4b0bf0]
movaps xmmword [esp + 0x2d4], xmm0
paddq xmm2, xmm6
movaps xmm0, xmm2
psrlq xmm2, 0x1a
pand xmm0, xmm3
movaps xmmword [esp + 0x244], xmm0
paddq xmm7, xmm2
movaps xmm0, xmm1
movaps xmmword [esp + 0x254], xmm7
pand xmm0, xmm3
psrlq xmm1, 0x1a
movaps xmmword [esp + 0x284], xmm0
movups xmm0, xmmword [esp + 0xd4]
pand xmm0, xmm4
paddq xmm0, xmm1
movaps xmmword [esp + 0x294], xmm0
call fcn.0044ce60
movaps xmm6, xmmword [esp + 0x104]
add esp, 0x14
movaps xmm1, xmmword [esp + 0xd0]
movaps xmm0, xmm6
punpckldq xmm1, xmmword [esp + 0xe0]
punpckldq xmm0, xmmword [esp + 0x100]
punpcklqdq xmm1, xmm0
movaps xmmword [esp + 0x20], xmm1
movaps xmm3, xmmword [esp + 0x130]
movaps xmm4, xmmword [esp + 0xd0]
movaps xmm0, xmm3
punpckhdq xmm4, xmmword [esp + 0xe0]
movaps xmm7, xmmword [esp + 0x110]
punpckhdq xmm6, xmmword [esp + 0x100]
punpckldq xmm0, xmmword [esp + 0x140]
punpckldq xmm7, xmmword [esp + 0x120]
punpckhdq xmm3, xmmword [esp + 0x140]
movaps xmmword [esp + 0xc0], xmm4
movaps xmm4, xmmword [esp + 0xc0]
punpcklqdq xmm4, xmm6
movaps xmm6, xmmword [esp + 0x110]
punpckhdq xmm6, xmmword [esp + 0x120]
punpcklqdq xmm7, xmm0
movaps xmm0, xmmword [esp + 0x150]
movaps xmmword [esp + 0x7a0], xmm1
movaps xmm1, xmmword [esp + 0x150]
punpckhdq xmm1, xmmword [esp + 0x160]
movaps xmmword [esp + 0x10], xmm0
movaps xmm5, xmmword [esp + 0x10]
punpckldq xmm5, xmmword [esp + 0x160]
punpcklqdq xmm6, xmm3
movaps xmmword [esp + 0x30], xmm1
movaps xmmword [esp + 0x760], xmm1
movaps xmm1, xmmword [esp + 0x20]
movaps xmmword [esp + 0x7b0], xmm7
movaps xmmword [esp + 0x10], xmm5
movaps xmmword [esp + 0x7c0], xmm5
movaps xmmword [esp + 0x740], xmm4
movaps xmmword [esp + 0xb0], xmm6
movaps xmmword [esp + 0x750], xmm6
sub esi, 1
jne 0x44f3d0
push 1
lea eax, [esp + 0x744]
push eax
lea eax, [esp + 0x7d8]
push eax
call fcn.0044fff0
push 2
lea eax, [esp + 0x7e0]
push eax
lea eax, [esp + 0x784]
push eax
call fcn.0044fff0
lea eax, [esp + 0x758]
push eax
lea eax, [esp + 0x78c]
push eax
lea eax, [esp + 0x700]
push eax
call fcn.0044d1c0
lea eax, [esp + 0x7f4]
push eax
lea eax, [esp + 0x708]
push eax
lea eax, [esp + 0x7fc]
push eax
call fcn.0044d1c0
push 1
lea eax, [esp + 0x804]
push eax
lea eax, [esp + 0x7a8]
push eax
call fcn.0044fff0
lea eax, [esp + 0x71c]
push eax
lea eax, [esp + 0x7b0]
push eax
lea eax, [esp + 0x724]
push eax
call fcn.0044d1c0
add esp, 0x48
lea eax, [esp + 0x6e0]
push 5
push eax
lea eax, [esp + 0x718]
push eax
call fcn.0044fff0
lea eax, [esp + 0x6ec]
push eax
lea eax, [esp + 0x720]
push eax
lea eax, [esp + 0x6f4]
push eax
call fcn.0044d1c0
push 0xa
lea eax, [esp + 0x6fc]
push eax
lea eax, [esp + 0x730]
push eax
call fcn.0044fff0
lea eax, [esp + 0x704]
push eax
lea eax, [esp + 0x738]
push eax
lea eax, [esp + 0x79c]
push eax
call fcn.0044d1c0
push 0x14
lea eax, [esp + 0x7a4]
push eax
lea eax, [esp + 0x748]
push eax
call fcn.0044fff0
lea eax, [esp + 0x7ac]
push eax
lea eax, [esp + 0x750]
push eax
push eax
call fcn.0044d1c0
add esp, 0x48
lea eax, [esp + 0x710]
push 0xa
push eax
push eax
call fcn.0044fff0
lea eax, [esp + 0x6ec]
push eax
lea eax, [esp + 0x720]
push eax
lea eax, [esp + 0x6f4]
push eax
call fcn.0044d1c0
push 0x32
lea eax, [esp + 0x6fc]
push eax
lea eax, [esp + 0x730]
push eax
call fcn.0044fff0
lea eax, [esp + 0x704]
push eax
lea eax, [esp + 0x738]
push eax
lea eax, [esp + 0x79c]
push eax
call fcn.0044d1c0
push 0x64
lea eax, [esp + 0x7a4]
push eax
lea eax, [esp + 0x748]
push eax
call fcn.0044fff0
lea eax, [esp + 0x7ac]
push eax
lea eax, [esp + 0x750]
push eax
push eax
call fcn.0044d1c0
add esp, 0x48
lea eax, [esp + 0x710]
push 0x32
push eax
push eax
call fcn.0044fff0
lea eax, [esp + 0x6ec]
push eax
lea eax, [esp + 0x720]
push eax
lea eax, [esp + 0x6f4]
push eax
call fcn.0044d1c0
lea eax, [esp + 0x6f8]
push 5
push eax
push eax
call fcn.0044fff0
lea eax, [esp + 0x7f4]
push eax
lea eax, [esp + 0x708]
push eax
lea eax, [esp + 0x82c]
push eax
call fcn.0044d1c0
lea eax, [esp + 0x830]
push eax
lea eax, [esp + 0x7d4]
push eax
lea eax, [esp + 0x778]
push eax
call fcn.0044d1c0
lea eax, [esp + 0x77c]
push eax
push dword [esp + 0xec]
call fcn.0044ca70
mov edi, dword [esp + 0x71c]
lea edx, [esp + 0x6ec]
mov eax, dword [esp + 0x714]
add esp, 0x44
mov ecx, dword [esp + 0x6d4]
cmp edi, edx
jne 0x44faa9
cmp eax, ecx
cmovb ecx, eax
xor al, al
rep stosb byte es:[edi], al
mov ecx, dword [esp + 0x83c]
xor eax, eax
pop edi
pop esi
xor ecx, esp
call fcn.0046157d
mov esp, ebp
pop ebp
ret