Function at 0x41b550
Capabilities:
Encode data using xor

Disassembly:
push ebp
mov ebp, esp
push ebx
push edi
push esi
and esp, 0xfffffff8
sub esp, 0x1a8
mov esi, esp
mov ebx, dword [ebp + 0x10]
push eax
push eax
mov dword [esi + 0x1c], esp
sub esp, 8
mov dword [esi + 0x4c], esp
sub esp, 8
mov dword [esi + 0xc], esp
push eax
mov dword [esi + 0x48], esp
sub esp, 0x14
mov dword [esi + 0x30], esp
sub esp, 0xc
mov dword [esi + 0x154], esp
sub esp, 8
mov dword [esi + 0x44], esp
sub esp, 8
mov dword [esi + 0x158], esp
mov dword [esi + 0x20], 0xc439c2fe
mov dword [esi + 0x24], 0xd838c636
mov dword [esi + 0x28], 0xdcdbda27
mov eax, 0x329a2089
mov ecx, 0x76
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
mov edi, ecx
and edi, 0x4c
mov edx, eax
and edx, 0x93
or edx, edi
movzx edi, byte [esi + eax - 0x329a2069]
xor edx, eax
xor edx, 0xb3
and edx, edi
xor edx, eax
add dl, 0xb8
mov byte [esi + eax - 0x329a2069], dl
inc eax
dec ecx
cmp eax, 0x329a2095
jne 0x41b5c0
mov dword [esi + 0x50], 0xd873c67d
mov dword [esi + 0x54], 0xdc6bda6d
mov dword [esi + 0x58], 0xd020de17
mov dword [esi + 0x5c], 0xd46fd22e
mov dword [esi + 0x60], 0xa874d66a
mov dword [esi + 0x64], 0xac17aa08
mov dword [esi + 0x68], 0xa010ae15
mov dword [esi + 0x6c], 0xa417a212
mov dword [esi + 0x70], 0xb8a7a66f
xor eax, eax
nop
nop
nop
nop
nop
nop
nop
nop
nop
mov ecx, eax
add cl, 0xad
xor cl, byte [esi + eax + 0x50]
add cl, 0x98
mov byte [esi + eax + 0x50], cl
mov ecx, eax
and ecx, 1
xor eax, 1
lea eax, [eax + ecx*2]
cmp eax, 0x24
jb 0x41b640
movzx ecx, word [esi + 0x50]
lea eax, [esi + 0x164]
test cx, cx
je 0x41b691
lea edx, [esi + 0x52]
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
mov word [eax], cx
add eax, 2
movzx ecx, word [edx]
add edx, 2
test cx, cx
jne 0x41b680
mov word [eax], 0
movzx ecx, word [ebx]
test cx, cx
je 0x41b6c1
lea edx, [ebx + 2]
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
mov word [eax], cx
add eax, 2
movzx ecx, word [edx]
add edx, 2
test cx, cx
jne 0x41b6b0
mov word [eax], 0
movzx ecx, word [esi + 0x20]
test cx, cx
je 0x41b6f1
lea edx, [esi + 0x22]
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
mov word [eax], cx
add eax, 2
movzx ecx, word [edx]
add edx, 2
test cx, cx
jne 0x41b6e0
mov word [eax], 0
mov eax, dword [ebp + 0xc]
mov eax, dword [eax]
mov dword [esi + 0x10], eax
mov dword [esi + 0x50], 0x919296f8
mov byte [esi + 0x54], 0xf6
mov eax, 0x3fa0f2e2
mov ebx, 0x73f3e31d
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
movzx edi, byte [esi + eax - 0x3fa0f292]
lea edx, [eax - 0x3fa0f200]
and edx, edi
add edx, edx
mov ecx, ebx
sub ecx, edi
add edi, eax
and ecx, edx
not edx
and edx, edi
sub edx, ecx
mov ecx, edx
and ecx, 0x6f
xor edx, 0xef
lea ecx, [edx + ecx*2]
inc cl
mov byte [esi + eax - 0x3fa0f292], cl
inc eax
dec ebx
cmp eax, 0x3fa0f2e7
jne 0x41b720
movzx eax, byte [esi + 0x50]
test al, al
je 0x41b77d
lea ecx, [esi + 0x51]
mov edx, dword [esi + 0x10]
nop
nop
mov byte [edx], al
inc edx
movzx eax, byte [ecx]
inc ecx
test al, al
jne 0x41b770
jmp 0x41b780
mov edx, dword [esi + 0x10]
mov ebx, edx
mov byte [edx], 0
lea eax, [esi + 0x15c]
lea ecx, [esi + 0x160]
lea edx, [esi + 0x38]
lea edi, [esi + 0x164]
push eax
push ecx
push edx
push edi
call fcn.0040ba60
add esp, 0x10
movzx eax, al
mov eax, dword [eax*4 + 0x44293c]
mov ecx, 0xc72fd98d
xor ecx, dword [0x442944]
add eax, ecx
inc eax
jmp eax