Function at 0x415190
Capabilities:
Query environment variable
Set environment variable

Disassembly:
sub esp, 0x1c
push ebp
push esi
push edi
xor ebp, ebp
push 0x18
mov dword [esp + 0x10], ebp
mov dword [esp + 0x14], ebp
call sub.MSVCRT.dll_malloc
mov edi, dword [sym.imp.KERNEL32.dll_InitializeCriticalSection]
mov esi, eax
add esp, 4
cmp esi, ebp
je 0x4151bb
push esi
call edi
jmp 0x4151bd
xor esi, esi
push 0x4037d0
push 0x403700
push 4
mov dword [0x420428], esi
call fcn.00417c5c
push ebp
push ebp
push 4
mov dword [0x426e5c], eax
call fcn.00417c5c
xor ecx, ecx
cmp dword [0x41f014], ebp
mov dword [0x437e58], eax
mov eax, dword [esp + 0x2c]
setne cl
push str.PB_DEBUGGER_Pipes
mov dword [0x42c1dc], eax
mov dword [0x437dbc], ebp
add ecx, 1
mov dword [0x437db0], ecx
call sub.MSVCRT.dll_getenv
add esp, 4
cmp eax, ebp
je 0x41529f
lea edx, [esp + 0x10]
push edx
lea ecx, [esp + 0x10]
push ecx
push str._d_d
push eax
call sub.MSVCRT.dll_sscanf
mov eax, dword [esp + 0x1c]
mov esi, dword [sym.imp.KERNEL32.dll_SetEnvironmentVariableA]
add esp, 0x10
cmp eax, ebp
mov dword [0x437d68], eax
je 0x415297
mov eax, dword [esp + 0x10]
cmp eax, ebp
mov dword [0x42bc98], eax
je 0x415297
push str.PB_DEBUGGER_Options
mov dword [0x437dbc], 1
call sub.MSVCRT.dll_getenv
add esp, 4
cmp eax, ebp
je 0x415297
push 0x437dcc
push 0x437dd0
push 0x437dc0
push str._d_d_d
push eax
call sub.MSVCRT.dll_sscanf
add esp, 0x14
push ebp
push str.PB_DEBUGGER_Options
call esi
push ebp
push str.PB_DEBUGGER_Pipes
call esi
cmp dword [0x437dbc], ebp
je 0x415344
xor edx, edx
cmp dword [0x437dc0], ebp
push 0x18
setne dl
add edx, 1
mov dword [0x42bca4], edx
call sub.MSVCRT.dll_malloc
mov esi, eax
add esp, 4
cmp esi, ebp
je 0x4152d4
push esi
call edi
jmp 0x4152d6
xor esi, esi
cmp esi, ebp
mov dword [0x426e64], esi
je 0x41532b
push 0x18
call sub.MSVCRT.dll_malloc
mov esi, eax
add esp, 4
cmp esi, ebp
je 0x4152f5
push esi
call edi
jmp 0x4152f7
xor esi, esi
cmp esi, ebp
mov dword [0x42bc90], esi
je 0x41532b
push 0x18
call sub.MSVCRT.dll_malloc
mov esi, eax
add esp, 4
cmp esi, ebp
je 0x415316
push esi
call edi
jmp 0x415318
xor esi, esi
cmp esi, ebp
mov dword [0x4210d4], esi
je 0x41532b
call fcn.00410810
test eax, eax
jne 0x41533f
push str._n_n_Fatal_Debugger_Error__Cannot_create_communication_objects._n
call sub.MSVCRT.dll_printf
add esp, 4
push 1
call sub.MSVCRT.dll_exit
call fcn.0040c300
push ebx
push 0x5b8d80
call sub.MSVCRT.dll_malloc
mov ebx, eax
add esp, 4
cmp ebx, ebp
mov dword [0x437d70], ebx
je 0x41568e
mov eax, dword [0x41f2fc]
cmp eax, ebp
jle 0x415385
add eax, eax
add eax, eax
push eax
call sub.MSVCRT.dll_malloc
add esp, 4
cmp eax, ebp
mov dword [0x420c1c], eax
je 0x41568e
cmp dword [0x437dbc], ebp
je 0x415482
mov ecx, dword [0x41f245]
mov eax, 0x41f169
mov edx, ebx
mov dword [esp + 0x18], ebp
mov dword [esp + 0x20], ecx
mov dword [esp + 0x24], 3
sub edx, eax
mov cl, byte [eax]
mov byte [edx + eax], cl
add eax, 1
test cl, cl
jne 0x4153b0
mov eax, ebx
lea edx, [eax + 1]
mov cl, byte [eax]
add eax, 1
test cl, cl
jne 0x4153c1
sub eax, edx
lea esi, [eax + ebx + 1]
mov eax, str.C:UsersHQ581AppDataLocalTempPB_EditorOutput.pb
mov edx, esi
sub edx, eax
lea esp, [esp]
mov cl, byte [eax]
mov byte [edx + eax], cl
add eax, 1
test cl, cl
jne 0x4153e0
mov eax, esi
lea edx, [eax + 1]
mov cl, byte [eax]
add eax, 1
test cl, cl
jne 0x4153f1
sub eax, edx
xor edi, edi
cmp dword [0x41f245], ebp
lea esi, [esi + eax + 1]
jle 0x41544d
lea ebx, [ebx]
mov ecx, dword [edi*4 + 0x41f249]
mov edx, esi
lea esp, [esp]
mov al, byte [ecx]
mov byte [edx], al
add ecx, 1
add edx, 1
test al, al
jne 0x415420
mov eax, esi
lea edx, [eax + 1]
mov cl, byte [eax]
add eax, 1
test cl, cl
jne 0x415433
sub eax, edx
add edi, 1
cmp edi, dword [0x41f245]
lea esi, [esi + eax + 1]
jl 0x415410
sub esi, ebx
mov dword [esp + 0x1c], esi
push ebx
lea esi, [esp + 0x1c]
call fcn.0040bf40
mov edx, dword [0x41f014]
mov eax, dword [0x41f018]
add esp, 4
mov dword [esp + 0x18], 0x1f
mov dword [esp + 0x20], edx
mov dword [esp + 0x24], eax
call fcn.0040bec0
jmp 0x415498
call fcn.00402ab0
mov ecx, dword [0x437d74]
mov dword [0x42042c], ecx
call fcn.0040a930
call fcn.00415120
movzx eax, word [0x41f300]
mov ebx, dword [sym.imp.KERNEL32.dll_HeapAlloc]
lea edx, [eax*4 + 4]
push edx
mov dword [0x426864], eax
mov eax, dword [0x4203f4]
push 8
push eax
mov esi, 0x41f302
call ebx
mov ecx, dword [0x41f2fc]
lea edx, [ecx*4]
push edx
mov dword [0x42bca0], eax
mov eax, dword [0x4203f4]
push ebp
push eax
call ebx
xor edi, edi
cmp dword [0x41f2fc], ebp
mov dword [0x42bc8c], eax
jle 0x415562
mov edx, dword [0x420c1c]
mov ebx, dword [0x42bca0]
sub edx, eax
mov ecx, eax
mov dword [esp + 0x30], edx
jmp 0x415510
mov edx, dword [esp + 0x30]
mov dword [edx + ecx], 0
mov dword [ecx], esi
movsx eax, byte [esi]
lea esi, [esi + eax + 2]
mov eax, esi
lea ebp, [eax + 1]
lea esp, [esp]
mov dl, byte [eax]
add eax, 1
test dl, dl
jne 0x415530
sub eax, ebp
movzx edx, word [esi + eax + 0xd]
lea esi, [esi + eax + 0xd]
mov eax, dword [ecx]
add edi, 1
mov dword [ebx + edx*4], eax
add esi, 2
add ecx, 4
cmp edi, dword [0x41f2fc]
jl 0x415510
mov ebx, dword [sym.imp.KERNEL32.dll_HeapAlloc]
xor ebp, ebp
mov ecx, dword [0x41f245]
mov eax, dword [0x4203f4]
lea edx, [ecx*4 + 4]
push edx
push 8
push eax
call ebx
cmp eax, ebp
mov dword [0x437de0], eax
je 0x415631
xor esi, esi
cmp dword [0x41f508], 0xffffffff
je 0x4155c0
mov ecx, 0x41f508
mov ecx, dword [ecx]
mov edx, ecx
sar edx, 0x18
and ecx, 0xffffff
cmp ecx, dword [eax + edx*4]
jle 0x4155ac
mov dword [eax + edx*4], ecx
add esi, 1
cmp dword [esi*4 + 0x41f508], 0xffffffff
lea ecx, [esi*4 + 0x41f508]
jne 0x415597
mov esi, dword [0x41f245]
xor edx, edx
xor ecx, ecx
cmp esi, ebp
mov dword [0x437de4], edx
jl 0x4155e8
mov edi, dword [eax + ecx*4]
add ecx, 1
cmp ecx, esi
lea edx, [edx + edi + 1]
jle 0x4155d4
mov dword [0x437de4], edx
lea ecx, [edx*4]
mov edx, dword [0x4203f4]
push ecx
push 8
push edx
call ebx
cmp eax, ebp
mov dword [0x437de8], eax
je 0x415631
mov eax, dword [0x41f245]
cmp eax, ebp
mov ecx, dword [0x437de4]
jl 0x415631
mov edx, dword [0x437de0]
lea esp, [esp]
or esi, 0xffffffff
sub esi, dword [edx + eax*4]
add ecx, esi
sub eax, 1
mov dword [edx + eax*4 + 4], ecx
jns 0x415620
cmp dword [0x437dbc], ebp
mov dword [0x437dec], ebp
je 0x415686
mov eax, dword [0x42bc94]
mov dword [eax + 0x20], 1
cmp dword [eax + 0x20], ebp
je 0x415677
mov esi, dword [sym.imp.KERNEL32.dll_Sleep]
cmp dword [0x437dc4], ebp
je 0x415669
push ebp
call fcn.00412900
add esp, 4
jmp 0x41566d
push 1
call esi
mov eax, dword [0x42bc94]
cmp dword [eax + 0x20], ebp
jne 0x415656
cmp dword [0x437dd0], ebp
je 0x415686
mov dword [eax + 0x20], 3
pop ebx
pop edi
pop esi
pop ebp
add esp, 0x1c
ret
push str.Debugger_out_of_memory_
push 6
call fcn.00414e70
add esp, 8
push 1
call sub.MSVCRT.dll_exit
int3