Function at 0x41f790
Capabilities:
Encode data using xor

Disassembly:
push 0xffffffffffffffff
push 0x46257a
mov eax, dword fs:[0]
push eax
mov eax, 0x1078
call fcn.00444dc0
mov eax, dword [0x484904]
xor eax, esp
mov dword [esp + 0x1074], eax
push ebx
push ebp
push esi
push edi
mov eax, dword [0x484904]
xor eax, esp
push eax
lea eax, [esp + 0x108c]
mov dword fs:[0], eax
mov eax, dword [esp + 0x109c]
mov dword [esp + 0x20], eax
mov dword [esp + 0x1c], 0
mov ecx, dword [esp + 0x10a4]
push ecx
lea edx, [esp + 0x8c]
push 0x800
push edx
mov dword [esp + 0x10a0], 1
call fcn.00444415
mov esi, dword [esp + 0x10b8]
add esp, 0xc
cmp esi, 0x64
lea edi, [esi + 0x20]
jge 0x41f828
lea eax, [edi + 0x70]
cdq
mov ecx, 0x9d
idiv ecx
mov edi, edx
jmp 0x41f841
mov eax, 0x9c18f9c1
imul edi
sar edx, 6
mov eax, edx
shr eax, 0x1f
add eax, edx
imul eax, eax, 0xa4
add edi, eax
cmp edi, 0x88
jge 0x41f857
add edi, 0x49
cmp edi, 0x88
jge 0x41f857
add edi, 0x49
lea ecx, [esp + 0x10a0]
xor esi, 0xb3
call fcn.0041f1c0
mov ecx, eax
and ecx, 0x80000003
jns 0x41f878
dec ecx
or ecx, 0xfffffffc
inc ecx
mov eax, esi
cdq
mov ebx, 0xc
idiv ebx
mov eax, esi
mov esi, 6
mov ebx, edx
cdq
idiv esi
lea eax, [esp + 0x88]
sub ebx, edx
add ebx, edi
add ebx, ecx
lea edx, [eax + 1]
mov edi, edi
mov cl, byte [eax]
add eax, 1
test cl, cl
jne 0x41f8a0
sub eax, edx
mov ebp, eax
cdq
sub eax, edx
mov edi, eax
sar edi, 1
cmp byte [esp + 0x10b0], 1
jne 0x41f8ec
xor eax, eax
test edi, edi
jle 0x41f8ec
lea esi, [esp + ebp + 0x87]
jmp 0x41f8d0
mov dl, byte [esi]
mov cl, byte [esp + eax + 0x88]
mov byte [esp + eax + 0x88], dl
mov byte [esi], cl
add eax, 1
sub esi, 1
cmp eax, edi
jl 0x41f8d0
push 0x467770
lea eax, [esp + 0x88c]
push 0x800
push eax
mov dword [esp + 0x24], 0
call fcn.00444415
add esp, 0xc
cmp ebp, 3
jle 0x41f9e4
mov esi, ebp
lea esp, [esp]
mov ecx, dword [esp + 0x88]
add dword [esp + 0x18], 4
push ebp
lea edx, [esp + 0x90]
push edx
lea eax, [esp + 0x90]
push eax
mov dword [esp + 0x30], ecx
mov byte [esp + 0x34], 0
sub esi, 4
call fcn.004464c0
mov al, byte [esp + 0x30]
add esp, 0xc
cmp byte [esp + 0x10b0], 0
je 0x41f992
mov dl, byte [esp + 0x25]
mov cl, byte [esp + 0x27]
mov byte [esp + 0x17], dl
lea edx, [ebx - 3]
xor cl, dl
mov byte [esp + 0x24], cl
lea ecx, [ebx + 2]
xor cl, byte [esp + 0x26]
mov byte [esp + 0x25], cl
lea ecx, [ebx - 1]
xor cl, byte [esp + 0x17]
xor al, bl
mov byte [esp + 0x26], cl
mov byte [esp + 0x27], al
jmp 0x41f9c1
mov dl, byte [esp + 0x26]
lea ecx, [ebx - 3]
xor al, cl
lea ecx, [ebx + 2]
xor byte [esp + 0x25], cl
lea ecx, [ebx - 1]
xor dl, cl
mov cl, byte [esp + 0x27]
mov byte [esp + 0x27], al
mov al, byte [esp + 0x25]
xor cl, bl
mov byte [esp + 0x24], cl
mov byte [esp + 0x25], dl
mov byte [esp + 0x26], al
lea eax, [esp + 0x24]
push eax
lea ecx, [esp + 0x88c]
push 0x800
push ecx
call fcn.0044447a
add esp, 0xc
cmp esi, 3
jg 0x41f920
mov esi, ebp
sub esi, dword [esp + 0x18]
test esi, esi
jle 0x41fa47
push esi
lea edx, [esp + 0x8c]
push edx
lea eax, [esp + 0x2c]
push eax
call fcn.00444850
add esp, 0xc
xor eax, eax
test esi, esi
mov byte [esp + esi + 0x24], 0
jle 0x41fa1c
nop
xor byte [esp + eax + 0x24], 0x89
add eax, 1
cmp eax, esi
jl 0x41fa10
lea ecx, [esp + 0x24]
push ecx
lea edx, [esp + 0x88c]
push 0x800
push edx
call fcn.0044447a
lea eax, [esp + 0x94]
push ebp
push eax
mov ecx, eax
push ecx
call fcn.004464c0
add esp, 0x18
cmp byte [esp + 0x10b0], 0
jne 0x41fa7c
xor eax, eax
test edi, edi
jle 0x41fa7c
lea ecx, [esp + ebp + 0x887]
mov edi, edi
mov bl, byte [ecx]
mov dl, byte [esp + eax + 0x888]
mov byte [esp + eax + 0x888], bl
mov byte [ecx], dl
add eax, 1
sub ecx, 1
cmp eax, edi
jl 0x41fa60
mov esi, dword [esp + 0x20]
lea edx, [esp + 0x888]
push edx
mov ecx, esi
call fcn.0041f4a0
lea ecx, [esp + 0x10a0]
mov dword [esp + 0x1c], 1
mov byte [esp + 0x1094], 0
call fcn.0041f1d0
mov eax, esi
mov ecx, dword [esp + 0x108c]
mov dword fs:[0], ecx
pop ecx
pop edi
pop esi
pop ebp
pop ebx
mov ecx, dword [esp + 0x1074]
xor ecx, esp
call fcn.00443aa9
add esp, 0x1084
ret