Function at 0x41ade0
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], 0x1ba919bc
mov dword [esp + 0x1c], 0xe751e558
mov dword [esp + 0x20], 0xe343e152
mov dword [esp + 0x24], 0xef43ed43
mov dword [esp + 0x28], 0xeb46e94c
mov dword [esp + 0x2c], 0xf758f559
mov dword [esp + 0x30], 0xf34ff151
mov dword [esp + 0x34], 0xff42fd48
lea eax, [esp + 0x38]
mov word [esp + 0x38], 0xf9f8
mov dword [esp + 0x3a], 0
mov dword [esp + 0x3e], 0
mov dword [esp + 0x42], 0
mov word [esp + 0x46], 0
mov dword [esp + 4], 0
mov ecx, dword [esp + 4]
cmp ecx, 0x2f
ja 0x41aeb8
nop
nop
nop
nop
nop
nop
mov ecx, dword [esp + 4]
mov edx, dword [esp + 4]
movzx esi, byte [esp + edx + 0x18]
lea edx, [ecx + 0x6b5757fc]
mov edi, edx
and edi, esi
xor edx, esi
add ecx, 0xfc
and ecx, esi
add ecx, edi
sub edx, ecx
lea ecx, [edx + edi*2]
mov dword [esp + 0x70], ecx
mov ecx, dword [esp + 0x70]
add cl, 0x1c
mov edx, dword [esp + 4]
mov byte [esp + edx + 0x18], cl
inc dword [esp + 4]
mov ecx, dword [esp + 4]
cmp ecx, 0x30
jb 0x41ae70
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]
xor eax, eax
nop
nop
nop
nop
nop
nop
nop
nop
nop
cmp word [edi + eax], 0
lea eax, [eax + 2]
jne 0x41aef0
lea ecx, [edi + eax]
add ecx, 0xfffffffe
mov eax, edi
not eax
and eax, ecx
xor ecx, edi
add eax, eax
sub eax, ecx
cmp eax, 0xffffffdd
jge 0x41af18
mov eax, 0xffffffff
jmp 0x41af1b
add eax, 0x22
push eax
call fcn.00409200
add esp, 4
mov esi, eax
movzx ecx, word [edi]
test cx, cx
je 0x41af51
add edi, 2
mov eax, esi
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 0x41af40
mov word [eax], 0
movzx ecx, word [esp + 0x70]
test cx, cx
je 0x41af81
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 0x41af70
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], 0xeba515a5
mov dword [esp + 0x1c], 0xef1be964
mov dword [esp + 0x20], 0xe364ed55
mov dword [esp + 0x24], 0xe75be156
mov dword [esp + 0x28], 0xfb51e554
mov dword [esp + 0x2c], 0xff49f945
mov dword [esp + 0x30], 0xf301fd4c
mov dword [esp + 0x34], 0xf70df10f
mov dword [esp + 0x38], 0xcb56f508
mov dword [esp + 0x3c], 0xcf7dc941
mov dword [esp + 0x40], 0xc37acd75
mov dword [esp + 0x44], 0xc771c107
mov dword [esp + 0x48], 0xdb70c574
mov dword [esp + 0x4c], 0xdf50d961
mov dword [esp + 0x50], 0xd303dd6a
mov dword [esp + 0x54], 0xd713d176
mov dword [esp + 0x58], 0xabd4d528
mov dword [esp + 0x64], 0
mov dword [esp + 0x60], 0
mov dword [esp + 0x5c], 0
mov dword [esp], 0
mov eax, dword [esp]
cmp eax, 0x4f
ja 0x41b097
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
mov eax, dword [esp]
mov ecx, dword [esp]
movzx ecx, byte [esp + ecx + 0x18]
lea edx, [eax + 0x7d]
and edx, ecx
add eax, ecx
add edx, edx
sub eax, edx
add eax, 0x81f1c17d
mov dword [esp + 0x6c], eax
mov eax, dword [esp + 0x6c]
add al, 0x95
mov ecx, dword [esp]
mov byte [esp + ecx + 0x18], al
inc dword [esp]
mov eax, dword [esp]
cmp eax, 0x50
jb 0x41b060
lea eax, [esp + 4]
push eax
push 0x41b3d0
lea eax, [esp + 0x20]
push eax
push esi
call fcn.0041be90
add esp, 0x10
mov ebx, eax
jmp dword [0x44340c]