Function at 0x10042041
Capabilities:
Encode data using xor
Set environment variable

Disassembly:
mov eax, 0x10065477
call fcn.10063950
sub esp, 0x70
push ebx
push esi
push edi
mov dword [ebp - 0x24], 0x6eea
mov edi, ecx
xor esi, esi
mov dword [ebp - 0x10], esp
cmp dword [ebp - 0x24], 0x70ba
mov dword [ebp - 0x20], edi
jle 0x100420c1
push esi
push esi
call dword [sym.imp.KERNEL32.dll_SetEnvironmentVariableW]
xor ebx, ebx
mov edi, esi
inc ebx
mov eax, esi
mov dword [ebp - 0x1c], esi
add eax, edi
lea ecx, [ebp - 0x7c]
cdq
push edx
push eax
call fcn.10001a95
pop ecx
pop ecx
cmp dword [eax + 0x14], 0x10
jb 0x10042094
mov eax, dword [eax]
push eax
call fcn.1004cf6c
pop ecx
push esi
push ebx
lea ecx, [ebp - 0x7c]
call fcn.100052fb
mov eax, dword [ebp - 0x1c]
inc eax
mov dword [ebp - 0x1c], eax
cmp eax, 0x657e
jl 0x1004207d
inc edi
cmp edi, 0x60f5
jl 0x10042078
mov edi, dword [ebp - 0x20]
jmp 0x100420c4
xor ebx, ebx
inc ebx
cmp byte [ebp + 0x14], 0
je 0x10042135
mov dword [edi], 0x19
cmp dword [edi], 0xd
je 0x10042322
mov ecx, dword [ebp + 0x10]
push 0xfffffffffffffff7
pop edx
mov dword [ebp - 0x38], 0xd4e793
mov dword [ebp - 0x38], edx
mov dword [ebp - 0x38], 0xffffffff
mov dword [ebp - 0x38], 3
mov dword [ebp - 0x38], 0xffffffff
mov dword [ebp - 0x38], edx
mov dword [ebp - 0x38], 0xbf33880e
mov dword [ebp - 0x38], 0x71013923
mov dword [ebp - 0x18], esi
jmp 0x10042122
mov eax, dword [ebp - 0x18]
mov dword [ebp + eax*4 - 0x3c], 0xc044b0bf
inc dword [ebp - 0x18]
cmp dword [ebp - 0x18], ebx
jl 0x10042114
inc dword [ecx]
dec dword [edi]
cmp dword [edi], 0xd
jne 0x100420df
jmp 0x10042322
push dword [ebp - 0x3c]
movdqa xmm0, xmmword [0x100731f0]
lea eax, [ebp - 0x54]
push eax
lea eax, [ebp - 0x64]
mov dword [ebp - 0x48], esi
push eax
push esi
lea ecx, [ebp - 0x48]
mov dword [ebp - 0x44], esi
movdqu xmmword [ebp - 0x64], xmm0
mov dword [ebp - 0x40], esi
call fcn.10007acd
mov dword [ebp - 4], esi
mov dword [ebp - 0x38], 0xaf072071
mov dword [ebp - 0x38], 0xa1c17c77
mov dword [ebp - 0x34], 5
mov dword [ebp - 0x20], 0x6618
cmp dword [ebp - 0x20], 0x67d6
jle 0x100421e7
mov edi, esi
mov dword [ebp - 0x18], esi
mov ebx, esi
mov eax, esi
mov dword [ebp - 0x1c], esi
mov dword [ebp - 0x28], esi
mov ecx, eax
mov esi, ebx
sar esi, cl
and esi, edi
mov edi, dword [ebp - 0x28]
mov eax, esi
mov ecx, 0x10080db8
xor eax, edi
cdq
push edx
push eax
call fcn.10004c02
inc edi
cmp edi, 0x40e8
jl 0x100421a1
mov eax, dword [ebp - 0x1c]
mov edi, dword [ebp - 0x18]
inc eax
mov dword [ebp - 0x1c], eax
push 0
pop esi
cmp eax, 0x2b0d
jl 0x10042193
inc ebx
cmp ebx, 0x787e
jl 0x1004218e
inc edi
mov dword [ebp - 0x18], edi
cmp edi, 0x1f06
jl 0x1004218c
xor ebx, ebx
inc ebx
mov dword [ebp - 0x34], ebx
mov byte [ebp - 4], bl
cmp dword [ebp - 0x20], 0x645b
jge 0x10042226
mov edx, str.shwjrmwi_zvc_tne_gcpdsm_plrfmw_dzzck_thzzzhs
mov ecx, 0x10080db8
call fcn.10007110
jmp 0x10042226
mov dword [ebp - 4], esi
lea ecx, [ebp - 0x54]
mov dword [ebp - 0x34], 0x615e82aa
push ebx
call fcn.10004e2c
mov dword [ebp - 0x34], 0xffffffff
mov dword [ebp - 0x34], 0x62a4b15
mov dword [ebp - 0x30], 0xfffffff9
mov dword [ebp - 0x20], 0xffffffff
mov dword [ebp - 0x30], esi
mov dword [ebp - 0x30], 0xfffffffd
mov dword [ebp - 0x30], esi
mov dword [ebp - 0x28], 0xfffffff8
mov dword [ebp - 0x28], ebx
mov dword [ebp - 0x28], 0xffffffff
mov dword [ebp - 0x1c], esi
mov dword [ebp - 0x18], esi
jmp 0x1004228b
mov ecx, dword [ebp - 0x18]
mov eax, dword [ebp - 0x54]
mov dword [eax + ecx*4], 0x661fbc9f
inc dword [ebp - 0x18]
cmp dword [ebp - 0x18], ebx
jl 0x1004227b
mov dword [ebp - 0x18], esi
jmp 0x100422a3
mov eax, dword [ebp - 0x18]
mov dword [ebp + eax*4 - 0x2c], 0x552f0c8c
inc dword [ebp - 0x18]
cmp dword [ebp - 0x18], ebx
jl 0x10042295
mov edi, dword [ebp - 0x48]
cmp dword [edi + 4], esi
jne 0x100422d0
mov eax, dword [ebp - 0x28]
xor edx, edx
mov dword [ebp - 0x28], eax
inc dword [ebp - 0x1c]
mov ecx, dword [ebp - 0x2c]
mov eax, dword [ebp - 0x30]
add ecx, eax
mov eax, dword [ebp - 0x1c]
cmp eax, ecx
setge dl
cmp edx, dword [ebp - 0x34]
jg 0x100422d2
mov esi, ebx
xor eax, eax
cmp esi, 0x693009c
sete al
xor edx, edx
cmp eax, 0x9fb1
setne dl
xor ecx, ecx
add edx, dword [ebp - 0x38]
mov eax, dword [ebp - 0x20]
cmp edx, eax
setge cl
xor edx, edx
cmp ecx, 0x285828e8
setl dl
xor eax, eax
cmp dword [edi + 4], edx
setg al
cmp dword [ebp - 0x54], 0
mov dword [ebp - 0x20], eax
je 0x10042319
push dword [ebp - 0x54]
call fcn.1004d139
pop ecx
push dword [ebp - 0x48]
call fcn.1004d139
pop ecx
cmp dword [ebp - 0x24], 0x6d11
jge 0x10042336
push str.bikqspi_hzyfpkh_ijr
call fcn.1004cf6c
pop ecx
mov ecx, dword [ebp - 0xc]
pop edi
pop esi
mov dword fs:[0], ecx
pop ebx
mov esp, ebp
pop ebp
ret