Function at 0x49c450
Capabilities:
Encode data using xor
Resolve function by parsing pe exports

Disassembly:
push ebp
push ebx
push edi
push esi
sub esp, 0x91c
mov eax, dword [esp + 0x938]
lea ebp, [esp + 0x264]
lea edi, [esp + 0x174]
lea esi, [esp + 0xd4]
mov dword [esp], 0xf
nop dword [eax]
mov ecx, edi
mov edx, eax
mov edi, eax
mov dword [esp + 0x10], eax
call fcn.0049b810
lea edx, [edi + 0x20]
mov ecx, esi
call fcn.0049b810
movdqu xmm2, xmmword [esp + 0x174]
movdqu xmm1, xmmword [esp + 0xd4]
movdqu xmm3, xmmword [esp + 0x184]
movdqu xmm0, xmmword [esp + 0xe4]
mov edx, dword [esp + 0xf4]
mov eax, dword [esp + 0x194]
mov ecx, dword [esp + 0xf8]
mov ebx, dword [esp + 0x198]
movdqa xmm4, xmm2
lea esi, [eax + edx]
movd edi, xmm3
pshufd xmm7, xmm3, 0xe5
pshufd xmm5, xmm3, 0x4e
pshufd xmm6, xmm3, 0xe7
paddd xmm3, xmm0
add edx, 0x7fffffe
paddd xmm4, xmm1
paddd xmm1, xmmword [0x5841e0]
sub edx, eax
movdqu xmmword [ebp - 0x50], xmm4
movdqu xmmword [ebp - 0x40], xmm3
mov dword [ebp - 0x30], esi
lea esi, [ebx + ecx]
add ecx, 0x3fffffe
mov dword [ebp - 0x2c], esi
movd esi, xmm0
sub ecx, ebx
add esi, 0x7fffffe
psubd xmm1, xmm2
sub esi, edi
movd edi, xmm7
movdqu xmmword [ebp - 0x28], xmm1
pshufd xmm1, xmm0, 0xe5
mov dword [ebp - 0x18], esi
movd esi, xmm1
pshufd xmm1, xmm0, 0x4e
pshufd xmm0, xmm0, 0xe7
add esi, 0x3fffffe
sub esi, edi
movd edi, xmm5
mov dword [ebp - 0x14], esi
movd esi, xmm1
add esi, 0x7fffffe
sub esi, edi
movd edi, xmm6
mov dword [ebp - 0x10], esi
movd esi, xmm0
add esi, 0x3fffffe
sub esi, edi
lea edi, [esp + 0x174]
mov dword [ebp - 0xc], esi
lea esi, [esp + 0xd4]
mov dword [ebp - 8], edx
mov dword [ebp - 4], ecx
mov ecx, ebp
mov edx, edi
push esi
call fcn.004a5900
add esp, 4
mov ecx, ebp
mov edx, ebp
push 0x5843a0
call fcn.004a5900
add esp, 4
mov eax, dword [esp + 0x10]
add ebp, 0x78
add eax, 0x40
dec dword [esp]
jne 0x49c480
mov eax, dword [esp + 0x930]
lea ecx, [eax + 0x28]
mov dword [eax + 4], 0
mov dword [eax], 0
mov dword [eax + 0xc], 0
mov dword [eax + 8], 0
mov dword [eax + 0x14], 0
mov dword [eax + 0x10], 0
mov dword [eax + 0x1c], 0
mov dword [eax + 0x18], 0
mov dword [eax + 0x24], 0
mov dword [eax + 0x20], 0
mov dword [eax + 0x30], 0
mov dword [eax + 0x2c], 0
mov dword [eax + 0x38], 0
mov dword [eax + 0x34], 0
mov dword [eax + 0x40], 0
mov dword [eax + 0x3c], 0
mov dword [eax + 0x4c], 0
mov dword [eax + 0x48], 0
mov dword [eax + 0x44], 0
mov dword [eax + 0x28], 1
mov dword [eax + 0x58], 0
mov dword [eax + 0x54], 0
mov dword [eax + 0x60], 0
mov dword [eax + 0x5c], 0
mov dword [eax + 0x68], 0
mov dword [eax + 0x64], 0
mov dword [eax + 0x74], 0
mov dword [eax + 0x70], 0
mov dword [eax + 0x6c], 0
mov dword [eax + 0x50], 1
mov dword [eax + 0x7c], 0
mov dword [eax + 0x78], 0
mov dword [eax + 0x84], 0
mov dword [eax + 0x80], 0
mov dword [eax + 0x8c], 0
mov dword [eax + 0x88], 0
mov dword [eax + 0x94], 0
mov dword [eax + 0x90], 0
mov dword [eax + 0x9c], 0
mov dword [eax + 0x98], 0
mov dword [esp + 0x34], ecx
lea ecx, [eax + 0x50]
mov dword [esp + 0x30], ecx
lea ecx, [eax + 0x78]
mov dword [esp + 0x2c], ecx
mov ecx, 0x3f
nop dword [eax + eax]
mov edx, dword [esp + 0x934]
mov eax, ecx
mov dword [esp + 0x38], ecx
and ecx, 7
movaps xmm1, xmmword [0x5841f0]
pxor xmm0, xmm0
lea ebx, [esp + 0x288]
pxor xmm2, xmm2
pxor xmm3, xmm3
pxor xmm4, xmm4
pxor xmm5, xmm5
shr eax, 3
mov edi, edx
movzx edx, byte [edx + eax]
movzx esi, byte [edi + eax + 8]
shr edx, cl
shr esi, cl
and edx, 1
and esi, 1
lea edx, [edx + esi*2]
movzx esi, byte [edi + eax + 0x10]
movzx eax, byte [edi + eax + 0x18]
shr esi, cl
shr eax, cl
xor ecx, ecx
and esi, 1
and eax, 1
lea edx, [edx + esi*4]
xor esi, esi
lea eax, [edx + eax*8]
lea edx, [esp + 0x60]
mov dword [edx + 4], 0
mov dword [edx], 0
mov dword [edx + 0xc], 0
mov dword [edx + 8], 0
mov dword [edx + 0x14], 0
mov dword [edx + 0x10], 0
mov dword [edx + 0x1c], 0
mov dword [edx + 0x18], 0
mov dword [edx + 0x20], 0
mov dword [esp + 0x5c], 1
mov dword [edx + 0x2c], 0
mov dword [edx + 0x28], 0
mov dword [edx + 0x34], 0
mov dword [edx + 0x30], 0
mov dword [edx + 0x3c], 0
mov dword [edx + 0x38], 0
mov dword [edx + 0x44], 0
mov dword [edx + 0x40], 0
mov dword [edx + 0x48], 0
mov dword [esp + 0x84], 1
mov dword [edx + 0x50], 0
mov dword [edx + 0x4c], 0
mov dword [edx + 0x58], 0
mov dword [edx + 0x54], 0
mov dword [edx + 0x60], 0
mov dword [edx + 0x5c], 0
mov dword [edx + 0x68], 0
mov dword [edx + 0x64], 0
mov dword [edx + 0x70], 0
mov dword [edx + 0x6c], 0
mov edx, 1
mov dword [esp + 0x3c], eax
movd xmm6, edx
nop word cs:[eax + eax]
nop dword [eax]
mov eax, dword [esp + 0x3c]
movdqa xmm7, xmm6
movdqu xmmword [esp], xmm6
movdqu xmm6, xmmword [ebx - 0x74]
mov edi, ecx
mov ecx, dword [ebx - 4]
mov ebp, esi
mov esi, dword [ebx]
xor eax, edx
pxor xmm6, xmm7
xor ecx, edi
xor esi, ebp
inc edx
dec eax
sar eax, 0x1f
movd xmm7, eax
and ecx, eax
and esi, eax
pshufd xmm7, xmm7, 0
xor ecx, edi
xor esi, ebp
movdqu xmmword [esp + 0x10], xmm7
pand xmm6, xmm7
movdqu xmm7, xmmword [esp]
movdqu xmmword [esp], xmm0
movups xmm0, xmmword [ebx - 0x64]
pxor xmm6, xmm7
movups xmm7, xmmword [esp]
xorps xmm0, xmm7
movups xmm7, xmmword [esp + 0x10]
andps xmm0, xmm7
movups xmm7, xmmword [esp]
movups xmmword [esp], xmm1
movdqu xmm1, xmmword [ebx - 0x54]
xorps xmm0, xmm7
movdqu xmm7, xmmword [esp]
movups xmmword [esp + 0x40], xmm0
pxor xmm1, xmm7
movdqu xmm7, xmmword [esp + 0x10]
pand xmm1, xmm7
movdqu xmm7, xmmword [esp]
movdqu xmmword [esp], xmm3
movdqu xmm3, xmmword [ebx - 0x34]
pxor xmm1, xmm7
movdqa xmm7, xmm2
movdqu xmm2, xmmword [ebx - 0x44]
movdqa xmm0, xmm7
pxor xmm2, xmm7
movdqu xmm7, xmmword [esp + 0x10]
pand xmm2, xmm7
movdqu xmm7, xmmword [esp]
pxor xmm2, xmm0
movdqu xmm0, xmmword [esp + 0x10]
pxor xmm3, xmm7
movdqu xmm7, xmmword [esp + 0x10]
pand xmm3, xmm7
movdqu xmm7, xmmword [esp]
pxor xmm3, xmm7
movdqa xmm7, xmm4
movdqu xmm4, xmmword [ebx - 0x24]
pxor xmm4, xmm7
pand xmm4, xmm0
movdqu xmm0, xmmword [esp + 0x10]
pxor xmm4, xmm7
movdqa xmm7, xmm5
movdqu xmm5, xmmword [ebx - 0x14]
add ebx, 0x78
cmp edx, 0x10
pxor xmm5, xmm7
pand xmm5, xmm0
movdqu xmm0, xmmword [esp + 0x40]
pxor xmm5, xmm7
jne 0x49c880
movdqu xmmword [esp + 0x5c], xmm6
movdqu xmmword [esp + 0x6c], xmm0
movdqu xmmword [esp + 0x7c], xmm1
movdqu xmmword [esp + 0x8c], xmm2
movdqu xmmword [esp + 0x9c], xmm3
movdqu xmmword [esp + 0xac], xmm4
movdqu xmmword [esp + 0xbc], xmm5
mov dword [esp + 0xcc], ecx
mov dword [esp + 0xd0], esi
mov esi, dword [esp + 0x930]
push esi
lea eax, [esp + 0x178]
mov edi, eax
push eax
call fcn.0049ba00
add esp, 8
push edi
push esi
lea edi, [esp + 0xdc]
push edi
call fcn.0049bb90
add esp, 0xc
mov ecx, esi
lea eax, [esp + 0x14c]
mov edx, edi
push eax
call fcn.004a5900
add esp, 4
mov ebx, dword [esp + 0x34]
lea eax, [esp + 0xfc]
lea esi, [esp + 0x124]
mov edx, eax
mov ecx, ebx
push esi
call fcn.004a5900
add esp, 4
mov ebp, dword [esp + 0x30]
lea eax, [esp + 0x14c]
mov edx, esi
mov ecx, ebp
push eax
call fcn.004a5900
add esp, 4
mov esi, dword [esp + 0x2c]
lea eax, [esp + 0xfc]
mov edx, edi
mov ecx, esi
push eax
call fcn.004a5900
add esp, 4
mov edx, dword [esp + 0x930]
mov ecx, edi
lea eax, [esp + 0x5c]
push eax
call fcn.0049cb00
add esp, 4
mov ecx, dword [esp + 0x930]
lea eax, [esp + 0x14c]
mov edx, edi
push eax
call fcn.004a5900
add esp, 4
mov ecx, ebx
lea ebx, [esp + 0x124]
lea edx, [esp + 0xfc]
push ebx
call fcn.004a5900
add esp, 4
mov ecx, ebp
lea eax, [esp + 0x14c]
mov edx, ebx
push eax
call fcn.004a5900
add esp, 4
mov ecx, esi
lea eax, [esp + 0xfc]
mov edx, edi
push eax
call fcn.004a5900
add esp, 4
mov ecx, dword [esp + 0x38]
dec ecx
cmp ecx, 0x40
jb 0x49c720
add esp, 0x91c
pop esi
pop edi
pop ebx
pop ebp
ret