Function at 0x41dbc0
Capabilities:
Encode data using xor

Disassembly:
push ebp
mov ebp, esp
push ebx
push edi
push esi
and esp, 0xfffffff8
sub esp, 0x160
mov ecx, dword [ebp + 8]
xor eax, eax
cmp byte [ebp + 0x18], 0
setne al
lea eax, [eax*8 + 0x120]
lea edx, [esp + 0x34]
push 0
push 0
push eax
push edx
push dword [ebp + 0x10]
push dword [ebp + 0xc]
call fcn.0043aa60
mov ecx, eax
xor eax, eax
test ecx, ecx
js 0x41e138
mov dword [esp + 4], 0xe2e9fcf6
mov byte [esp + 8], 0x58
mov dword [esp + 9], 0
mov word [esp + 0xd], 0
xor edi, edi
mov eax, 0xffffffff
xor edx, edx
nop
nop
nop
nop
nop
nop
nop
nop
mov dword [esp + 0x18], edi
movzx edi, byte [esp + edx + 4]
mov ecx, edx
xor ecx, 0x6fced5ef
mov esi, eax
sub esi, ecx
and esi, edi
lea ebx, [edi + edi]
not ebx
add ebx, edi
mov edi, dword [esp + 0x18]
add ecx, edi
and ebx, ecx
or ebx, esi
add bl, 0x55
mov byte [esp + edx + 4], bl
inc edx
add edi, 2
add eax, 0xfffffffe
cmp edx, 0xb
jne 0x41dc30
cmp byte [esp + 0x53], 0
js 0x41dc8f
lea eax, [esp + 0x3c]
lea ecx, [esp + 4]
push eax
push ecx
push dword [ebp + 0x14]
call fcn.004062b0
add esp, 0xc
mov al, 1
mov dword [esp + 0x18], eax
jmp 0x41dcec
mov esi, dword [esp + 0x3c]
mov ebx, dword [esp + 0x40]
mov eax, esi
or eax, ebx
je 0x41dce4
mov edi, dword [esp + 0x44]
inc edi
push edi
call fcn.0040cc40
add esp, 4
mov ecx, dword [ebp + 8]
push 0
push 0
push edi
mov edi, eax
push eax
push ebx
push esi
call fcn.0043aa60
test eax, eax
setns al
mov dword [esp + 0x18], eax
js 0x41dcd9
lea eax, [esp + 4]
push edi
push eax
push dword [ebp + 0x14]
call fcn.004062b0
add esp, 0xc
push edi
call fcn.0040cc50
add esp, 4
jmp 0x41dcec
mov dword [esp + 0x18], 0
movzx eax, byte [ebp + 0x18]
movzx edi, al
lea eax, [edi*8 + 0xe8]
mov dword [esp + 4], 0xf2c6ccfe
mov word [esp + 8], 0x6fc3
mov dword [esp + 0xa], 0
mov word [esp + 0xe], 0
mov ecx, 0x260b1517
nop
nop
nop
movzx edx, byte [esp + ecx - 0x260b1513]
lea esi, [ecx - 0x260b1500]
and esi, edx
or edx, ecx
xor edx, esi
mov esi, edx
xor esi, 0x74
and edx, 0xb
add edx, edx
sub edx, esi
inc dl
mov byte [esp + ecx - 0x260b1513], dl
inc ecx
cmp ecx, 0x260b1523
jne 0x41dd20
lea ecx, [esp + eax]
add ecx, 0x34
cmp byte [esp + eax + 0x4b], 0
js 0x41dd78
lea eax, [esp + 4]
push ecx
push eax
push dword [ebp + 0x14]
call fcn.004062b0
add esp, 0xc
mov al, 1
mov dword [esp + 0x24], eax
jmp 0x41ddd9
mov ebx, dword [ecx]
mov esi, dword [ecx + 4]
mov eax, ebx
or eax, esi
je 0x41ddd1
mov dword [esp + 0x14], edi
mov edi, dword [ecx + 8]
inc edi
push edi
call fcn.0040cc40
add esp, 4
mov ecx, dword [ebp + 8]
push 0
push 0
push edi
mov edi, eax
push eax
push esi
push ebx
call fcn.0043aa60
test eax, eax
setns al
mov dword [esp + 0x24], eax
js 0x41ddc2
lea eax, [esp + 4]
push edi
push eax
push dword [ebp + 0x14]
call fcn.004062b0
add esp, 0xc
push edi
call fcn.0040cc50
add esp, 4
mov edi, dword [esp + 0x14]
jmp 0x41ddd9
mov dword [esp + 0x24], 0
mov dword [esp + 4], 0xadabb6bc
mov dword [esp + 8], 0xd6bdb641
mov byte [esp + 0xc], 0x5c
mov word [esp + 0xd], 0
mov byte [esp + 0xf], 0
xor eax, eax
nop
nop
nop
nop
mov ecx, eax
add cl, 0x39
xor cl, byte [esp + eax + 4]
add cl, 0xe3
mov byte [esp + eax + 4], cl
mov ecx, eax
and ecx, 1
xor eax, 1
lea eax, [eax + ecx*2]
cmp eax, 0xc
jb 0x41de00
cmp byte [esp + 0x6b], 0
js 0x41de44
lea eax, [esp + 0x54]
lea ecx, [esp + 4]
push eax
push ecx
push dword [ebp + 0x14]
call fcn.004062b0
add esp, 0xc
mov al, 1
mov dword [esp + 0x20], eax
jmp 0x41dea9
mov ebx, dword [esp + 0x54]
mov esi, dword [esp + 0x58]
mov eax, ebx
or eax, esi
je 0x41dea1
mov dword [esp + 0x14], edi
mov edi, dword [esp + 0x5c]
inc edi
push edi
call fcn.0040cc40
add esp, 4
mov ecx, dword [ebp + 8]
push 0
push 0
push edi
mov edi, eax
push eax
push esi
push ebx
call fcn.0043aa60
test eax, eax
setns al
mov dword [esp + 0x20], eax
js 0x41de92
lea eax, [esp + 4]
push edi
push eax
push dword [ebp + 0x14]
call fcn.004062b0
add esp, 0xc
push edi
call fcn.0040cc50
add esp, 4
mov edi, dword [esp + 0x14]
jmp 0x41dea9
mov dword [esp + 0x20], 0
mov dword [esp + 4], 0xb1a6b4ac
mov byte [esp + 8], 0x18
mov dword [esp + 9], 0
mov byte [esp + 0xd], 0
xor eax, eax
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
mov ecx, eax
add cl, 0xfb
xor cl, byte [esp + eax + 4]
add cl, 0x19
mov byte [esp + eax + 4], cl
inc eax
cmp eax, 0xa
jne 0x41ded0
cmp byte [esp + 0x83], 0
js 0x41df0d
lea eax, [esp + 0x6c]
lea ecx, [esp + 4]
push eax
push ecx
push dword [ebp + 0x14]
call fcn.004062b0
add esp, 0xc
mov al, 1
mov dword [esp + 0x1c], eax
jmp 0x41df72
mov dword [esp + 0x14], edi
mov esi, dword [esp + 0x6c]
mov edi, dword [esp + 0x70]
mov eax, esi
or eax, edi
je 0x41df66
mov ebx, dword [esp + 0x74]
inc ebx
push ebx
call fcn.0040cc40
add esp, 4
mov ecx, dword [ebp + 8]
push 0
push 0
push ebx
mov ebx, eax
push eax
push edi
push esi
call fcn.0043aa60
test eax, eax
setns al
mov dword [esp + 0x1c], eax
js 0x41df5b
lea eax, [esp + 4]
push ebx
push eax
push dword [ebp + 0x14]
call fcn.004062b0
add esp, 0xc
push ebx
call fcn.0040cc50
add esp, 4
jmp 0x41df6e
mov dword [esp + 0x1c], 0
mov edi, dword [esp + 0x14]
mov eax, dword [esp + edi*8 + 0x134]
mov ecx, dword [esp + edi*8 + 0x138]
mov dword [esp + 4], 0xaeaaa3b7
mov dword [esp + 8], 0xc4dbcca6
mov dword [esp + 0xc], 0x61cfdfdf
mov word [esp + 0x10], 0
mov edx, 0xbb
mov edi, 0x581a3044
nop
nop
nop
nop
nop
nop
nop
mov ebx, edi
xor ebx, 0x7e
mov esi, edi
or esi, 1
and esi, ebx
mov ebx, edx
and ebx, 0xfe
or ebx, esi
xor bl, byte [esp + edx - 0xb7]
xor bl, 1
add bl, 0x59
mov byte [esp + edx - 0xb7], bl
inc edx
dec edi
cmp edx, 0xc9
jne 0x41dfb0
mov dword [esp + 0x28], eax
mov dword [esp + 0x2c], ecx
fild qword [esp + 0x28]
sub esp, 0x10
lea eax, [esp + 0x14]
mov dword [esp + 4], eax
mov eax, dword [ebp + 0x14]
mov dword [esp], eax
fstp qword [esp + 8]
call fcn.00406300
add esp, 0x10
mov dword [esp + 0x14], eax
movzx eax, byte [esp + 0x8c]
mov dword [esp + 4], 0x42b063b
mov dword [esp + 8], 0xb0d3a33
mov word [esp + 0xc], 0x833f
mov dword [esp + 0xe], 0
mov word [esp + 0x12], 0
mov esi, 0x50145763
mov edx, 0xafeba89c
nop
nop
nop
nop
nop
nop
nop
movzx edi, byte [esp + esi - 0x5014575f]
mov ebx, edx
and ebx, 0x8c89208f
mov ecx, esi
and ecx, 0x50005650
or ecx, ebx
xor edi, 0x8c9d21af
mov ebx, edi
and ebx, ecx
add edi, ecx
add ebx, ebx
sub edi, ebx
mov ecx, edi
and ecx, 0x10
xor edi, 0x10
lea ecx, [edi + ecx*2]
inc cl
mov byte [esp + esi - 0x5014575f], cl
inc esi
dec edx
cmp esi, 0x50145773
jne 0x41e050
push eax
lea eax, [esp + 8]
push eax
push dword [ebp + 0x14]
call fcn.00406390
add esp, 0xc
mov edi, eax
movzx eax, byte [esp + 0x8d]
mov dword [esp + 4], 0xb1aaabbc
mov dword [esp + 8], 0x49b4b2c1
mov word [esp + 0xc], 0xdf57
mov dword [esp + 0xe], 0
mov word [esp + 0x12], 0
xor ecx, ecx
nop
nop
nop
nop
nop
lea edx, [ecx + ecx]
mov esi, edx
and esi, 0x12
mov ebx, ecx
xor ebx, 0xf9
add ebx, esi
xor bl, byte [esp + ecx + 4]
add bl, 0x23
mov byte [esp + ecx + 4], bl
and edx, 2
xor ecx, 1
add ecx, edx
cmp ecx, 0x10
jb 0x41e0e0
push eax
lea eax, [esp + 8]
push eax
push dword [ebp + 0x14]
call fcn.00406390
add esp, 0xc
mov ecx, dword [esp + 0x18]
and cl, byte [esp + 0x24]
mov edx, dword [esp + 0x20]
and dl, byte [esp + 0x1c]
and dl, cl
or edi, dword [esp + 0x14]
or edi, eax
sete al
and al, dl
lea esp, [ebp - 0xc]
pop esi
pop edi
pop ebx
pop ebp
ret