Function at 0x1004088e
Capabilities:
Query environment variable

Disassembly:
push 0x528
mov eax, 0x100f257f
call fcn.100cca34
mov eax, dword [ebp + 8]
push eax
call dword [sym.imp.KERNEL32.dll_GetModuleHandleW]
test eax, eax
je 0x10040d25
push 0x104
lea ecx, [ebp - 0x2a8]
push ecx
push eax
call dword [sym.imp.KERNEL32.dll_GetModuleFileNameW]
xor ecx, ecx
xor eax, eax
push 7
pop ebx
mov dword [ebp - 0x524], ecx
mov dword [ebp - 0x520], ecx
mov dword [ebp - 0x524], ecx
mov dword [ebp - 0x520], ebx
mov word [ebp - 0x534], ax
mov dword [ebp - 4], ecx
mov dword [ebp - 0x504], 0x10a1
mov eax, dword [ebp - 0x504]
xor eax, 0x7b
mov word [ebp - 0x500], ax
mov eax, dword [ebp - 0x504]
inc eax
push 0x32
pop esi
xor eax, esi
mov word [ebp - 0x4fe], ax
mov eax, dword [ebp - 0x504]
add eax, 2
push 0x31
pop edi
xor eax, edi
mov word [ebp - 0x4fc], ax
mov eax, dword [ebp - 0x504]
add eax, 3
xor eax, 0x44
mov word [ebp - 0x4fa], ax
mov eax, dword [ebp - 0x504]
add eax, 4
xor eax, 0x38
mov word [ebp - 0x4f8], ax
mov eax, dword [ebp - 0x504]
add eax, 5
xor eax, 0x44
mov word [ebp - 0x4f6], ax
mov eax, dword [ebp - 0x504]
add eax, 6
xor eax, edi
mov word [ebp - 0x4f4], ax
mov eax, dword [ebp - 0x504]
add eax, ebx
xor eax, 0x35
mov word [ebp - 0x4f2], ax
mov eax, dword [ebp - 0x504]
add eax, 8
xor eax, 0x39
mov word [ebp - 0x4f0], ax
mov eax, dword [ebp - 0x504]
add eax, 9
push 0x2d
pop ecx
xor eax, ecx
mov word [ebp - 0x4ee], ax
mov eax, dword [ebp - 0x504]
add eax, 0xa
xor eax, 0x37
mov word [ebp - 0x4ec], ax
mov eax, dword [ebp - 0x504]
add eax, 0xb
xor eax, esi
mov word [ebp - 0x4ea], ax
mov eax, dword [ebp - 0x504]
add eax, 0xc
xor eax, 0x33
mov word [ebp - 0x4e8], ax
mov eax, dword [ebp - 0x504]
add eax, 0xd
xor eax, edi
mov word [ebp - 0x4e6], ax
mov eax, dword [ebp - 0x504]
add eax, 0xe
xor eax, ecx
mov word [ebp - 0x4e4], ax
mov eax, dword [ebp - 0x504]
add eax, 0xf
xor eax, 0x34
mov word [ebp - 0x4e2], ax
mov eax, dword [ebp - 0x504]
add eax, 0x10
xor eax, 0x38
mov word [ebp - 0x4e0], ax
mov eax, dword [ebp - 0x504]
add eax, 0x11
push 0x30
pop edx
xor eax, edx
mov word [ebp - 0x4de], ax
mov eax, dword [ebp - 0x504]
add eax, 0x12
xor eax, 0x46
mov word [ebp - 0x4dc], ax
mov eax, dword [ebp - 0x504]
add eax, 0x13
xor eax, ecx
mov word [ebp - 0x4da], ax
mov eax, dword [ebp - 0x504]
add eax, 0x14
xor eax, 0x41
mov word [ebp - 0x4d8], ax
mov eax, dword [ebp - 0x504]
add eax, 0x15
xor eax, edi
mov word [ebp - 0x4d6], ax
mov eax, dword [ebp - 0x504]
add eax, 0x16
xor eax, esi
mov word [ebp - 0x4d4], ax
mov eax, dword [ebp - 0x504]
add eax, 0x17
xor eax, esi
mov word [ebp - 0x4d2], ax
mov eax, dword [ebp - 0x504]
add eax, 0x18
xor eax, ecx
mov word [ebp - 0x4d0], ax
mov eax, dword [ebp - 0x504]
add eax, 0x19
xor eax, 0x33
mov word [ebp - 0x4ce], ax
mov eax, dword [ebp - 0x504]
add eax, 0x1a
xor eax, esi
mov word [ebp - 0x4cc], ax
mov eax, dword [ebp - 0x504]
add eax, 0x1b
xor eax, edi
mov word [ebp - 0x4ca], ax
mov eax, dword [ebp - 0x504]
add eax, 0x1c
xor eax, 0x46
mov word [ebp - 0x4c8], ax
mov eax, dword [ebp - 0x504]
add eax, 0x1d
xor eax, 0x39
mov word [ebp - 0x4c6], ax
mov eax, dword [ebp - 0x504]
add eax, 0x1e
xor eax, edx
mov word [ebp - 0x4c4], ax
mov eax, dword [ebp - 0x504]
add eax, 0x1f
xor eax, 0x34
mov word [ebp - 0x4c2], ax
mov eax, dword [ebp - 0x504]
add eax, 0x20
xor eax, 0x42
mov word [ebp - 0x4c0], ax
mov eax, dword [ebp - 0x504]
add eax, 0x21
xor eax, edx
mov word [ebp - 0x4be], ax
mov eax, dword [ebp - 0x504]
add eax, 0x22
xor eax, esi
mov word [ebp - 0x4bc], ax
mov eax, dword [ebp - 0x504]
add eax, 0x23
xor eax, edx
mov word [ebp - 0x4ba], ax
mov eax, dword [ebp - 0x504]
add eax, 0x24
xor eax, edi
mov word [ebp - 0x4b8], ax
mov eax, dword [ebp - 0x504]
push 0x25
pop ecx
add eax, ecx
xor eax, 0x7d
mov word [ebp - 0x4b6], ax
xor eax, eax
mov word [ebp - 0x4b4], ax
mov ax, word [ebp - 0x500]
mov dword [ebp - 0x51c], 0x23ab
mov eax, dword [ebp - 0x51c]
xor eax, ecx
mov word [ebp - 0x518], ax
mov eax, dword [ebp - 0x51c]
inc eax
xor eax, 0x6c
mov word [ebp - 0x516], ax
mov eax, dword [ebp - 0x51c]
add eax, 2
xor eax, 0x73
mov word [ebp - 0x514], ax
mov eax, dword [ebp - 0x51c]
add eax, 3
xor eax, ecx
mov word [ebp - 0x512], ax
mov eax, dword [ebp - 0x51c]
add eax, 4
xor eax, 0x64
mov word [ebp - 0x510], ax
mov eax, dword [ebp - 0x51c]
add eax, 5
xor eax, ecx
mov word [ebp - 0x50e], ax
mov eax, dword [ebp - 0x51c]
add eax, 6
xor eax, 0x6c
mov word [ebp - 0x50c], ax
mov eax, dword [ebp - 0x51c]
add eax, ebx
xor eax, 0x73
mov word [ebp - 0x50a], ax
xor eax, eax
mov word [ebp - 0x508], ax
mov ax, word [ebp - 0x518]
lea eax, [ebp - 0x2a8]
push eax
call dword [sym.imp.KERNEL32.dll_GetCurrentProcessId]
push eax
lea ecx, [ebp - 0x504]
call fcn.1000b49e
push eax
lea ecx, [ebp - 0x51c]
call fcn.100494c6
push eax
lea eax, [ebp - 0x534]
push eax
call fcn.10004b9e
add esp, 0x14
lea eax, [ebp - 0x20]
cmp dword [ebp - 0x520], 8
lea ecx, [ebp - 0x534]
cmovae ecx, dword [ebp - 0x534]
push eax
mov eax, dword [ebp - 0x524]
add eax, eax
push eax
mov eax, dword [0x101ef2d0]
push ecx
call dword [eax + pe_nt_image_headers32]
push 0
push 0x10
lea eax, [ebp - 0x20]
push eax
push 0x80
lea eax, [ebp - 0xa0]
push eax
mov eax, dword [0x101ef2d0]
call dword [eax + 0x3b0]
push 0x104
lea eax, [ebp - 0x4b0]
push eax
lea eax, [ebp - 0xa0]
push eax
call dword [sym.imp.KERNEL32.dll_GetEnvironmentVariableW]
neg eax
sbb esi, esi
neg esi
or dword [ebp - 4], 0xffffffff
lea ecx, [ebp - 0x534]
call fcn.1000b2cc
mov eax, esi
call fcn.100cc9de
ret