Function at 0x41ae60
Capabilities:
Encode data using xor

Disassembly:
sub esp, 0x8c
push ebx
push ebp
push esi
push edi
mov ecx, 0x17
xor eax, eax
lea edi, [esp + 0x3d]
mov byte [esp + 0x3c], 0
rep stosd dword es:[edi], eax
stosw word es:[edi], ax
stosb byte es:[edi], al
mov eax, dword [esp + 0xa4]
xor esi, esi
test al, 7
mov dword [esp + 0x1c], esi
mov dword [esp + 0x20], esi
je 0x41aea2
int3
mov ebx, dword [esp + 0xb0]
test bl, 1
jne 0x41b0aa
mov eax, dword [esp + 0xa8]
mov edi, 4
mov ecx, dword [eax]
mov edx, dword [eax + 4]
xor eax, eax
mov dword [esp + 0x30], ecx
mov dword [esp + 0x34], edx
mov dword [esp + 0x14], eax
mov dword [esp + 0x10], eax
mov dl, byte [esp + esi + 0x30]
mov al, 1
mov ecx, esi
shl al, cl
test dl, dl
jns 0x41aee7
or byte [esp + 0x10], al
test dl, 0x40
je 0x41aef0
or byte [esp + 0x11], al
test dl, 0x20
je 0x41aef9
or byte [esp + 0x12], al
test dl, 0x10
je 0x41af0d
mov bl, byte [esp + 0x17]
mov cl, al
shl cl, 4
or bl, cl
mov byte [esp + 0x17], bl
test dl, 8
je 0x41af16
or byte [esp + 0x16], al
test dl, 4
je 0x41af1f
or byte [esp + 0x15], al
test dl, 2
je 0x41af28
or byte [esp + 0x14], al
inc esi
dec edi
jne 0x41aed5
mov esi, 4
mov edi, esi
mov dl, byte [esp + esi + 0x30]
mov al, 1
mov ecx, esi
shl al, cl
test dl, dl
jns 0x41af45
or byte [esp + 0x10], al
test dl, 0x40
je 0x41af4e
or byte [esp + 0x11], al
test dl, 0x20
je 0x41af57
or byte [esp + 0x12], al
test dl, 0x10
je 0x41af60
or byte [esp + 0x13], al
test dl, 8
je 0x41af69
or byte [esp + 0x16], al
test dl, 4
je 0x41af72
or byte [esp + 0x15], al
test dl, 2
je 0x41af7b
or byte [esp + 0x14], al
inc esi
dec edi
jne 0x41af33
mov edx, dword [esp + 0x10]
mov eax, dword [esp + 0x14]
lea ecx, [esp + 0x3c]
mov dword [esp + 0x18], edx
mov dword [esp + 0x2c], eax
mov ebp, 0x4329e8
mov dword [esp + 0x38], ecx
mov dword [esp + 0x30], 0x10
mov bl, dl
mov dl, byte [ebp]
mov al, byte [esp + 0x1b]
mov cl, byte [esp + 0x1a]
mov byte [esp + 0x10], dl
mov dl, byte [esp + 0x19]
mov byte [esp + 0x24], al
mov byte [esp + 0x26], dl
mov edx, dword [esp + 0x10]
and edx, 0xff
mov byte [esp + 0x25], cl
mov byte [esp + 0x27], bl
mov esi, dword [esp + 0x24]
mov eax, dword [edx*4 + 0x432760]
mov edi, 0x1c
and esi, 0xfffffff0
sub edi, edx
mov ebx, eax
mov ecx, edi
and ebx, esi
shr ebx, cl
mov ecx, edx
shl esi, cl
or ebx, esi
mov dword [esp + 0x24], ebx
mov cl, byte [esp + 0x26]
mov byte [esp + 0x19], cl
mov cl, byte [esp + 0x25]
mov byte [esp + 0x1a], cl
mov cl, byte [esp + 0x24]
mov byte [esp + 0x1b], cl
mov cl, byte [esp + 0x2f]
mov byte [esp + 0x28], cl
mov cl, byte [esp + 0x2e]
mov byte [esp + 0x29], cl
mov cl, byte [esp + 0x2d]
mov byte [esp + 0x2a], cl
mov cl, byte [esp + 0x2c]
mov byte [esp + 0x2b], cl
mov esi, dword [esp + 0x28]
and esi, 0xfffffff0
mov ecx, edi
and eax, esi
mov bl, byte [esp + 0x27]
shr eax, cl
mov ecx, edx
mov byte [esp + 0x18], bl
shl esi, cl
or eax, esi
mov esi, dword [esp + 0x38]
mov dword [esp + 0x28], eax
mov al, byte [esp + 0x2a]
mov cl, byte [esp + 0x29]
mov dl, byte [esp + 0x2b]
mov byte [esp + 0x2d], al
mov byte [esp + 0x2e], cl
lea eax, [esp + 0x2c]
lea ecx, [esp + 0x18]
mov byte [esp + 0x2c], dl
mov dl, byte [esp + 0x28]
push eax
push ecx
push esi
mov byte [esp + 0x3b], dl
call fcn.0041a6d0
inc ebp
add esi, 6
mov eax, dword [esp + 0x30]
mov dword [esp + 0x38], esi
dec eax
mov dword [esp + 0x30], eax
jne 0x41afa6
mov eax, dword [esp + 0xa4]
mov ebx, dword [esp + 0xb0]
mov ecx, dword [esp + 0xac]
test ecx, ecx
je 0x41b0c2
mov edx, dword [ecx]
mov ecx, dword [ecx + 4]
mov dword [esp + 0x1c], edx
mov dword [esp + 0x20], ecx
mov ecx, ebx
and ecx, 0xe
cmp ecx, 0xa
ja case.0x41b0d0.1
jmp dword [ecx*4 + 0x41b30c]
mov esi, dword [esp + 0xa0]
shr eax, 3
lea edi, [esi + eax*8]
cmp esi, edi
je case.0x41b0d0.1
lea edx, [esp + 0x3c]
push ebx
push edx
push esi
call fcn.0041b340
add esi, 8
cmp esi, edi
jne 0x41b0ec
pop edi
pop esi
pop ebp
pop ebx
add esp, 0x8c
ret 0x14
mov esi, dword [esp + 0xa0]
shr eax, 3
lea eax, [esi + eax*8]
cmp esi, eax
mov dword [esp + 0x18], eax
je case.0x41b0d0.1
mov eax, dword [esi]
mov ecx, dword [esi + 4]
mov edi, dword [esp + 0x1c]
mov ebp, dword [esp + 0x20]
lea edx, [esp + 0x3c]
push ebx
push edx
push esi
mov dword [esp + 0x28], eax
mov dword [esp + 0x2c], ecx
call fcn.0041b340
mov eax, dword [esi]
mov edx, dword [esi + 4]
xor eax, edi
xor edx, ebp
mov dword [esi], eax
mov eax, dword [esp + 0x18]
mov dword [esi + 4], edx
add esi, 8
cmp esi, eax
jne 0x41b125
pop edi
pop esi
pop ebp
pop ebx
add esp, 0x8c
ret 0x14
mov esi, dword [esp + 0xa0]
shr eax, 3
lea eax, [esi + eax*8]
cmp esi, eax
mov dword [esp + 0x18], eax
je case.0x41b0d0.1
mov eax, dword [esp + 0x1c]
mov ecx, dword [esp + 0x20]
mov ebp, dword [esi]
mov edi, dword [esi + 4]
lea edx, [esp + 0x3c]
push ebx
push edx
push esi
mov dword [esp + 0x1c], eax
mov dword [esp + 0x20], ecx
call fcn.0041b340
mov ecx, dword [esi]
mov edx, dword [esi + 4]
mov eax, dword [esp + 0x10]
add esi, 8
xor ecx, eax
mov dword [esi - 8], ecx
mov ecx, dword [esp + 0x14]
xor edx, ecx
mov dword [esi - 4], edx
mov eax, dword [esi - 4]
mov edx, dword [esi - 8]
xor edi, eax
mov eax, dword [esp + 0x18]
xor ebp, edx
cmp esi, eax
mov dword [esp + 0x1c], ebp
mov dword [esp + 0x20], edi
jne 0x41b185
pop edi
pop esi
pop ebp
pop ebx
add esp, 0x8c
ret 0x14
mov esi, dword [esp + 0xa0]
shr eax, 3
lea edi, [esi + eax*8]
cmp esi, edi
je case.0x41b0d0.1
mov edx, dword [esp + 0x20]
mov eax, dword [esi]
mov ecx, dword [esp + 0x1c]
mov dword [esp + 0x14], edx
mov dword [esp + 0x1c], eax
lea edx, [esp + 0x3c]
mov dword [esp + 0x10], ecx
mov ecx, dword [esi + 4]
push ebx
lea eax, [esp + 0x14]
push edx
push eax
mov dword [esp + 0x2c], ecx
call fcn.0041a950
mov eax, dword [esi]
mov ebp, dword [esi + 4]
mov ecx, dword [esp + 0x10]
mov edx, dword [esp + 0x14]
xor eax, ecx
xor ebp, edx
mov dword [esi], eax
mov dword [esi + 4], ebp
add esi, 8
cmp esi, edi
jne 0x41b1fc
pop edi
pop esi
pop ebp
pop ebx
add esp, 0x8c
ret 0x14
mov esi, dword [esp + 0xa0]
shr eax, 3
lea edi, [esi + eax*8]
cmp esi, edi
je case.0x41b0d0.1
lea eax, [esp + 0x3c]
push ebx
lea ecx, [esp + 0x20]
push eax
push ecx
call fcn.0041a950
mov ebp, dword [esi]
add esi, 8
mov edx, dword [esp + 0x1c]
mov eax, dword [esp + 0x20]
xor ebp, edx
mov edx, dword [esi - 4]
xor edx, eax
mov dword [esi - 8], ebp
mov dword [esi - 4], edx
cmp esi, edi
jne 0x41b268
pop edi
pop esi
pop ebp
pop ebx
add esp, 0x8c
ret 0x14
mov esi, dword [esp + 0xa0]
shr eax, 3
lea eax, [esi + eax*8]
cmp esi, eax
mov dword [esp + 0x18], eax
je case.0x41b0d0.1
mov edi, dword [esp + 0x1c]
mov ebp, dword [esp + 0x20]
lea ecx, [esp + 0x3c]
push ebx
lea edx, [esp + 0x20]
push ecx
push edx
call fcn.0041a950
mov ecx, dword [esi]
mov edx, dword [esi + 4]
mov eax, dword [esp + 0x1c]
xor ecx, eax
mov eax, dword [esp + 0x18]
mov dword [esi], ecx
mov ecx, dword [esp + 0x20]
xor edx, ecx
add edi, 1
mov dword [esi + 4], edx
mov dword [esp + 0x1c], edi
adc ebp, 0
add esi, 8
cmp esi, eax
mov dword [esp + 0x20], ebp
jne 0x41b2b8
pop edi
pop esi
pop ebp
pop ebx
add esp, 0x8c
ret 0x14