Function at 0x41d570
Capabilities:
Encode data using xor

Disassembly:
push ebp
mov ebp, esp
sub esp, 0x2c
push ebx
push esi
push edi
mov dword [ebp - 0x2c], ecx
mov esi, 0x11b55
mov edi, 0xcd29
mov dword [ebp - 0x1c], 0xb08d
push 0xee47
mov ecx, 0x18108
mov dword [ebp - 4], 0x102f
mov dword [ebp - 0x24], esi
mov ebx, 0xa5bb
mov dword [ebp - 0xc], edi
call fcn.00401170
push 0xee47
mov ecx, 0x18108
call fcn.00401170
add esp, 8
mov dword [ebp - 0x18], 0xffffc129
mov dword [ebp - 0x20], 0xe8b
mov dword [ebp - 0x10], 0x19fdf
call fcn.00402b20
add eax, 0xffffe12e
mov dword [ebp - 0x14], 0
mov dword [ebp - 0x28], eax
test eax, eax
jle 0x41d640
mov ecx, 0x15ae
mov eax, 0x19fdf
mov edx, 0xffffc129
nop dword [eax]
or dword [ebp - 0x20], 0xe92f
xor ecx, 0x125b8
and dword [ebp - 0x1c], 0xb87b
mov dword [ebp - 0x18], edx
mov edx, dword [ebp - 4]
mov dword [ebp - 4], edx
mov edx, dword [ebp - 0x14]
inc edx
cmp edx, dword [ebp - 0x28]
mov dword [ebp - 0x14], edx
mov edx, dword [ebp - 0x18]
jl 0x41d600
mov dword [ebp - 0x10], eax
mov eax, dword [ebp - 4]
mov dword [ebp - 4], eax
mov dword [ebp - 0x24], esi
mov dword [ebp - 0xc], edi
nop dword [eax + eax]
push 0xee47
mov ecx, 0x18108
call fcn.00401170
push 0xee47
mov ecx, 0x18108
call fcn.00401170
push 0xee47
mov ecx, 0x18108
call fcn.00401170
push 0xee47
mov ecx, 0x18108
call fcn.00401170
mov ecx, 0x16f61
call fcn.00401710
push 0xee47
mov ecx, 0x18108
call fcn.00401170
push 0xee47
mov ecx, 0x18108
call fcn.00401170
push 0xee47
mov ecx, 0x18108
call fcn.00401170
push 0xee47
mov ecx, 0x18108
call fcn.00401170
push 0xee47
mov ecx, 0x18108
call fcn.00401170
push 0xee47
mov ecx, 0x18108
call fcn.00401170
add esp, 0x28
mov dword [ebp - 0x20], 0xb997
call fcn.00404cd0
xor ecx, ecx
mov dword [ebp - 0x1c], eax
cmp dword [0x47edf4], ecx
jbe 0x41d724
mov ebx, dword [ebp + 0xc]
mov edi, dword [ebp + 8]
mov esi, dword [ebp - 0x2c]
mov eax, ecx
cdq
idiv dword [ebx]
mov al, byte [edx + edi]
xor byte [esi + ecx], al
inc ecx
cmp ecx, dword [0x47edf4]
jb 0x41d705
mov esi, dword [ebp - 0x24]
mov ebx, 0xa5bb
mov edi, dword [ebp - 0xc]
call fcn.00401fb0
push 0xee47
mov ecx, 0x18108
mov dword [ebp - 8], 0x3db0
call fcn.00401170
push 0xee47
mov ecx, 0x18108
call fcn.00401170
push 0xee47
mov ecx, 0x18108
call fcn.00401170
push 0xee47
mov ecx, 0x18108
call fcn.00401170
or edi, dword [ebp - 4]
add esp, 0x10
mov eax, 0xf43d
mov dword [ebp - 0xc], edi
or dword [ebp - 0x10], eax
mov edi, 0xffff8ca1
or esi, 0x25fee
push 0x5ad4
push ecx
push 0x3ae9
push ecx
push 0x7a
push 0x11df5
push ecx
call fcn.004013a0
mov eax, dword [ebp - 0x1c]
add esp, 0x1c
mov ecx, dword [ebp - 0xc]
mov edx, dword [ebp - 0x10]
nop dword [eax]
sub esi, dword [ebp - 8]
and eax, 0x4767
sub esi, 0xe647
mov dword [ebp - 0x1c], eax
add edi, 0x7d25
and esi, edx
cmp ebx, 0x10d71
jle 0x41d7df
or esi, dword [ebp - 0x18]
and ebx, 0xf988
add dword [ebp - 8], eax
sub esi, edi
inc edx
and ebx, edi
cmp dword [ebp - 0x20], 0x8799
jge 0x41d81d
add dword [ebp - 0x20], 0x122a6
xor edi, ecx
and ecx, 0xf43d
and eax, 0x906d
xor edi, ecx
xor eax, 0x8f1e
add ebx, edi
or esi, 0xf9b5
cmp dword [ebp - 8], 0xf651
jle 0x41d81d
and ebx, 0x12195
cmp edx, 0x20000
jl 0x41d7b0
push 0x5ad4
push ecx
push 0x3ae9
push ecx
add esi, 0xffffc472
push esi
push 0x11df5
push ecx
call fcn.004013a0
add esp, 0x1c
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret