Function at 0x100259d1
Capabilities:
Query environment variable

Disassembly:
push 0x870
mov eax, 0x1004a127
call fcn.10046f54
mov dword [ebp - 0x820], ecx
mov eax, dword [ebp + 8]
xor ebx, ebx
mov dword [ebp - 0x840], eax
mov dword [ebp - 0x82c], ebx
mov dword [ebp - 4], ebx
mov dword [ebp - 0x834], ebx
mov dword [ebp - 0x830], ebx
mov dword [ebp - 0x838], ebx
mov dword [ebp - 0x824], ebx
lea ecx, [ebp - 0x87c]
mov byte [ebp - 4], 4
call fcn.1003f5ed
mov edi, ebx
mov dword [ebp - 0x83c], edi
push 0x202
mov byte [ebp - 4], 6
call sub.MSVCR100.dll_void____cdecl_operator_new___unsigned_int_
pop ecx
push eax
push 0xffffffffffffffff
push 0x100
lea ecx, [ebp - 0x87c]
call fcn.10040238
mov esi, dword [sym.imp.OLEAUT32.dll_SysStringLen]
mov ebx, eax
test ebx, ebx
js 0x1002610c
mov eax, dword [ebp - 0x820]
push 0x100036a4
push dword [eax + 4]
lea ecx, [ebp - 0x87c]
push 0x100036ac
call fcn.10040238
mov ebx, eax
test ebx, ebx
js 0x1002610c
push 0xffffffffffffffff
push dword [ebp - 0x878]
lea ecx, [ebp - 0x83c]
call fcn.10040238
mov ebx, eax
test ebx, ebx
js 0x10026106
mov ecx, dword [ebp - 0x840]
mov edi, dword [ebp - 0x83c]
mov eax, dword [ecx]
lea edx, [ebp - 0x824]
push edx
push edi
push ecx
call dword [eax + 0x94]
mov ebx, eax
test ebx, ebx
js 0x1002610c
cmp dword [ebp - 0x824], 0
jne 0x10025af6
mov eax, dword [ebp - 0x820]
push dword [eax + 4]
push ebx
push 0x7d0
push 0x836
call fcn.1003d19b
add esp, 0x10
mov ebx, 0x80004005
jmp 0x1002610c
lea eax, [ebp - 0x838]
push eax
push 0x10005a04
push dword [ebp - 0x824]
call fcn.100421fb
mov ebx, eax
add esp, 0xc
test ebx, ebx
js 0x1002610c
xor ebx, ebx
mov dword [ebp - 0x818], ebx
mov dword [ebp - 0x81c], ebx
push ebx
lea eax, [ebp - 0x81c]
push eax
push 0x10005a24
push dword [ebp - 0x838]
mov byte [ebp - 4], 8
call fcn.10041d71
add esp, 0x10
test eax, eax
jne 0x10025cf3
lea ecx, [ebp - 0x860]
call fcn.1003f5ed
push 0x802
mov byte [ebp - 4], 9
mov dword [ebp - 0x828], ebx
call sub.MSVCR100.dll_void____cdecl_operator_new___unsigned_int_
pop ecx
push eax
push ebx
push 0x400
lea ecx, [ebp - 0x860]
call fcn.10040238
mov ebx, eax
test ebx, ebx
jns 0x10025bb9
lea ecx, [ebp - 0x860]
mov byte [ebp - 4], 8
call fcn.1003f607
push dword [ebp - 0x81c]
call esi
push dword [ebp - 0x818]
and dword [ebp - 0x81c], 0
call esi
and dword [ebp - 0x818], 0
jmp 0x1002610c
cmp dword [ebp - 0x850], 0
mov ebx, dword [ebp - 0x81c]
mov eax, dword [ebp - 0x85c]
ja 0x10025bd3
mov eax, 0x10056c50
xor ecx, ecx
mov word [eax], cx
jmp 0x10025cba
push 0x25
push ebx
call dword [sym.imp.MSVCR100.dll_wcschr]
pop ecx
pop ecx
mov dword [ebp - 0x844], eax
test eax, eax
je 0x10025ca2
xor ecx, ecx
mov word [eax], cx
cmp dword [ebp - 0x828], ecx
je 0x10025c77
and dword [ebp - 0x840], ecx
and dword [ebp - 0x828], ecx
push 0xffffffffffffffff
push ebx
lea ecx, [ebp - 0x840]
mov byte [ebp - 4], 0xa
call fcn.10040238
mov ebx, eax
test ebx, ebx
js 0x10025d69
mov esi, dword [ebp - 0x840]
push 0x400
lea eax, [ebp - 0x814]
push eax
push esi
call dword [sym.imp.kernel32.dll_GetEnvironmentVariableW]
test eax, eax
je 0x10025d3b
lea eax, [ebp - 0x814]
push eax
lea ecx, [ebp - 0x860]
call fcn.10040238
mov ebx, eax
push esi
mov esi, dword [sym.imp.OLEAUT32.dll_SysStringLen]
test ebx, ebx
js 0x10025d6f
mov byte [ebp - 4], 9
call esi
jmp 0x10025c97
push ebx
lea ecx, [ebp - 0x860]
call fcn.10040238
mov ebx, eax
test ebx, ebx
js 0x10025b87
mov dword [ebp - 0x828], 1
mov ebx, dword [ebp - 0x844]
add ebx, 2
jmp 0x10025cba
push ebx
lea ecx, [ebp - 0x860]
call fcn.10040238
mov ebx, eax
test ebx, ebx
js 0x10025b87
xor ebx, ebx
test ebx, ebx
jne 0x10025bdd
mov ecx, dword [ebp - 0x820]
push 0xffffffffffffffff
push dword [ebp - 0x85c]
lea ecx, [ecx + 0x10]
call fcn.10040238
lea ecx, [ebp - 0x860]
mov ebx, eax
mov byte [ebp - 4], 8
call fcn.1003f607
test ebx, ebx
js 0x10025b96
xor ebx, ebx
push ebx
lea eax, [ebp - 0x818]
push eax
push 0x10005a58
push dword [ebp - 0x838]
call fcn.10041d71
add esp, 0x10
test eax, eax
jne 0x10025d76
push dword [ebp - 0x818]
call dword [sym.imp.MSVCR100.dll__wtoi]
mov ebx, dword [ebp - 0x820]
pop ecx
mov dword [ebx + 0x14], eax
test eax, eax
jns 0x10025d7c
cmp eax, 0xffffffff
je 0x10025d7c
mov ebx, 0x80070057
jmp 0x10025b96
mov eax, dword [ebp - 0x820]
push dword [eax + 4]
push 0x80004005
push 0x7d6
push 0x856
call fcn.1003d19b
add esp, 0x10
push esi
mov esi, dword [sym.imp.OLEAUT32.dll_SysStringLen]
mov ebx, 0x80070057
jmp 0x10025d6f
push dword [ebp - 0x840]
call esi
jmp 0x10025b87
mov ebx, dword [ebp - 0x820]
push dword [ebp - 0x818]
call esi
and dword [ebp - 0x818], 0
push 0
lea eax, [ebp - 0x818]
push eax
push 0x10005a88
push dword [ebp - 0x838]
call fcn.10041d71
add esp, 0x10
test eax, eax
jne 0x10025dcf
push dword [ebp - 0x818]
call dword [sym.imp.MSVCR100.dll__wtoi]
pop ecx
mov dword [ebx + 0x18], eax
test eax, eax
je 0x10025dc6
cmp eax, 0x1001
jb 0x10025dcf
cmp eax, 0xffffffff
jne 0x10025d31
push dword [ebp - 0x81c]
call esi
push dword [ebp - 0x818]
xor ebx, ebx
mov dword [ebp - 0x81c], ebx
mov byte [ebp - 4], 6
call esi
push ebx
lea eax, [ebp - 0x830]
push eax
push 0x10003218
push dword [ebp - 0x824]
mov dword [ebp - 0x818], ebx
call fcn.10041d71
mov ebx, eax
add esp, 0x10
test ebx, ebx
jns 0x10025e2a
push ebx
push 0x7d6
push 0x838
call fcn.10040238
add esp, 0xc
jmp 0x1002610c
mov eax, dword [ebp - 0x820]
push 0
add eax, 0xc
push eax
push dword [0x10056190]
push dword [ebp - 0x824]
call fcn.10041d71
add esp, 0x10
push 0xffffffffffffffff
push 0x10005aa0
lea ecx, [ebp - 0x83c]
call fcn.10040238
mov ebx, eax
test ebx, ebx
js 0x10026106
mov eax, dword [ebp - 0x824]
mov edi, dword [ebp - 0x83c]
mov ecx, dword [eax]
lea edx, [ebp - 0x834]
push edx
push edi
push eax
call dword [ecx + 0x90]
mov ebx, eax
test ebx, ebx
jns 0x10025eaa
mov eax, dword [ebp - 0x820]
push dword [eax + 4]
push ebx
push 0x7d6
push 0x839
call fcn.1003d19b
add esp, 0x10
jmp 0x1002610c
mov edx, dword [ebp - 0x820]
mov eax, dword [ebp - 0x834]
mov ecx, dword [eax]
add edx, 0x24
push edx
push eax
mov dword [ebp - 0x844], edx
call dword [ecx + 0x20]
mov ebx, eax
test ebx, ebx
js 0x1002610c
mov eax, dword [ebp - 0x844]
mov eax, dword [eax]
test eax, eax
jle 0x100260d8
cmp eax, 0x1fffffff
jbe 0x10025ef1
mov ebx, 0x8000ffff
jmp 0x1002610c
shl eax, 2
push eax
call sub.MSVCR100.dll_void____cdecl_operator_new___unsigned_int_
mov ebx, dword [ebp - 0x820]
pop ecx
mov ecx, eax
mov dword [ebx + 0x20], ecx
test ecx, ecx
jne 0x10025f14
mov ebx, 0x8007000e
jmp 0x1002610c
mov eax, dword [ebx + 0x24]
shl eax, 2
push eax
push 0
push ecx
call sub.MSVCR100.dll_memset
mov eax, dword [ebp - 0x834]
mov ecx, dword [eax]
add esp, 0xc
lea edx, [ebp - 0x82c]
push edx
push eax
call dword [ecx + 0x24]
test eax, eax
jne 0x100260de
and dword [ebp - 0x828], eax
cmp dword [ebp - 0x82c], 0
je 0x100260de
push dword [ebp - 0x830]
call esi
and dword [ebp - 0x830], 0
push 0x28
call sub.MSVCR100.dll_void____cdecl_operator_new_unsigned_int_
pop ecx
mov dword [ebp - 0x844], eax
mov byte [ebp - 4], 0xb
test eax, eax
je 0x10025f86
push 1
mov ecx, eax
call fcn.100267b2
mov edx, eax
jmp 0x10025f88
xor edx, edx
mov eax, dword [ebx + 0x20]
mov ecx, dword [ebp - 0x828]
mov dword [ecx + eax], edx
mov eax, dword [ebx + 0x20]
cmp dword [ecx + eax], 0
mov byte [ebp - 4], 6
je 0x10025f0a
push 0
lea eax, [ebp - 0x830]
push eax
push 0x10005ac4
push dword [ebp - 0x82c]
call fcn.10041d71
add esp, 0x10
test eax, eax
js 0x10025fe3
push dword [ebp - 0x830]
call dword [sym.imp.MSVCR100.dll__wtoi]
mov edx, dword [ebp - 0x828]
pop ecx
mov ecx, dword [ebx + 0x20]
mov ecx, dword [edx + ecx]
mov dword [ecx + 4], eax
jmp 0x10025fe9
mov edx, dword [ebp - 0x828]
mov eax, dword [ebx + 0x20]
mov eax, dword [edx + eax]
push 0
add eax, 0xc
push eax
push 0x10005ad8
push dword [ebp - 0x82c]
call fcn.10041d71
mov ebx, eax
mov eax, dword [ebp - 0x820]
add esp, 0x10
test ebx, ebx
js 0x100260c5
mov eax, dword [eax + 0x20]
mov ecx, dword [ebp - 0x828]
mov eax, dword [ecx + eax]
push 0
add eax, 0x10
push eax
push 0x10005ae8
push dword [ebp - 0x82c]
call fcn.10041d71
mov ebx, eax
mov eax, dword [ebp - 0x820]
add esp, 0x10
test ebx, ebx
js 0x100260b2
mov ecx, dword [eax + 0x20]
mov eax, dword [ebp - 0x828]
mov ecx, dword [ecx + eax]
call fcn.100252cf
mov ebx, eax
test ebx, ebx
js 0x1002610c
cmp dword [ebp - 0x82c], 0
je 0x10026088
xor ecx, ecx
lea eax, [ebp - 0x82c]
xchg dword [eax], ecx
test ecx, ecx
je 0x10026081
mov eax, dword [ecx]
push ecx
call dword [eax + 8]
and dword [ebp - 0x82c], 0
mov eax, dword [ebp - 0x834]
mov ecx, dword [eax]
add dword [ebp - 0x828], 4
lea edx, [ebp - 0x82c]
push edx
push eax
call dword [ecx + 0x24]
mov ebx, dword [ebp - 0x820]
test eax, eax
je 0x10025f47
jmp 0x100260de
push dword [eax + 4]
push ebx
push 0x7d6
push 0x83b
jmp 0x10025e9d
push dword [eax + 4]
push ebx
push 0x7d6
push 0x83a
jmp 0x10025e9d
mov ebx, dword [ebp - 0x820]
push dword [ebp - 0x824]
mov ecx, ebx
call fcn.1002636f
mov ebx, eax
test ebx, ebx
js 0x1002610c
push dword [ebp - 0x824]
mov ecx, dword [ebp - 0x820]
call fcn.100264d8
mov ebx, eax
jmp 0x1002610c
mov edi, dword [ebp - 0x83c]
push edi
call esi
lea ecx, [ebp - 0x87c]
mov byte [ebp - 4], 4
call fcn.1003f607
cmp dword [ebp - 0x824], 0
mov byte [ebp - 4], 3
je 0x10026146
xor ecx, ecx
lea eax, [ebp - 0x824]
xchg dword [eax], ecx
test ecx, ecx
je 0x1002613f
mov eax, dword [ecx]
push ecx
call dword [eax + 8]
and dword [ebp - 0x824], 0
cmp dword [ebp - 0x838], 0
mov byte [ebp - 4], 2
je 0x1002616e
xor ecx, ecx
lea eax, [ebp - 0x838]
xchg dword [eax], ecx
test ecx, ecx
je 0x10026167
mov eax, dword [ecx]
push ecx
call dword [eax + 8]
and dword [ebp - 0x838], 0
push dword [ebp - 0x830]
call esi
and dword [ebp - 0x830], 0
cmp dword [ebp - 0x834], 0
mov byte [ebp - 4], 0
je 0x100261a5
xor ecx, ecx
lea eax, [ebp - 0x834]
xchg dword [eax], ecx
test ecx, ecx
je 0x1002619e
mov eax, dword [ecx]
push ecx
call dword [eax + 8]
and dword [ebp - 0x834], 0
or dword [ebp - 4], 0xffffffff
cmp dword [ebp - 0x82c], 0
je 0x100261c6
xor ecx, ecx
lea eax, [ebp - 0x82c]
xchg dword [eax], ecx
test ecx, ecx
je 0x100261c6
mov eax, dword [ecx]
push ecx
call dword [eax + 8]
mov eax, ebx
call fcn.10046fd7
ret 4