Function at 0x401ef6
Capabilities:
Set environment variable

Disassembly:
jmp 0x4a02dc
push edi
pop edi
push ebp
mov ebp, esp
sub esp, 0x10
push ebx
mov ebx, dword [ebp + 8]
push esi
or ebx, ebx
jne 0x49fb0c
call fcn.00403a76
mov dword [eax], 0x16
or eax, 0xffffffff
jmp 0x49fd58
push edi
push 0x3d
push ebx
mov edi, ebx
call fcn.0040516e
mov dword [ebp - 0xc], eax
pop ecx
pop ecx
or eax, eax
je 0x49fd42
cmp eax, ebx
je 0x49fd42
movzx ecx, word [eax + 2]
push ecx
pop eax
mov dword [ebp - 0x10], eax
mov dword [ebp - 8], eax
call fcn.0049ffef
mov esi, dword [0x4e4eb0]
sub ebx, ebx
or esi, esi
jne 0x49fbe0
mov eax, dword [0x4e4eac]
cmp dword [ebp + 0xc], ebx
je 0x49fb84
or eax, eax
je 0x49fb84
call fcn.004042d7
test eax, eax
jne 0x49fb77
call fcn.00403a76
mov dword [eax], 0x16
or ebx, 0xffffffff
jmp 0x49fd27
call fcn.0049ffef
mov esi, dword [0x4e4eb0]
jmp 0x49fbdc
cmp word [ebp - 8], bx
je 0x49fd27
or eax, eax
jne 0x49fbbb
push 4
push 1
call fcn.004050f6
push ebx
mov dword [0x4e4eac], eax
call fcn.00406456
add esp, 0xc
cmp dword [0x4e4eac], ebx
je 0x49fb6f
mov esi, dword [0x4e4eb0]
or esi, esi
jne 0x49fbe0
push 4
push 1
call fcn.004050f6
push ebx
mov dword [0x4e4eb0], eax
call fcn.00406456
mov esi, dword [0x4e4eb0]
add esp, 0xc
or esi, esi
je 0x49fb6f
or esi, esi
je 0x49fb6f
mov ecx, dword [ebp - 0xc]
mov eax, edi
sub ecx, eax
sar ecx, 1
push ecx
push eax
mov dword [ebp - 0xc], ecx
call fcn.004a0079
mov dword [ebp - 4], eax
pop ecx
pop ecx
or eax, eax
js 0x49fc48
cmp dword [esi], ebx
je 0x49fc48
push dword [esi + eax*4]
call fcn.00406456
pop ecx
mov ecx, dword [ebp - 4]
cmp word [ebp - 8], bx
je 0x49fc27
mov eax, dword [ebp + 8]
push ebx
pop edi
mov dword [esi + ecx*4], eax
jmp 0x49fc9f
mov eax, dword [esi + ecx*4 + 4]
mov dword [esi + ecx*4], eax
inc ecx
cmp dword [esi + ecx*4], ebx
jne 0x49fc1f
push 4
push ecx
push esi
call fcn.00402d51
push ebx
push eax
pop esi
call fcn.00406456
add esp, 0x10
push edi
pop eax
or esi, esi
je 0x49fc9f
jmp 0x49fc99
cmp word [ebp - 8], bx
je 0x49fd27
neg eax
mov dword [ebp - 4], eax
lea ecx, [eax + 2]
cmp ecx, eax
jb 0x49fb6f
cmp ecx, 0x3fffffff
jae 0x49fb6f
push 4
push ecx
push esi
call fcn.00402d51
push ebx
mov esi, eax
call fcn.00406456
add esp, 0x10
or esi, esi
je 0x49fb6f
mov ecx, dword [ebp - 4]
push ebx
pop edi
mov eax, dword [ebp + 8]
mov dword [esi + ecx*4], eax
mov dword [esi + ecx*4 + 4], ebx
mov dword [0x4e4eb0], esi
cmp dword [ebp + 0xc], ebx
je 0x49fd38
mov ecx, eax
lea edx, [ecx + 2]
mov ax, word [ecx]
add ecx, 2
cmp ax, bx
jne 0x49fcad
sub ecx, edx
sar ecx, 1
push 2
lea eax, [ecx + 2]
push eax
mov dword [ebp - 8], eax
call fcn.004050f6
mov esi, eax
pop ecx
pop ecx
or esi, esi
jne 0x49fcda
push ebx
call fcn.00406456
jmp 0x49fd26
push dword [ebp + 8]
push dword [ebp - 8]
push esi
call fcn.004039c2
add esp, 0xc
or eax, eax
jne 0x49fd5c
mov eax, dword [ebp - 0xc]
inc eax
lea ecx, [esi + eax*2]
xor eax, eax
mov word [ecx - 2], ax
mov eax, dword [ebp - 0x10]
movzx eax, ax
neg eax
sbb eax, eax
and eax, ecx
push eax
push esi
call dword [sym.imp.KERNEL32.dll_SetEnvironmentVariableW]
or eax, eax
jne 0x49fd31
call fcn.00403a76
push esi
mov dword [eax], 0x2a
call fcn.00406456
or ebx, 0xffffffff
pop ecx
push edi
call fcn.00406456
mov eax, ebx
jmp 0x49fd56
push esi
call fcn.00406456
pop ecx
push edi
call fcn.00406456
xor eax, eax
jmp 0x49fd56
call fcn.00403a76
push ebx
mov dword [eax], 0x16
call fcn.00406456
or eax, 0xffffffff
pop ecx
pop edi
pop esi
pop ebx
leave
ret
push ebx
push ebx
push ebx
push ebx
push ebx
call fcn.004036cf
int3
pushal
popal
push ebp
push esp
pop ebp
pop ebp
jmp 0x49fae8