Function at 0x41b970
Capabilities:
Encode data using xor

Disassembly:
push ebp
mov ebp, esp
push ebx
push edi
push esi
and esp, 0xfffffff0
sub esp, 0x140
mov dword [esp + 0x10], 0x83fe8da9
mov dword [esp + 0x14], 0x87e18113
mov dword [esp + 0x18], 0xbb2685e5
mov dword [esp + 0x1c], 0xbf2eb9f9
mov dword [esp + 0x20], 0xb3f6bd2c
mov dword [esp + 0x24], 0xb722b1d1
mov dword [esp + 0x28], 0xab8fb5d5
mov word [esp + 0x2c], 0xa9a8
mov dword [esp + 0x2e], 0
mov dword [esp + 0x31], 0
mov dword [esp + 0xbc], 0
mov eax, dword [esp + 0xbc]
cmp eax, 0x24
ja 0x41ba3e
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
mov eax, dword [esp + 0xbc]
mov ecx, dword [esp + 0xbc]
movzx ecx, byte [esp + ecx + 0x10]
lea edx, [eax - 0x5724b2ea]
lea esi, [eax + 0x16]
xor esi, edx
and edx, ecx
and esi, ecx
add eax, ecx
add eax, 0xa8db4d16
lea ecx, [esi + edx*2]
sub eax, ecx
add al, 0x66
mov ecx, dword [esp + 0xbc]
mov byte [esp + ecx + 0x10], al
inc dword [esp + 0xbc]
mov eax, dword [esp + 0xbc]
cmp eax, 0x25
jb 0x41b9f0
movzx ecx, word [esp + 0x10]
lea esi, [esp + 0x11e]
mov eax, esi
test cx, cx
je 0x41ba71
lea eax, [esp + 0x11e]
lea edx, [esp + 0x12]
nop
nop
nop
nop
mov word [eax], cx
add eax, 2
movzx ecx, word [edx]
add edx, 2
test cx, cx
jne 0x41ba60
mov word [eax], 0
lea edi, [esp + 0x7c]
push edi
push 0
push 0
push 0xe
push esi
push 0
call dword [0x443fd0]
mov ebx, dword [esp + 0x7c]
test ebx, ebx
jns 0x41ba99
mov eax, 0xffffffff
jmp 0x41ba9c
lea eax, [ebx + ebx]
push eax
call fcn.004088c0
add esp, 4
push edi
mov edi, eax
push ebx
push eax
push 0xe
push esi
push 0
call dword [0x443fd0]
mov dword [esp + 0x10], 0x63946582
mov dword [esp + 0x14], 0x6f8d618d
mov dword [esp + 0x18], 0x6b836dfb
mov dword [esp + 0x1c], 0x17836983
mov dword [esp + 0x20], 0x1314158b
mov dword [esp + 0x24], 0
mov dword [esp + 0x28], 0
mov dword [esp + 0x2c], 0
mov dword [esp + 0x30], 0
mov dword [esp + 0xbc], 0
mov eax, dword [esp + 0xbc]
cmp eax, 0x23
ja 0x41bb5e
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
mov eax, dword [esp + 0xbc]
mov ecx, dword [esp + 0xbc]
movzx ecx, byte [esp + ecx + 0x10]
lea edx, [eax + 0x31]
and edx, ecx
add eax, ecx
add edx, edx
sub eax, edx
add al, 0xda
mov ecx, dword [esp + 0xbc]
mov byte [esp + ecx + 0x10], al
inc dword [esp + 0xbc]
mov eax, dword [esp + 0xbc]
cmp eax, 0x24
jb 0x41bb20
movzx ecx, word [esp + 0x10]
lea eax, [esp + 0x10a]
test cx, cx
je 0x41bb91
lea edx, [esp + 0x12]
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 0x41bb80
mov word [eax], 0
mov eax, dword [esp + 0x7c]
mov ecx, eax
add ecx, 9
jns 0x41bba8
mov eax, 0xffffffff
jmp 0x41bbad
add eax, eax
add eax, 0x12
push eax
call fcn.004088c0
add esp, 4
mov ebx, eax
movzx ecx, word [edi]
test cx, cx
je 0x41bbe1
lea edx, [edi + 2]
mov eax, ebx
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 0x41bbd0
mov word [eax], 0
movzx ecx, word [esp + 0x10a]
test cx, cx
je 0x41bc11
lea edx, [esp + 0x10c]
nop
nop
nop
nop
nop
nop
mov word [eax], cx
add eax, 2
movzx ecx, word [edx]
add edx, 2
test cx, cx
jne 0x41bc00
mov word [eax], 0
lea eax, [esp + 0xb4]
push 0x20
push 1
push 3
push 0x120089
push eax
push ebx
call fcn.004356f0
add esp, 0x18
not eax
shr eax, 0x1f
mov eax, dword [eax*4 + 0x43dd54]
mov ecx, 0x346e05c7
xor ecx, dword [0x43dd5c]
add eax, ecx
inc eax
mov dword [esp + 0xac], ebx
jmp eax