Function at 0x41ad00
Capabilities:
Encode data using xor

Disassembly:
push ebp
mov ebp, esp
push ebx
push edi
push esi
and esp, 0xfffffff8
sub esp, 0x98
mov dword [esp + 0x18], 0xeba115ba
mov dword [esp + 0x1c], 0xef59e95e
mov dword [esp + 0x20], 0xe34bed58
mov dword [esp + 0x24], 0xe75be15b
mov dword [esp + 0x28], 0xfb40e54a
mov dword [esp + 0x2c], 0xff42f941
mov dword [esp + 0x30], 0xf377fd59
mov dword [esp + 0x34], 0xf744f14e
lea eax, [esp + 0x38]
mov word [esp + 0x38], 0xf5f6
mov dword [esp + 0x3a], 0
mov dword [esp + 0x3e], 0
mov dword [esp + 0x42], 0
mov byte [esp + 0x46], 0
mov dword [esp + 4], 0
mov ecx, dword [esp + 4]
cmp ecx, 0x2e
ja 0x41adec
nop
nop
nop
nop
nop
nop
nop
nop
mov ecx, dword [esp + 4]
mov edx, dword [esp + 4]
movzx edx, byte [esp + edx + 0x18]
mov esi, ecx
and esi, 0xe9771afd
xor ecx, 0x69771afd
lea esi, [ecx + esi*2]
mov ecx, esi
and ecx, edx
add esi, edx
add ecx, ecx
mov edx, ecx
xor edx, esi
not ecx
and ecx, esi
add ecx, ecx
sub ecx, edx
mov dword [esp + 0x70], ecx
mov ecx, dword [esp + 0x70]
mov edx, ecx
xor edx, 0x14
and ecx, 0x14
lea ecx, [edx + ecx*2]
inc cl
mov edx, dword [esp + 4]
mov byte [esp + edx + 0x18], cl
inc dword [esp + 4]
mov ecx, dword [esp + 4]
cmp ecx, 0x2f
jb 0x41ad90
mov ebx, dword [ebp + 8]
lea edi, [esp + 0x70]
lea edx, [esp + 0x18]
mov ecx, 8
xchg esi, edx
rep movsd dword es:[edi], dword [esi]
xchg esi, edx
lea edi, [esp + 0x90]
mov ecx, 1
xchg esi, eax
rep movsw word es:[edi], word [esi]
xchg esi, eax
mov eax, dword [ebp + 0x10]
mov edi, dword [eax + 4]
mov eax, 0xfffffffe
nop
nop
cmp word [edi + eax + 2], 0
lea eax, [eax + 2]
jne 0x41ae20
cmp eax, 0xffffffdd
jge 0x41ae37
mov eax, 0xffffffff
jmp 0x41ae3a
add eax, 0x22
push eax
call fcn.00408c20
add esp, 4
mov esi, eax
movzx ecx, word [edi]
test cx, cx
je 0x41ae71
add edi, 2
mov eax, esi
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
mov word [eax], cx
add eax, 2
movzx ecx, word [edi]
add edi, 2
test cx, cx
jne 0x41ae60
mov word [eax], 0
movzx ecx, word [esp + 0x70]
test cx, cx
je 0x41aea1
lea edx, [esp + 0x72]
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 0x41ae90
mov word [eax], 0
mov dword [esp + 4], ebx
mov dword [esp + 8], esi
mov eax, dword [ebp + 0xc]
mov dword [esp + 0xc], eax
mov eax, dword [ebp + 0x10]
mov dword [esp + 0x10], eax
mov eax, dword [ebp + 0x14]
mov dword [esp + 0x14], eax
mov dword [esp + 0x18], 0x13811181
mov dword [esp + 0x1c], 0x1f4b1d88
mov dword [esp + 0x20], 0x1b801971
mov dword [esp + 0x24], 0x76b0586
mov dword [esp + 0x28], 0x39d0190
mov dword [esp + 0x2c], 0xf9d0d69
mov dword [esp + 0x30], 0xb5d0998
mov dword [esp + 0x34], 0x3761355f
mov dword [esp + 0x38], 0x3356311c
mov dword [esp + 0x3c], 0x3fa13dad
mov dword [esp + 0x40], 0x3baa3951
mov dword [esp + 0x44], 0x27b52577
mov dword [esp + 0x48], 0x23bc21b0
mov dword [esp + 0x4c], 0x2fb42d4d
mov dword [esp + 0x50], 0x2b6329b2
mov dword [esp + 0x54], 0x57135546
mov dword [esp + 0x58], 0x5350517c
mov byte [esp + 0x64], 0
mov dword [esp + 0x60], 0
mov dword [esp + 0x5c], 0
mov dword [esp], 0
mov eax, dword [esp]
cmp eax, 0x4c
ja 0x41afa6
nop
mov eax, dword [esp]
mov ecx, dword [esp]
movzx ecx, byte [esp + ecx + 0x18]
lea edx, [eax + 0x2c832003]
add eax, 3
and eax, ecx
or edx, ecx
sub edx, eax
mov dword [esp + 0x6c], edx
mov eax, dword [esp + 0x6c]
add al, 0xeb
mov ecx, dword [esp]
mov byte [esp + ecx + 0x18], al
inc dword [esp]
mov eax, dword [esp]
cmp eax, 0x4d
jb 0x41af70
lea eax, [esp + 4]
push eax
push 0x41b2d0
lea eax, [esp + 0x20]
push eax
push esi
call fcn.0041b7f0
add esp, 0x10
mov ebx, eax
mov eax, dword [0x44126c]
mov ecx, 0x78266955
xor ecx, dword [0x441274]
add eax, ecx
inc eax
jmp eax