Function at 0x41ce30
Capabilities:
Encode data using xor

Disassembly:
push ebp
mov ebp, esp
push ebx
push edi
push esi
and esp, 0xfffffff0
sub esp, 0x130
mov dword [esp + 0x10], 0x8b5e8d61
mov dword [esp + 0x14], 0x9739893b
mov dword [esp + 0x18], 0x93269535
mov dword [esp + 0x1c], 0x9f2e9151
mov dword [esp + 0x20], 0x9b569d2c
mov dword [esp + 0x24], 0x67da9939
mov dword [esp + 0x28], 0x638f65c5
lea eax, [esp + 0x2c]
mov dword [esp + 0x2c], 0x6160
mov dword [esp + 0xac], 0
mov ecx, dword [esp + 0xac]
cmp ecx, 0x1f
ja 0x41cefb
nop
nop
nop
nop
nop
nop
mov ecx, dword [esp + 0xac]
mov edx, dword [esp + 0xac]
movzx edx, byte [esp + edx + 0x10]
lea esi, [ecx + 0xea]
mov edi, edx
not edi
or edi, esi
and esi, edx
add esi, edi
neg esi
add ecx, esi
add ecx, 0xcb28b3e9
mov edx, ecx
xor edx, 0x99
and ecx, 0x19
lea ecx, [edx + ecx*2]
inc cl
mov edx, dword [esp + 0xac]
mov byte [esp + edx + 0x10], cl
inc dword [esp + 0xac]
mov ecx, dword [esp + 0xac]
cmp ecx, 0x20
jb 0x41cea0
lea esi, [esp + 0x10e]
lea edx, [esp + 0x10]
mov ecx, 7
mov edi, esi
xchg esi, edx
rep movsd dword es:[edi], dword [esi]
xchg esi, edx
lea edi, [esp + 0x12a]
mov ecx, 1
xchg esi, eax
rep movsw word es:[edi], word [esi]
xchg esi, eax
lea edi, [esp + 0x7c]
push edi
push 0
push 0
push 0xe
push esi
push 0
call dword [0x447c2c]
mov ebx, dword [esp + 0x7c]
test ebx, ebx
jns 0x41cf47
mov eax, 0xffffffff
jmp 0x41cf4a
lea eax, [ebx + ebx]
push eax
call fcn.00435870
add esp, 4
push edi
push ebx
mov ebx, eax
push eax
push 0xe
push esi
push 0
call dword [0x447c2c]
mov dword [esp + 0x10], 0x33e231dc
mov dword [esp + 0x14], 0x37d535d5
mov dword [esp + 0x18], 0xcb2bc933
mov dword [esp + 0x1c], 0xcf2bcd2b
mov dword [esp + 0x20], 0xc3c2c133
lea eax, [esp + 0x24]
mov dword [esp + 0x24], 0
mov dword [esp + 0x28], 0
mov dword [esp + 0x2c], 0
mov dword [esp + 0x30], 0
mov dword [esp + 0x34], 0
mov dword [esp + 0x38], 0
mov dword [esp + 0x3b], 0
mov dword [esp + 0xac], 0
mov ecx, dword [esp + 0xac]
cmp ecx, 0x2e
ja 0x41d029
nop
nop
mov edx, dword [esp + 0xac]
mov ecx, dword [esp + 0xac]
movzx ecx, byte [esp + ecx + 0x10]
lea esi, [edx + 0xf8]
and esi, ecx
mov edi, 7
sub edi, edx
or edi, ecx
add edi, esi
sub ecx, edi
add cl, 0x37
mov edx, dword [esp + 0xac]
mov byte [esp + edx + 0x10], cl
inc dword [esp + 0xac]
mov ecx, dword [esp + 0xac]
cmp ecx, 0x2f
jb 0x41cfe0
lea edi, [esp + 0xfa]
lea edx, [esp + 0x10]
mov ecx, 5
xchg esi, edx
rep movsd dword es:[edi], dword [esi]
xchg esi, edx
lea edi, [esp + 0x10e]
xor ecx, ecx
xchg esi, eax
rep movsw word es:[edi], word [esi]
xchg esi, eax
mov eax, dword [esp + 0x7c]
mov ecx, eax
add ecx, 9
jns 0x41d05f
mov eax, 0xffffffff
jmp 0x41d064
add eax, eax
add eax, 0x12
push eax
call fcn.00435870
add esp, 4
mov esi, eax
movzx ecx, word [ebx]
test cx, cx
je 0x41d091
lea edx, [ebx + 2]
mov eax, esi
nop
nop
nop
nop
mov word [eax], cx
add eax, 2
movzx ecx, word [edx]
add edx, 2
test cx, cx
jne 0x41d080
mov word [eax], 0
movzx ecx, word [esp + 0xfa]
test cx, cx
je 0x41d0c1
lea edx, [esp + 0xfc]
nop
nop
nop
nop
nop
nop
mov word [eax], cx
add eax, 2
movzx ecx, word [edx]
add edx, 2
test cx, cx
jne 0x41d0b0
mov edi, dword [ebp + 8]
mov word [eax], 0
lea eax, [esp + 0xa8]
push eax
push esi
call fcn.0043a580
add esp, 8
not eax
shr eax, 0x1f
mov eax, dword [eax*4 + 0x442538]
mov ecx, 0x5e4e6dd4
xor ecx, dword [0x442540]
add eax, ecx
inc eax
mov dword [esp + 0xa0], ebx
jmp eax