Function at 0x41f310
Capabilities:
Encode data using xor

Disassembly:
mov eax, 0x1918
call fcn.00427e70
mov eax, dword [section..data]
xor eax, esp
mov dword [esp + 0x1914], eax
mov eax, dword [esp + 0x1924]
test eax, eax
push ebp
mov ebp, dword [esp + 0x1924]
mov dword [esp + 0xc], ecx
jle 0x41f990
lea edx, [eax - 1]
mov eax, 0xcccccccd
mul edx
push ebx
shr edx, 2
add edx, 1
push esi
mov dword [esp + 0x1c], edx
push edi
lea ebx, [ebx]
lea eax, [esp + 0x24]
mov dword [esp + 0x14], eax
mov dword [esp + 0x10], 5
test ebp, ebp
jle 0x41f4b8
mov esi, dword [esp + 0x192c]
add esi, 1
mov edi, ebp
mov dl, byte [esi - 0x141]
mov bl, byte [esi]
cmp dl, bl
mov cl, byte [esi - 1]
jne 0x41f3eb
cmp dl, byte [esi - 2]
je 0x41f495
mov bl, byte [esi + 0x13f]
cmp dl, bl
je 0x41f495
mov dl, byte [esi - 2]
cmp dl, bl
movzx cx, cl
jne 0x41f3d0
xor ebx, ebx
mov bh, byte [esi]
or ebx, ecx
mov word [eax], bx
xor ebx, ebx
mov bh, cl
mov bl, dl
mov word [eax + 0x280], bx
jmp 0x41f4a9
xor edx, edx
mov dh, byte [esi]
or edx, ecx
mov word [eax], dx
xor edx, edx
mov dh, cl
or edx, ecx
mov word [eax + 0x280], dx
jmp 0x41f4a9
mov bl, byte [esi - 2]
cmp dl, bl
jne 0x41f43e
mov bl, byte [esi + 0x13f]
cmp dl, bl
je 0x41f495
mov dl, byte [esi]
cmp dl, bl
jne 0x41f426
xor ebx, ebx
movzx cx, cl
mov bh, cl
mov bl, byte [esi - 2]
mov word [eax], bx
xor ebx, ebx
mov bh, dl
or ebx, ecx
mov word [eax + 0x280], bx
jmp 0x41f4a9
movzx bx, byte [esi - 2]
movzx dx, cl
mov ecx, edx
shl ecx, 8
or bx, cx
mov word [eax], bx
or ecx, edx
jmp 0x41f4a2
mov dl, byte [esi + 0x13f]
cmp bl, dl
jne 0x41f473
cmp bl, byte [esi]
movzx dx, cl
je 0x41f499
mov ecx, edx
shl ecx, 8
mov ebp, ecx
or ebp, edx
movzx dx, bl
or dx, cx
mov word [eax], bp
mov ebp, dword [esp + 0x1930]
mov word [eax + 0x280], dx
jmp 0x41f4a9
mov bl, byte [esi]
cmp bl, dl
jne 0x41f495
movzx cx, cl
xor edx, edx
mov dh, cl
or edx, ecx
mov word [eax], dx
xor edx, edx
mov dh, bl
or edx, ecx
mov word [eax + 0x280], dx
jmp 0x41f4a9
movzx dx, cl
xor ecx, ecx
mov ch, dl
or ecx, edx
mov word [eax], cx
mov word [eax + 0x280], cx
add esi, 1
add eax, 2
sub edi, 1
jne 0x41f384
mov eax, dword [esp + 0x14]
add dword [esp + 0x192c], 0x140
add eax, 0x500
sub dword [esp + 0x10], 1
mov dword [esp + 0x14], eax
jne 0x41f370
mov ecx, dword [esp + 0x18]
lea eax, [esp + 0x24]
xor edi, edi
mov dword [esp + 0x14], eax
mov dword [esp + 0x1c], edi
lea ecx, [ecx]
mov esi, dword [esp + 0x14]
mov eax, 0x2aaaaaab
imul edi
mov eax, edx
shr eax, 0x1f
add eax, edx
lea edx, [eax + eax*2]
add edx, edx
mov eax, edi
sub eax, edx
cmp eax, 5
ja case.default.0x41f514
jmp dword [eax*4 + 0x41f9a8]
test ebp, ebp
jle 0x41f599
lea edx, [ebp - 1]
shr edx, 1
add edx, 1
jmp 0x41f530
mov eax, dword [esi]
movzx edi, ah
mov edi, dword [edi*4 + 0x503680]
mov ebx, eax
and ebx, 0xff
xor edi, dword [ebx*4 + 0x503680]
movzx ebx, ah
and edi, 0xffff
xor edi, dword [ebx*4 + 0x503680]
mov ebx, eax
mov dword [ecx], edi
mov edi, eax
shr edi, 0x10
and edi, 0xff
mov edi, dword [edi*4 + 0x503680]
shr ebx, 0x18
xor edi, dword [ebx*4 + 0x503680]
shr eax, 0x18
and edi, 0xffff
xor edi, dword [eax*4 + 0x503680]
add esi, 4
mov dword [ecx + 4], edi
add ecx, 8
sub edx, 1
jne 0x41f530
add dword [esp + 0x14], 0x280
jmp case.default.0x41f514
test ebp, ebp
jle 0x41f68f
lea eax, [ebp - 1]
shr eax, 1
add eax, 1
mov dword [esp + 0x10], eax
lea ebx, [ebx]
mov edx, dword [esi]
mov eax, dword [esi - 0x280]
movzx edi, dh
mov edi, dword [edi*4 + 0x503280]
movzx ebx, ah
add edi, dword [ebx*4 + 0x502680]
mov ebx, edx
and ebx, 0xff
mov ebx, dword [ebx*4 + 0x503280]
mov ebp, eax
and ebp, 0xff
add ebx, dword [ebp*4 + 0x502680]
movzx ebp, ah
xor edi, ebx
movzx ebx, dh
mov ebx, dword [ebx*4 + 0x503280]
add ebx, dword [ebp*4 + 0x502680]
and edi, 0xffff
xor edi, ebx
mov dword [ecx], edi
mov edi, edx
shr edi, 0x10
and edi, 0xff
mov edi, dword [edi*4 + 0x503280]
mov ebx, eax
shr ebx, 0x10
and ebx, 0xff
add edi, dword [ebx*4 + 0x502680]
mov ebx, edx
shr ebx, 0x18
mov ebx, dword [ebx*4 + 0x503280]
mov ebp, eax
shr ebp, 0x18
add ebx, dword [ebp*4 + 0x502680]
shr edx, 0x18
mov edx, dword [edx*4 + 0x503280]
xor edi, ebx
shr eax, 0x18
add edx, dword [eax*4 + 0x502680]
and edi, 0xffff
xor edi, edx
mov dword [ecx + 4], edi
add esi, 4
add ecx, 8
sub dword [esp + 0x10], 1
jne 0x41f5c0
mov ebp, dword [esp + 0x1930]
add dword [esp + 0x14], 0x280
jmp case.default.0x41f514
test ebp, ebp
jle 0x41f68f
lea eax, [ebp - 1]
shr eax, 1
add eax, 1
mov dword [esp + 0x10], eax
lea esp, [esp]
mov edx, dword [esi]
mov eax, dword [esi - 0x280]
movzx edi, dh
mov edi, dword [edi*4 + 0x502e80]
movzx ebx, ah
add edi, dword [ebx*4 + 0x502a80]
mov ebx, edx
and ebx, 0xff
mov ebx, dword [ebx*4 + 0x502e80]
mov ebp, eax
and ebp, 0xff
add ebx, dword [ebp*4 + 0x502a80]
movzx ebp, ah
xor edi, ebx
movzx ebx, dh
mov ebx, dword [ebx*4 + 0x502e80]
add ebx, dword [ebp*4 + 0x502a80]
and edi, 0xffff
xor edi, ebx
mov dword [ecx], edi
mov edi, edx
shr edi, 0x10
and edi, 0xff
mov edi, dword [edi*4 + 0x502e80]
mov ebx, eax
shr ebx, 0x10
and ebx, 0xff
add edi, dword [ebx*4 + 0x502a80]
mov ebx, edx
shr ebx, 0x18
mov ebx, dword [ebx*4 + 0x502e80]
mov ebp, eax
shr ebp, 0x18
add ebx, dword [ebp*4 + 0x502a80]
shr edx, 0x18
mov edx, dword [edx*4 + 0x502e80]
xor edi, ebx
shr eax, 0x18
add edx, dword [eax*4 + 0x502a80]
and edi, 0xffff
xor edi, edx
mov dword [ecx + 4], edi
add esi, 4
add ecx, 8
sub dword [esp + 0x10], 1
jne 0x41f6b0
add dword [esp + 0x14], 0x280
jmp 0x41f958
test ebp, ebp
jle 0x41f68f
lea eax, [ebp - 1]
shr eax, 1
add eax, 1
mov dword [esp + 0x10], eax
lea esp, [esp]
mov edx, dword [esi]
mov eax, dword [esi - 0x280]
movzx edi, dh
mov edi, dword [edi*4 + 0x502a80]
movzx ebx, ah
add edi, dword [ebx*4 + 0x502e80]
mov ebx, edx
and ebx, 0xff
mov ebx, dword [ebx*4 + 0x502a80]
mov ebp, eax
and ebp, 0xff
add ebx, dword [ebp*4 + 0x502e80]
movzx ebp, ah
xor edi, ebx
movzx ebx, dh
mov ebx, dword [ebx*4 + 0x502a80]
add ebx, dword [ebp*4 + 0x502e80]
and edi, 0xffff
xor edi, ebx
mov dword [ecx], edi
mov edi, edx
shr edi, 0x10
and edi, 0xff
mov edi, dword [edi*4 + 0x502a80]
mov ebx, eax
shr ebx, 0x10
and ebx, 0xff
add edi, dword [ebx*4 + 0x502e80]
mov ebx, edx
shr ebx, 0x18
mov ebx, dword [ebx*4 + 0x502a80]
mov ebp, eax
shr ebp, 0x18
add ebx, dword [ebp*4 + 0x502e80]
shr edx, 0x18
mov edx, dword [edx*4 + 0x502a80]
xor edi, ebx
shr eax, 0x18
add edx, dword [eax*4 + 0x502e80]
and edi, 0xffff
xor edi, edx
mov dword [ecx + 4], edi
add esi, 4
add ecx, 8
sub dword [esp + 0x10], 1
jne 0x41f7a0
add dword [esp + 0x14], 0x280
jmp 0x41f958
test ebp, ebp
jle case.default.0x41f514
lea eax, [ebp - 1]
shr eax, 1
add eax, 1
mov dword [esp + 0x10], eax
lea esp, [esp]
mov edx, dword [esi]
mov eax, dword [esi - 0x280]
movzx edi, dh
mov edi, dword [edi*4 + 0x502680]
movzx ebx, ah
add edi, dword [ebx*4 + 0x503280]
mov ebx, edx
and ebx, 0xff
mov ebx, dword [ebx*4 + 0x502680]
mov ebp, eax
and ebp, 0xff
add ebx, dword [ebp*4 + 0x503280]
movzx ebp, ah
xor edi, ebx
movzx ebx, dh
mov ebx, dword [ebx*4 + 0x502680]
add ebx, dword [ebp*4 + 0x503280]
and edi, 0xffff
xor edi, ebx
mov dword [ecx], edi
mov edi, edx
shr edi, 0x10
and edi, 0xff
mov edi, dword [edi*4 + 0x502680]
mov ebx, eax
shr ebx, 0x10
and ebx, 0xff
add edi, dword [ebx*4 + 0x503280]
mov ebx, edx
shr ebx, 0x18
mov ebx, dword [ebx*4 + 0x502680]
mov ebp, eax
shr ebp, 0x18
add ebx, dword [ebp*4 + 0x503280]
shr edx, 0x18
mov edx, dword [edx*4 + 0x502680]
xor edi, ebx
shr eax, 0x18
add edx, dword [eax*4 + 0x503280]
and edi, 0xffff
xor edi, edx
mov dword [ecx + 4], edi
add esi, 4
add ecx, 8
sub dword [esp + 0x10], 1
jne 0x41f890
mov ebp, dword [esp + 0x1930]
mov ecx, dword [esp + 0x18]
mov edi, dword [esp + 0x1c]
add ecx, dword [esp + 0x1938]
add edi, 1
cmp edi, 0xc
mov dword [esp + 0x18], ecx
mov dword [esp + 0x1c], edi
jl 0x41f4f0
sub dword [esp + 0x20], 1
jne 0x41f360
pop edi
pop esi
pop ebx
mov ecx, dword [esp + 0x1918]
pop ebp
xor ecx, esp
call fcn.004274fa
add esp, 0x1918
ret