Function at 0x425710
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 0x42573b
push esi
call edi
jmp 0x42573d
xor esi, esi
push 0x413d50
push 0x413c80
push 4
mov dword [0x438f20], esi
call fcn.00412aae
push ebp
push ebp
push 4
mov dword [0x43f954], eax
call fcn.00412aae
xor ecx, ecx
cmp dword [0x437014], ebp
mov dword [0x450920], eax
mov eax, dword [esp + 0x2c]
setne cl
push str.PB_DEBUGGER_Pipes
mov dword [0x444cd4], eax
mov dword [0x4508b4], ebp
add ecx, 1
mov dword [0x4508a8], ecx
call sub.MSVCRT.dll_getenv
add esp, 4
cmp eax, ebp
je 0x42581f
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 [0x450860], eax
je 0x425817
mov eax, dword [esp + 0x10]
cmp eax, ebp
mov dword [0x444790], eax
je 0x425817
push str.PB_DEBUGGER_Options
mov dword [0x4508b4], 1
call sub.MSVCRT.dll_getenv
add esp, 4
cmp eax, ebp
je 0x425817
push 0x4508c4
push 0x4508c8
push 0x4508b8
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 [0x4508b4], ebp
je 0x4258c4
xor edx, edx
cmp dword [0x4508b8], ebp
push 0x18
setne dl
add edx, 1
mov dword [0x44479c], edx
call sub.MSVCRT.dll_malloc
mov esi, eax
add esp, 4
cmp esi, ebp
je 0x425854
push esi
call edi
jmp 0x425856
xor esi, esi
cmp esi, ebp
mov dword [0x43f95c], esi
je 0x4258ab
push 0x18
call sub.MSVCRT.dll_malloc
mov esi, eax
add esp, 4
cmp esi, ebp
je 0x425875
push esi
call edi
jmp 0x425877
xor esi, esi
cmp esi, ebp
mov dword [0x444788], esi
je 0x4258ab
push 0x18
call sub.MSVCRT.dll_malloc
mov esi, eax
add esp, 4
cmp esi, ebp
je 0x425896
push esi
call edi
jmp 0x425898
xor esi, esi
cmp esi, ebp
mov dword [0x439bcc], esi
je 0x4258ab
call fcn.00420dc0
test eax, eax
jne 0x4258bf
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.0041c880
push ebx
push 0x5b8d80
call sub.MSVCRT.dll_malloc
mov ebx, eax
add esp, 4
cmp ebx, ebp
mov dword [0x450868], ebx
je 0x425c3e
mov eax, dword [0x43742a]
cmp eax, ebp
jle 0x425905
add eax, eax
add eax, eax
push eax
call sub.MSVCRT.dll_malloc
add esp, 4
cmp eax, ebp
mov dword [0x439714], eax
je 0x425c3e
cmp dword [0x4508b4], ebp
je 0x425a02
mov ecx, dword [0x4371e4]
mov eax, str.D:_sourcepurepb_forum_
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 0x425930
mov eax, ebx
lea edx, [eax + 1]
mov cl, byte [eax]
add eax, 1
test cl, cl
jne 0x425941
sub eax, edx
lea esi, [eax + ebx + 1]
mov eax, str.C:Documents_and_Settings_adminLocal_SettingsTempPB_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 0x425960
mov eax, esi
lea edx, [eax + 1]
mov cl, byte [eax]
add eax, 1
test cl, cl
jne 0x425971
sub eax, edx
xor edi, edi
cmp dword [0x4371e4], ebp
lea esi, [esi + eax + 1]
jle 0x4259cd
lea ebx, [ebx]
mov ecx, dword [edi*4 + 0x4371e8]
mov edx, esi
lea esp, [esp]
mov al, byte [ecx]
mov byte [edx], al
add ecx, 1
add edx, 1
test al, al
jne 0x4259a0
mov eax, esi
lea edx, [eax + 1]
mov cl, byte [eax]
add eax, 1
test cl, cl
jne 0x4259b3
sub eax, edx
add edi, 1
cmp edi, dword [0x4371e4]
lea esi, [esi + eax + 1]
jl 0x425990
sub esi, ebx
mov dword [esp + 0x1c], esi
push ebx
lea esi, [esp + 0x1c]
call fcn.0041c4c0
mov edx, dword [0x437014]
mov eax, dword [0x437018]
add esp, 4
mov dword [esp + 0x18], 0x1f
mov dword [esp + 0x20], edx
mov dword [esp + 0x24], eax
call fcn.0041c440
jmp 0x425a18
call fcn.00413030
mov ecx, dword [0x45086c]
mov dword [0x438f24], ecx
call fcn.0041aeb0
cmp dword [0x4508b4], ebp
jne 0x425a2f
push 0x41c3a0
push 2
call sub.MSVCRT.dll_signal
add esp, 8
push 0x425660
push 8
call sub.MSVCRT.dll_signal
push 0x425660
push 4
call sub.MSVCRT.dll_signal
push 0x425660
push 0xb
call sub.MSVCRT.dll_signal
add esp, 0x18
call fcn.00425600
movzx eax, word [0x43742e]
mov ebx, dword [sym.imp.KERNEL32.dll_HeapAlloc]
lea edx, [eax*4 + 4]
push edx
mov dword [0x43f35c], eax
mov eax, dword [0x438ec8]
push 8
push eax
mov esi, 0x437430
call ebx
mov ecx, dword [0x43742a]
lea edx, [ecx*4]
push edx
mov dword [0x444798], eax
mov eax, dword [0x438ec8]
push ebp
push eax
call ebx
xor edi, edi
cmp dword [0x43742a], ebp
mov dword [0x444784], eax
jle 0x425b12
mov edx, dword [0x439714]
mov ebx, dword [0x444798]
sub edx, eax
mov ecx, eax
mov dword [esp + 0x30], edx
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 0x425ae0
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 [0x43742a]
jl 0x425ac3
mov ebx, dword [sym.imp.KERNEL32.dll_HeapAlloc]
xor ebp, ebp
mov ecx, dword [0x4371e4]
mov eax, dword [0x438ec8]
lea edx, [ecx*4 + 4]
push edx
push 8
push eax
call ebx
cmp eax, ebp
mov dword [0x4508d8], eax
je 0x425be1
xor esi, esi
cmp dword [0x437c5e], 0xffffffff
je 0x425b70
mov ecx, 0x437c5e
mov ecx, dword [ecx]
mov edx, ecx
sar edx, 0x18
and ecx, 0xffffff
cmp ecx, dword [eax + edx*4]
jle 0x425b5c
mov dword [eax + edx*4], ecx
add esi, 1
cmp dword [esi*4 + 0x437c5e], 0xffffffff
lea ecx, [esi*4 + 0x437c5e]
jne 0x425b47
mov esi, dword [0x4371e4]
xor edx, edx
xor ecx, ecx
cmp esi, ebp
mov dword [0x4508dc], edx
jl 0x425b98
mov edi, dword [eax + ecx*4]
add ecx, 1
cmp ecx, esi
lea edx, [edx + edi + 1]
jle 0x425b84
mov dword [0x4508dc], edx
lea ecx, [edx*4]
mov edx, dword [0x438ec8]
push ecx
push 8
push edx
call ebx
cmp eax, ebp
mov dword [0x4508e0], eax
je 0x425be1
mov eax, dword [0x4371e4]
cmp eax, ebp
mov ecx, dword [0x4508dc]
jl 0x425be1
mov edx, dword [0x4508d8]
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 0x425bd0
cmp dword [0x4508b4], ebp
mov dword [0x4508e4], ebp
je 0x425c36
mov eax, dword [0x44478c]
mov dword [eax + 0x20], 1
cmp dword [eax + 0x20], ebp
je 0x425c27
mov esi, dword [sym.imp.KERNEL32.dll_Sleep]
cmp dword [0x4508bc], ebp
je 0x425c19
push ebp
call fcn.00422e90
add esp, 4
jmp 0x425c1d
push 1
call esi
mov eax, dword [0x44478c]
cmp dword [eax + 0x20], ebp
jne 0x425c06
cmp dword [0x4508c8], ebp
je 0x425c36
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.004253d0
add esp, 8
push 1
call sub.MSVCRT.dll_exit
int3