Function at 0x414bac
Capabilities:
Set environment variable

Disassembly:
push ebp
lea ebp, [esp - 0x74]
sub esp, 0x134
push ebx
push esi
push edi
push 0x2c
push 5
push dword [ebp + 0x7c]
lea eax, [ebp - 0xc0]
push eax
call fcn.0040ad20
add esp, 0x10
push 0x10
mov esi, eax
pop ecx
lea edi, [ebp - 0x80]
rep movsd dword es:[edi], dword [esi]
mov eax, dword [ebp - 0x80]
xor ebx, ebx
or edi, 0xffffffff
xor esi, esi
cmp eax, ebx
mov dword [ebp + 0x70], edi
mov dword [ebp + 0x6c], ebx
mov dword [ebp + 0x68], ebx
mov dword [ebp + 0x64], esi
je 0x414bfe
cmp word [eax], bx
je 0x414bfe
mov dword [ebp + 0x64], eax
mov esi, eax
mov eax, dword [ebp - 0x7c]
cmp eax, ebx
je 0x414c20
cmp word [eax], bx
je 0x414c20
push eax
call fcn.00403b00
cmp eax, 0xffffffff
pop ecx
mov dword [ebp + 0x70], eax
jge 0x414c1d
or dword [ebp + 0x70], 0xffffffff
mov edi, dword [ebp + 0x70]
mov eax, dword [ebp - 0x78]
cmp eax, ebx
je 0x414c3d
cmp word [eax], bx
je 0x414c3d
push eax
call fcn.00403b00
cmp eax, ebx
pop ecx
mov dword [ebp + 0x6c], eax
jge 0x414c3d
mov dword [ebp + 0x6c], ebx
mov eax, dword [ebp - 0x74]
cmp eax, ebx
je 0x414c53
cmp word [eax], bx
je 0x414c53
push eax
call fcn.00403b00
pop ecx
mov dword [ebp + 0x68], eax
call fcn.00403fe2
cmp edi, 0xffffffff
movzx ecx, ax
mov dword [ebp + 0x60], ecx
jle 0x414ddb
cmp dword [ebp + 0x6c], ebx
je 0x414d21
cmp esi, ebx
je 0x414cfe
movzx eax, word [esi]
cmp ax, bx
je 0x414cfe
cmp word [esi + 2], 0x3a
jne 0x414cc0
push eax
call fcn.00403ab0
cmp dword [ebp + 0x68], ebx
pop ecx
movzx esi, ax
jne 0x414ca9
push dword [ebp + 0x6c]
push edi
call fcn.00404e0f
test eax, eax
pop ecx
pop ecx
je 0x414ef5
push esi
push dword [ebp + 0x6c]
push edi
call fcn.00404b51
add esp, 0xc
neg ax
sbb eax, eax
jmp 0x414f09
push 0x9e
lea eax, [ebp - 0x3e]
push ebx
push eax
mov word [ebp - 0x40], bx
call sub.MSVCRT.dll_memset
push dword [ebp + 0x6c]
push edi
call fcn.00404a65
add esp, 0x14
cmp ax, bx
mov word [ebp - 0x40], ax
je 0x414cee
mov word [ebp - 0x3e], 0x3a
lea eax, [ebp - 0x40]
push eax
push esi
call dword [sym.imp.KERNEL32.DLL_SetEnvironmentVariableW]
jmp 0x414f05
push dword [ebp + 0x6c]
push edi
call fcn.00404a65
movzx eax, ax
cmp ax, bx
pop ecx
pop ecx
je 0x414ef5
push eax
call fcn.00404c0e
pop ecx
jmp 0x414f05
cmp cx, di
jbe 0x414ef5
push edi
call fcn.004041b8
test eax, eax
pop ecx
jne 0x414d4f
push edi
call fcn.00404172
test eax, eax
pop ecx
jne 0x414d4f
push edi
call fcn.00404194
test eax, eax
pop ecx
je 0x414ef5
push edi
call fcn.00404b08
test eax, eax
pop ecx
je 0x414ef5
cmp esi, ebx
je 0x414ef5
cmp word [esi], bx
je 0x414ef5
push edi
call fcn.004049f6
cmp dword [ebp + 0x68], ebx
movzx esi, ax
pop ecx
movzx edi, si
jne 0x414da6
xor ebx, ebx
inc ebx
cmp si, bx
jb 0x414da4
push ebx
push dword [ebp + 0x70]
call fcn.00404e0f
test eax, eax
pop ecx
pop ecx
jne 0x414d9e
add esi, 0xffff
inc ebx
cmp bx, di
jbe 0x414d89
xor ebx, ebx
push 0x9e
lea eax, [ebp - 0x3e]
push ebx
push eax
mov word [ebp - 0x40], bx
call sub.MSVCRT.dll_memset
movzx eax, si
push eax
lea eax, [ebp - 0x40]
push 0x4025ac
push eax
call dword [sym.imp.USER32.dll_wsprintfW]
add esp, 0x18
lea eax, [ebp - 0x40]
push eax
push dword [ebp + 0x64]
jmp 0x414cf3
cmp dword [ebp + 0x6c], ebx
je 0x414e94
cmp esi, ebx
je 0x414ef5
cmp word [esi], bx
je 0x414ef5
xor edi, edi
cmp cx, bx
mov dword [ebp + 0x70], ebx
jbe 0x414e65
push edi
call fcn.004041b8
test eax, eax
pop ecx
jne 0x414e20
push edi
call fcn.00404172
test eax, eax
pop ecx
jne 0x414e20
push edi
call fcn.00404194
test eax, eax
pop ecx
je 0x414e5e
push edi
call fcn.00404b08
test eax, eax
pop ecx
je 0x414e5e
push edi
call fcn.004049f6
xor ebx, ebx
movzx esi, ax
inc ebx
cmp si, bx
pop ecx
jb 0x414e59
cmp dword [ebp + 0x68], 0
jne 0x414e50
push ebx
push edi
call fcn.00404e0f
test eax, eax
pop ecx
pop ecx
je 0x414e53
inc dword [ebp + 0x70]
inc ebx
cmp bx, si
jbe 0x414e3d
mov esi, dword [ebp + 0x64]
xor ebx, ebx
inc edi
cmp di, word [ebp + 0x60]
jb 0x414dff
push 0x9e
lea eax, [ebp - 0x3e]
push ebx
push eax
mov word [ebp - 0x40], bx
call sub.MSVCRT.dll_memset
movzx eax, word [ebp + 0x70]
push eax
lea eax, [ebp - 0x40]
push 0x4025ac
push eax
call dword [sym.imp.USER32.dll_wsprintfW]
add esp, 0x18
jmp 0x414cee
cmp esi, ebx
je 0x414eb6
cmp word [esi], bx
je 0x414eb6
push 0x9e
lea eax, [ebp - 0x3e]
push ebx
push eax
mov word [ebp - 0x40], bx
call sub.MSVCRT.dll_memset
movzx eax, word [ebp + 0x60]
jmp 0x414e7c
mov eax, dword [ebp - 0x70]
cmp eax, ebx
je 0x414ed4
movzx eax, word [eax]
cmp ax, bx
je 0x414ed4
push eax
call fcn.00403ab0
pop ecx
mov ecx, dword [ebp + 0x60]
movzx eax, ax
jmp 0x414ed6
xor eax, eax
mov edx, dword [ebp + 0x68]
cmp edx, 1
je 0x414efa
cmp edx, 2
je 0x414efa
cmp edx, 3
jne 0x414ef5
push eax
push ecx
call fcn.00414763
pop ecx
jmp 0x414d1b
xor eax, eax
inc eax
jmp 0x414f0a
push eax
push edx
push ecx
call fcn.00414b34
add esp, 0xc
neg eax
sbb eax, eax
inc eax
pop edi
pop esi
pop ebx
add ebp, 0x74
leave
ret