Function at 0x41b681
Capabilities:
Encode data using xor

Disassembly:
push ebp
push ebx
push edi
push esi
sub esp, 0x54
mov edi, edx
mov ebx, ecx
mov edx, dword [esp + 0x68]
mov eax, dword [edx]
bswap eax
lea ecx, [esp + 0x24]
mov dword [ecx], eax
mov eax, dword [edx + 4]
bswap eax
lea edx, [esp + 0x20]
mov dword [edx], eax
call fcn.0041b317
test ebx, ebx
je 0x41bb21
mov esi, dword [esp + 0x20]
mov ecx, dword [esp + 0x24]
mov edx, 0x11111111
movdqa xmm0, xmmword [0x42aa70]
movdqa xmm1, xmmword [0x42aa80]
pshufd xmm2, xmm1, 0xf5
mov dword [esp + 4], edi
mov dword [esp + 0x28], ebx
mov eax, ecx
mov edi, 0xfffffe80
mov ecx, esi
mov esi, eax
mov dword [esp + 8], edi
mov dword [esp + 0x50], esi
mov dword [esp + 0x1c], ecx
mov eax, ecx
and eax, edx
shr ecx, 3
and ecx, edx
lea eax, [eax + eax*4]
lea ecx, [ecx + ecx*4]
lea ebp, [ecx + ecx*2]
mov dword [esp], ebp
rol ebp, 4
lea edx, [eax + eax*2]
mov dword [esp + 0x4c], edx
mov eax, dword [esp + 4]
xor ebp, dword [eax + edi + 0x180]
xor edx, dword [eax + edi + 0x184]
mov ecx, ebp
and ecx, 0xec7ac69c
mov eax, ebp
and eax, 0x500fb821
xor eax, 0xaeaaedff
mov edi, edx
and eax, edx
xor eax, ecx
mov dword [esp + 0x48], eax
mov eax, ebp
and eax, 0x40efa809
mov ecx, ebp
and ecx, 0xa5ec0b28
xor ecx, 0x68d7b833
and ecx, edx
xor ecx, eax
mov dword [esp + 0x18], ecx
mov eax, ebp
and eax, 0x252cf820
mov ecx, ebp
and ecx, 0x40205801
xor ecx, 0x73fc3606
and ecx, edx
xor ecx, eax
mov dword [esp + 0x44], ecx
mov eax, ebp
and eax, 0xe220f929
mov ecx, ebp
and ecx, 0x44a3f9e1
xor ecx, 0x8222bd90
and ecx, edx
xor ecx, eax
mov dword [esp + 0x14], ecx
mov eax, ebp
and eax, 0x794f104a
mov ecx, ebp
and ecx, 0x26f320b
xor ecx, 0x3069300c
and ecx, edx
xor ecx, eax
mov dword [esp + 0x40], ecx
mov eax, ebp
and eax, 0x7640b01a
mov ecx, ebp
and ecx, 0x238f1572
xor ecx, 0x59a9a22d
and ecx, edx
xor ecx, eax
mov dword [esp + 0x10], ecx
mov eax, ebp
and eax, 0x7a63c083
mov ecx, ebp
and ecx, 0x11cca000
xor ecx, 0x21c83200
and ecx, edx
xor ecx, eax
mov dword [esp + 0x3c], ecx
mov eax, ebp
and eax, 0x51b33be9
mov ecx, ebp
and ecx, 0x3b0fe8ae
xor ecx, 0xf0168aa3
and ecx, edx
xor ecx, eax
mov dword [esp + 0x38], ecx
mov eax, ebp
and eax, 0x90bf8816
mov ecx, ebp
and ecx, 0x9e34f9b
xor ecx, 0x5ab2750a
and ecx, edx
xor ecx, eax
mov dword [esp + 0xc], ecx
mov eax, ebp
and eax, 0x103be88
mov ecx, ebp
and ecx, 0x49ac8e25
xor ecx, 0x93372baf
and ecx, edx
xor ecx, eax
mov dword [esp + 0x34], ecx
mov eax, ebp
and eax, 0x922c313d
mov ebx, ebp
and ebx, 0x70ef31b0
xor ebx, 0x920af5c0
and ebx, edx
xor ebx, eax
mov eax, ebp
and eax, 0x6a707100
mov ecx, ebp
and ecx, 0xb97c9011
xor ecx, 0x537b3006
and ecx, edx
xor ecx, eax
mov dword [esp + 0x30], ecx
mov eax, ebp
and eax, 0xa320c959
mov edx, ebp
and edx, 0x6ea0ab4a
xor edx, 0xbc8f96a5
and edx, edi
xor edx, eax
mov ecx, ebp
and ecx, 0xf74f3e2b
xor ecx, 0x665a14a3
and ecx, edi
mov eax, ebp
and eax, 0x6953ddf8
xor ecx, eax
mov dword [esp + 0x2c], ecx
mov edi, dword [esp + 0x1c]
mov eax, edi
shr eax, 1
mov ecx, 0x11111111
and eax, ecx
lea eax, [eax + eax*4]
lea ecx, [eax + eax*2]
mov eax, dword [esp + 4]
mov esi, dword [esp + 8]
xor ecx, dword [eax + esi + 0x188]
mov eax, dword [esp + 0x18]
xor eax, 0x37396665
and eax, ecx
xor eax, dword [esp + 0x48]
mov dword [esp + 0x18], eax
mov eax, dword [esp + 0x14]
xor eax, 0xa2a0a918
and eax, ecx
xor eax, dword [esp + 0x44]
mov dword [esp + 0x14], eax
mov eax, dword [esp + 0x10]
xor eax, 0x6ce0d5cc
and eax, ecx
xor eax, dword [esp + 0x40]
mov dword [esp + 0x10], eax
mov eax, ebp
and eax, 0x202f69aa
xor eax, 0xa0e62188
and eax, ecx
xor eax, dword [esp + 0x3c]
mov esi, dword [esp + 0xc]
xor esi, 0x90aa30c6
and esi, ecx
xor esi, dword [esp + 0x38]
mov dword [esp + 0xc], esi
xor ebx, 0xf288210c
and ebx, ecx
xor ebx, dword [esp + 0x34]
xor edx, 0xa2efb0a5
and edx, ecx
xor edx, dword [esp + 0x30]
and ebp, 0xf0306cad
xor ebp, 0xf2eff0cc
and ebp, ecx
mov ecx, edi
shr ecx, 2
mov edi, 0x11111111
and ecx, edi
lea ecx, [ecx + ecx*4]
lea ecx, [ecx + ecx*2]
mov edi, dword [esp + 8]
mov esi, dword [esp + 4]
xor ecx, dword [esi + edi + 0x18c]
xor ebp, dword [esp + 0x2c]
mov esi, dword [esp + 0x14]
xor esi, 0xc9c755bb
and esi, ecx
xor esi, dword [esp + 0x18]
xor eax, 0xac6d0bd4
and eax, ecx
xor eax, dword [esp + 0x10]
xor ebx, 0x5391be65
and ebx, ecx
xor ebx, dword [esp + 0xc]
xor ebp, 0xfad176a5
and ebp, ecx
xor ebp, edx
mov ecx, dword [esp + 8]
mov edx, dword [esp]
mov edi, dword [esp + 4]
xor edx, dword [edi + ecx + 0x190]
mov dword [esp], edx
xor eax, 0xd6b6ac77
and eax, edx
xor eax, esi
mov edx, dword [esp + 0x4c]
rol edx, 0x1c
mov ecx, dword [esp + 8]
xor edx, dword [edi + ecx + 0x194]
xor ebp, 0x63d312c0
and ebp, dword [esp]
xor ebp, ebx
xor ebp, 0xaf7d655a
and ebp, edx
xor ebp, eax
mov edx, ebp
xor edx, 0xefa72c4d
mov eax, ebp
shl eax, 4
and eax, 0x40000
mov ecx, ebp
shl ecx, 6
and ecx, 0x4000000
mov edi, ebp
shl edi, 9
and edi, 0x1000000
or edi, ecx
or edi, eax
mov eax, edx
shr eax, 0x16
mov ecx, edx
shl ecx, 0xb
or ecx, eax
mov dword [esp], ecx
mov eax, edx
shr eax, 0x13
mov ebx, edx
shl ebx, 0xe
or ebx, eax
mov eax, edx
shl eax, 0xf
mov ecx, edx
shr ecx, 0xa
or ecx, eax
mov eax, ebp
and eax, 2
shl eax, 0x10
mov esi, ebp
shr esi, 0xd
and esi, 0x40
or esi, eax
mov eax, edx
and eax, 4
and ebp, 0x10
shl ebp, 0x15
lea ebp, [ebp + eax*8]
or ebp, esi
mov esi, dword [esp + 0x1c]
or ebp, edi
mov edi, dword [esp + 8]
mov eax, dword [esp]
and eax, 0x810
and ebx, 0x100004
or ebx, eax
mov eax, edx
shr eax, 7
and eax, 9
and ecx, 0x80004000
or ecx, eax
or ecx, ebx
or ecx, ebp
movd xmm3, edx
pshufd xmm3, xmm3, 0
pand xmm3, xmm0
pshufd xmm4, xmm3, 0xf5
pmuludq xmm3, xmm1
pshufd xmm5, xmm3, 0xed
pmuludq xmm4, xmm2
pshufd xmm6, xmm4, 0xed
punpckldq xmm5, xmm6
pshufd xmm3, xmm3, 0xe8
pshufd xmm4, xmm4, 0xe8
punpckldq xmm3, xmm4
por xmm3, xmm5
shr edx, 6
and edx, 0x11080
pshufd xmm4, xmm3, 0xee
por xmm4, xmm3
pshufd xmm3, xmm4, 0x55
por xmm3, xmm4
or ecx, edx
mov edx, 0x11111111
movd eax, xmm3
or ecx, eax
xor ecx, dword [esp + 0x50]
add edi, 0x18
jne 0x41b6e7
mov edi, dword [esp + 4]
add edi, 0x180
mov ebx, dword [esp + 0x28]
dec ebx
jne 0x41b6d4
jmp 0x41bb29
mov ecx, dword [esp + 0x24]
mov esi, dword [esp + 0x20]
mov edx, ecx
shr edx, 1
xor edx, esi
and edx, 0x55555555
xor esi, edx
add edx, edx
xor edx, ecx
mov ecx, esi
shr ecx, 8
xor ecx, edx
and ecx, 0xff00ff
xor edx, ecx
shl ecx, 8
xor ecx, esi
mov eax, ecx
shr eax, 2
xor eax, edx
and eax, 0x33333333
xor edx, eax
shl eax, 2
xor eax, ecx
mov ecx, edx
shr ecx, 0x10
movzx esi, ax
xor esi, ecx
xor eax, esi
shl esi, 0x10
xor esi, edx
mov ecx, esi
shr ecx, 4
xor ecx, eax
and ecx, 0xf0f0f0f
xor eax, ecx
shl ecx, 4
xor ecx, esi
mov edx, ecx
shr edx, 0x18
mov esi, dword [esp + 0x68]
mov byte [esi], dl
mov edx, ecx
shr edx, 0x10
mov byte [esi + 1], dl
mov byte [esi + 2], ch
mov byte [esi + 3], cl
mov ecx, eax
shr ecx, 0x18
mov byte [esi + 4], cl
mov ecx, eax
shr ecx, 0x10
mov byte [esi + 5], cl
mov byte [esi + 6], ah
mov byte [esi + 7], al
add esp, 0x54
pop esi
pop edi
pop ebx
pop ebp
ret