Function at 0x10038db5
Capabilities:
Encode data using xor
Query environment variable

Disassembly:
mov eax, 0x1005c5cd
call fcn.1005abe8
sub esp, 0x44
cmp byte [ebp + 0x28], 0
mov eax, edx
push ebx
push esi
push edi
mov dword [ebp - 0x10], esp
mov dword [ebp - 0x38], eax
je 0x10038f6c
mov dword [ebp - 0x20], 0x167c
cmp dword [ebp - 0x20], 0x191d
jle 0x10038f2e
mov dword [ebp - 0x24], 0x14df
cmp dword [ebp - 0x24], 0xa48
jge 0x10038ec6
lea eax, [ebp - 0x14]
mov edi, str._d__d__d
push eax
lea eax, [ebp - 0x18]
push eax
lea eax, [ebp - 0x1c]
push eax
push edi
call fcn.1004284b
add esp, 0x10
cmp eax, 3
jne 0x10038ec6
mov ebx, str._d__d
xor ecx, ecx
cmp dword [ebp - 0x1c], ecx
jle 0x10038e39
call fcn.10038d41
inc ecx
cmp ecx, dword [ebp - 0x1c]
jl 0x10038e2e
xor esi, esi
cmp dword [ebp - 0x18], esi
jle 0x10038e62
lea eax, [ebp - 0x28]
push eax
lea eax, [ebp - 0x2c]
push eax
push ebx
call fcn.1004284b
mov edx, dword [ebp - 0x28]
add esp, 0xc
mov ecx, dword [ebp - 0x2c]
call fcn.10038d74
inc esi
cmp esi, dword [ebp - 0x18]
jl 0x10038e40
xor esi, esi
cmp dword [ebp - 0x14], esi
jle 0x10038ea8
lea eax, [ebp - 0x34]
push eax
lea eax, [ebp - 0x30]
push eax
push ebx
call fcn.1004284b
mov ecx, dword [ebp - 0x30]
add esp, 0xc
call fcn.10038d51
mov ecx, dword [ebp - 0x34]
mov edx, eax
call fcn.10038d51
cmp edx, eax
jne 0x10038e97
push 0x100649ec
jmp 0x10038e9c
push 0x100649f8
call fcn.10042d56
inc esi
pop ecx
cmp esi, dword [ebp - 0x14]
jl 0x10038e69
lea eax, [ebp - 0x14]
push eax
lea eax, [ebp - 0x18]
push eax
lea eax, [ebp - 0x1c]
push eax
push edi
call fcn.1004284b
add esp, 0x10
cmp eax, 3
je 0x10038e27
xor ebx, ebx
xor esi, esi
mov dword [ebp - 0x18], esi
xor edi, edi
mov dword [ebp - 0x1c], edi
and dword [ebp - 0x30], 0
mov ecx, edi
mov edi, dword [ebp - 0x30]
mov dword [ebp - 0x34], esi
shl esi, cl
mov ecx, edi
mov eax, esi
shl eax, cl
mov ecx, 0x10076fd8
xor eax, ebx
cdq
push edx
push eax
call fcn.100045e5
inc edi
cmp edi, 0x58f6
jl 0x10038ee0
mov edi, dword [ebp - 0x1c]
mov esi, dword [ebp - 0x18]
inc edi
mov dword [ebp - 0x1c], edi
cmp edi, 0x15f1
jl 0x10038ed2
inc esi
mov dword [ebp - 0x18], esi
cmp esi, 0x1f7e
jl 0x10038ecd
inc ebx
cmp ebx, 0x6678
jl 0x10038ec8
call dword [sym.imp.KERNEL32.dll_GetLastError]
mov eax, dword [ebp - 0x38]
and dword [eax], 0
and dword [ebp - 4], 0
cmp dword [ebp - 0x20], 0x1348
jge 0x10038f4d
mov edx, str.gwrvny_wbdoelm_ewwoja_cpnm_xgidgy_cts_onlcshuma_lrppghl_upofkcik_goksxk_qjhusix_jpysnzte_yxujskuht
mov ecx, 0x10076fd8
call fcn.10006ac3
jmp 0x10038fed
mov dword [ebp - 0x20], 0x74bb
cmp dword [ebp - 0x20], 0x76b9
jle 0x10038fcd
push 0x19a
push 0
push 0
call dword [sym.imp.KERNEL32.dll_GetEnvironmentVariableW]
xor esi, esi
xor edi, edi
mov eax, edi
lea ecx, [ebp - 0x50]
and eax, esi
cdq
push edx
push eax
call fcn.10001a55
pop ecx
pop ecx
cmp dword [eax + 0x14], 0x10
jb 0x10038fa8
mov eax, dword [eax]
push eax
call fcn.10042b33
pop ecx
push 0
push 1
lea ecx, [ebp - 0x50]
call fcn.10004c13
inc edi
cmp edi, 0x51ff
jl 0x10038f8f
inc esi
cmp esi, 0x5c26
jl 0x10038f8d
cmp dword [ebp - 0x20], 0x7455
jge 0x10038fe1
push str.ouvgfmval_bpfhxnk_bgyuue_cjdz_wkpqgk_bjypjm_gchoynio_uqjn
call fcn.10042b33
pop ecx
mov eax, dword [ebp + 8]
mov ecx, dword [eax]
mov eax, dword [ebp + 0x20]
mov eax, dword [eax]
mov dword [eax], ecx
mov ecx, dword [ebp - 0xc]
pop edi
pop esi
mov dword fs:[0], ecx
pop ebx
mov esp, ebp
pop ebp
ret