Function at 0x407b34
Capabilities:
Set environment variable

Disassembly:
push ebp
lea ebp, [esp - 0x68]
sub esp, 0x8a8
push ebx
push esi
mov esi, dword [0x41c898]
xor ebx, ebx
cmp esi, ebx
je 0x407f12
push edi
push 0x7fe
lea eax, [ebp - 0x83e]
push ebx
push eax
mov word [ebp - 0x840], bx
call sub.MSVCRT.dll_memset
push 0x9e
lea eax, [ebp - 0x3e]
push ebx
push eax
mov word [ebp - 0x40], bx
call sub.MSVCRT.dll_memset
mov edi, dword [sym.imp.USER32.dll_wsprintfW]
add esp, 0x18
cmp byte [ebp + 0x70], 9
jbe 0x407bab
cmp dword [ebp + 0x78], ebx
jne 0x407bab
movzx eax, byte [ebp + 0x7c]
push eax
lea eax, [ebp - 0x40]
push 0x4019e0
push eax
call edi
mov esi, dword [0x41c898]
add esp, 0xc
movzx eax, byte [ebp + 0x70]
cmp eax, 0x12
ja case.default.0x407bb8
jmp dword [eax*4 + 0x407f1c]
cmp esi, ebx
je case.default.0x407bb8
add esi, 0x10
cmp dword [ebp + 0x78], ebx
jne 0x407f05
mov ebx, dword [0x41c898]
add ebx, 0xb0
jmp 0x407f05
mov eax, dword [0x41c89c]
cmp eax, ebx
je case.default.0x407bb8
mov ecx, dword [ebp + 0x74]
imul ecx, ecx, 0x368
add eax, ecx
cmp dword [ebp + 0x78], ebx
lea esi, [eax + 0x10]
jne 0x407f05
lea ebx, [eax + 0xb0]
jmp 0x407f05
mov eax, dword [0x41c8a0]
cmp eax, ebx
je case.default.0x407bb8
mov ecx, dword [ebp + 0x74]
imul ecx, ecx, 0x4cc
jmp 0x407bfa
mov eax, dword [0x41c8a8]
cmp eax, ebx
je case.default.0x407bb8
mov ecx, dword [ebp + 0x74]
imul ecx, ecx, 0xb04
jmp 0x407bfa
mov eax, dword [0x41c8ac]
cmp eax, ebx
je case.default.0x407bb8
mov esi, dword [ebp + 0x74]
imul esi, esi, 0x364
add eax, esi
cmp dword [ebp + 0x78], ebx
lea ecx, [eax + 0x10]
mov dword [ebp + 0x64], esi
mov dword [ebp + 0x60], ecx
jne 0x407c77
lea ebx, [eax + 0xb0]
push ebx
push ecx
call dword [sym.imp.KERNEL32.dll_SetEnvironmentVariableW]
push ebx
push dword [ebp + 0x60]
call dword [sym.imp.KERNEL32.dll_SetEnvironmentVariableW]
mov eax, dword [0x41c8ac]
push 0x402124
lea eax, [esi + eax + 0x10]
push eax
lea eax, [ebp - 0x840]
push 0x402118
push eax
call edi
xor ebx, ebx
add esp, 0x10
cmp dword [ebp + 0x78], ebx
lea esi, [ebp - 0x840]
jne 0x407f09
mov eax, dword [0x41c8ac]
mov ecx, dword [ebp + 0x64]
movzx eax, byte [ecx + eax + 0x35c]
push eax
lea eax, [ebp - 0x40]
push 0x4019e0
push eax
call edi
add esp, 0xc
lea ebx, [ebp - 0x40]
jmp 0x407f09
mov eax, dword [0x41c8b4]
cmp eax, ebx
je case.default.0x407bb8
mov esi, dword [ebp + 0x74]
imul esi, esi, 0x368
add eax, esi
cmp dword [ebp + 0x78], ebx
lea ecx, [eax + 0x10]
mov dword [ebp + 0x64], esi
mov dword [ebp + 0x60], ecx
jne 0x407d0d
lea ebx, [eax + 0xb0]
push ebx
push ecx
call dword [sym.imp.KERNEL32.dll_SetEnvironmentVariableW]
push ebx
push dword [ebp + 0x60]
call dword [sym.imp.KERNEL32.dll_SetEnvironmentVariableW]
mov eax, dword [0x41c8b4]
push 0x402124
lea eax, [esi + eax + 0x10]
push eax
lea eax, [ebp - 0x840]
push 0x402118
push eax
call edi
xor ebx, ebx
add esp, 0x10
cmp dword [ebp + 0x78], ebx
lea esi, [ebp - 0x840]
jne 0x407f09
mov eax, dword [0x41c8b4]
mov ecx, dword [ebp + 0x64]
jmp 0x407cba
mov eax, dword [0x41c8b0]
cmp eax, ebx
je case.default.0x407bb8
mov ecx, dword [ebp + 0x74]
imul ecx, ecx, 0x154
jmp 0x407bfa
mov eax, dword [0x41c8b8]
cmp eax, ebx
je case.default.0x407bb8
mov ecx, dword [ebp + 0x74]
imul ecx, ecx, 0x3560
jmp 0x407bfa
mov eax, dword [0x41c8bc]
cmp eax, ebx
je case.default.0x407bb8
mov ecx, dword [ebp + 0x74]
imul ecx, ecx, 0x2b0
cmp dword [ebp + 0x78], ebx
lea esi, [ecx + eax]
jne 0x407f05
push dword [esi + 0xa0]
lea eax, [ebp - 0x40]
push 0x4019e0
push eax
call edi
add esp, 0xc
jmp 0x407f02
mov eax, dword [0x41c8cc]
cmp eax, ebx
je case.default.0x407bb8
mov ecx, dword [ebp + 0x74]
imul ecx, ecx, 0xb8
add eax, ecx
cmp dword [ebp + 0x78], ebx
lea esi, [eax + 0x10]
jne 0x407f05
push dword [eax + 0xb0]
jmp 0x407db3
mov eax, dword [0x41c8ac]
cmp eax, ebx
je case.default.0x407bb8
mov ecx, dword [ebp + 0x74]
imul ecx, ecx, 0x364
push 0x402108
lea eax, [ecx + eax + 0x10]
push eax
lea eax, [ebp - 0x840]
push 0x402118
push eax
call edi
add esp, 0x10
lea esi, [ebp - 0x840]
jmp 0x407cd1
mov eax, dword [0x41c8a4]
cmp eax, ebx
je case.default.0x407bb8
push 0x402108
mov ecx, dword [ebp + 0x74]
imul ecx, ecx, 0xac8
jmp 0x407e0d
mov eax, dword [0x41c8c0]
cmp eax, ebx
je case.default.0x407bb8
mov ecx, dword [ebp + 0x74]
imul ecx, ecx, 0x4b8
push 0x402108
add ecx, eax
push ecx
jmp 0x407e12
mov eax, dword [0x41c8b4]
cmp eax, ebx
je case.default.0x407bb8
mov ecx, dword [ebp + 0x74]
imul ecx, ecx, 0x368
jmp 0x407e08
mov eax, dword [0x41c8a0]
cmp eax, ebx
je case.default.0x407bb8
mov ecx, dword [ebp + 0x74]
imul ecx, ecx, 0x4cc
jmp 0x407e08
mov eax, dword [0x41c89c]
jmp 0x407e70
mov eax, dword [0x41c8b8]
cmp eax, ebx
je case.default.0x407bb8
mov ecx, dword [ebp + 0x74]
imul ecx, ecx, 0x3560
jmp 0x407e08
mov eax, dword [0x41c8a4]
cmp eax, ebx
je case.default.0x407bb8
push 0x4020f4
jmp 0x407e40
mov eax, dword [0x41c8a0]
cmp eax, ebx
je case.default.0x407bb8
mov ecx, dword [ebp + 0x74]
imul ecx, ecx, 0x4cc
push 0x4020f4
lea eax, [ecx + eax + 0x10]
push eax
lea eax, [ebp - 0x840]
push 0x402118
push eax
call edi
add esp, 0x10
lea esi, [ebp - 0x840]
lea ebx, [ebp - 0x40]
test esi, esi
je case.default.0x407bb8
push ebx
push esi
call dword [sym.imp.KERNEL32.dll_SetEnvironmentVariableW]
pop edi
pop esi
pop ebx
add ebp, 0x68
leave
ret