Function at 0x411710
Capabilities:
Encode data using xor

Disassembly:
sub esp, 0xc
push ebx
push ebp
push esi
push edi
push 4
mov ebx, ecx
call fcn.00424367
push 4
mov edi, eax
call fcn.00424367
mov ebp, dword [ebx + 4]
add esp, 8
mov esi, eax
xor edx, edx
mov dword [esp + 0x14], esi
lea ecx, [ebp*4]
test ecx, ecx
jle 0x411769
mov esi, dword [esp + 0x20]
mov ecx, dword [esp + 0x24]
sub esi, ecx
nop dword [eax]
mov al, byte [esi + ecx]
inc edx
mov byte [ecx], al
inc ecx
mov ebp, dword [ebx + 4]
lea eax, [ebp*4]
cmp edx, eax
jl 0x411750
mov esi, dword [esp + 0x14]
mov eax, dword [ebx + 8]
inc eax
shl ebp, 2
imul eax, dword [ebx]
shl eax, 2
cmp ebp, eax
jge 0x4119c5
mov edx, dword [esp + 0x24]
add edx, 0xfffffffd
add edx, ebp
mov dword [esp + 0x18], edx
nop dword [eax + eax]
mov cl, byte [edx - 1]
mov byte [edi], cl
mov ch, byte [edx]
mov byte [edi + 1], ch
mov al, byte [edx + 1]
mov byte [esp + 0x20], al
mov byte [edi + 2], al
mov al, byte [edx + 2]
mov byte [esp + 0x11], al
mov byte [edi + 3], al
mov eax, ebp
cdq
and edx, 3
mov byte [esp + 0x12], cl
add eax, edx
mov byte [esp + 0x13], ch
sar eax, 2
cdq
idiv dword [ebx + 4]
mov eax, edx
test eax, eax
jne 0x4118aa
movzx ecx, ch
mov eax, ecx
and eax, 0xfffffff0
and ecx, 0x8000000f
jns 0x4117e4
dec ecx
or ecx, 0xfffffff0
inc ecx
movzx eax, byte [eax + ecx + 0x4533e8]
movzx ecx, byte [esp + 0x20]
mov byte [edi], al
mov eax, ecx
and eax, 0xfffffff0
and ecx, 0x8000000f
jns 0x411805
dec ecx
or ecx, 0xfffffff0
inc ecx
movzx eax, byte [eax + ecx + 0x4533e8]
movzx ecx, byte [esp + 0x11]
mov byte [edi + 1], al
mov eax, ecx
and eax, 0xfffffff0
and ecx, 0x8000000f
jns 0x411827
dec ecx
or ecx, 0xfffffff0
inc ecx
movzx eax, byte [eax + ecx + 0x4533e8]
movzx ecx, byte [esp + 0x12]
mov byte [edi + 2], al
mov eax, ecx
and eax, 0xfffffff0
and ecx, 0x8000000f
jns 0x411849
dec ecx
or ecx, 0xfffffff0
inc ecx
movzx eax, byte [eax + ecx + 0x4533e8]
mov cl, 1
mov byte [edi + 3], al
mov eax, ebp
mov esi, dword [ebx + 4]
shl esi, 2
cdq
idiv esi
lea edx, [eax - 1]
test edx, edx
jle 0x41187c
mov al, cl
add cl, cl
shr al, 7
movzx eax, al
imul eax, eax, 0x1b
xor cl, al
sub edx, 1
jne 0x411868
mov esi, dword [esp + 0x14]
mov byte [esi], cl
mov word [esi + 2], 0
mov byte [esi + 1], 0
xor byte [edi], cl
movzx eax, byte [esi + 1]
xor byte [edi + 1], al
movzx eax, byte [esi + 2]
xor byte [edi + 2], al
movzx eax, byte [esi + 3]
mov dl, byte [edi]
xor byte [edi + 3], al
jmp 0x411943
cmp dword [ebx + 4], 6
mov dl, cl
jle 0x411943
cmp eax, 4
jne 0x411943
movzx ecx, cl
mov eax, ecx
and eax, 0xfffffff0
and ecx, 0x8000000f
jns 0x4118d4
dec ecx
or ecx, 0xfffffff0
inc ecx
mov dl, byte [eax + ecx + 0x4533e8]
movzx ecx, byte [esp + 0x13]
mov eax, ecx
mov byte [edi], dl
and eax, 0xfffffff0
and ecx, 0x8000000f
jns 0x4118f4
dec ecx
or ecx, 0xfffffff0
inc ecx
movzx eax, byte [eax + ecx + 0x4533e8]
movzx ecx, byte [esp + 0x20]
mov byte [edi + 1], al
mov eax, ecx
and eax, 0xfffffff0
and ecx, 0x8000000f
jns 0x411916
dec ecx
or ecx, 0xfffffff0
inc ecx
movzx eax, byte [eax + ecx + 0x4533e8]
movzx ecx, byte [esp + 0x11]
mov byte [edi + 2], al
mov eax, ecx
and eax, 0xfffffff0
and ecx, 0x8000000f
jns 0x411938
dec ecx
or ecx, 0xfffffff0
inc ecx
movzx eax, byte [eax + ecx + 0x4533e8]
mov byte [edi + 3], al
mov ecx, dword [ebx + 4]
mov eax, ebp
shl ecx, 2
sub eax, ecx
mov ecx, dword [esp + 0x24]
movzx eax, byte [eax + ecx]
xor al, dl
mov edx, dword [esp + 0x18]
mov byte [edx + 3], al
mov eax, ebp
mov ecx, dword [ebx + 4]
shl ecx, 2
sub eax, ecx
mov ecx, dword [esp + 0x24]
movzx eax, byte [eax + ecx + 1]
xor al, byte [edi + 1]
mov byte [edx + 4], al
mov eax, ebp
mov ecx, dword [ebx + 4]
shl ecx, 2
sub eax, ecx
mov ecx, dword [esp + 0x24]
movzx eax, byte [eax + ecx + 2]
xor al, byte [edi + 2]
mov byte [edx + 5], al
mov eax, ebp
mov ecx, dword [ebx + 4]
add ebp, 4
shl ecx, 2
sub eax, ecx
mov ecx, dword [esp + 0x24]
movzx eax, byte [eax + ecx + 3]
xor al, byte [edi + 3]
mov byte [edx + 6], al
add edx, 4
mov eax, dword [ebx + 8]
inc eax
mov dword [esp + 0x18], edx
imul eax, dword [ebx]
shl eax, 2
cmp ebp, eax
jl 0x411790
push esi
call fcn.00423d7f
push edi
call fcn.00423d7f
add esp, 8
pop edi
pop esi
pop ebp
pop ebx
add esp, 0xc
ret 8