Function at 0x1005d210
Capabilities:
Query environment variable

Disassembly:
push ebp
mov ebp, esp
and esp, 0xfffffff8
push 0xffffffffffffffff
push 0x1009fec0
mov eax, dword fs:[0]
push eax
sub esp, 0x50
push ebx
push esi
push edi
mov eax, dword [0x10112018]
xor eax, esp
push eax
lea eax, [esp + 0x60]
mov dword fs:[0], eax
mov esi, ecx
mov dword [esp + 0x18], esi
mov ecx, dword [esi + 0xc]
mov eax, dword [ecx]
mov edi, dword [ebp + 8]
mov edx, dword [eax + 8]
push edi
call edx
test eax, eax
jne 0x1005d263
mov ecx, dword [esi + 0xc]
mov edx, dword [ebp + 0xc]
mov eax, dword [ecx]
mov eax, dword [eax + 4]
push edx
push edi
call eax
mov ecx, dword [ebp + 0xc]
cmp dword [ecx], 0
jne 0x1005d627
mov ecx, dword [esi + 0xc]
mov edx, dword [ecx]
mov eax, dword [edx + 8]
push edi
call eax
mov eax, dword [eax + 4]
push 0
push 0x10113838
push 0x101138a0
push 0
push eax
call sub.MSVCR100.dll___RTDynamicCast
add esp, 0x14
xor edi, edi
push 0xc
mov dword [esp + 0x20], eax
mov dword [esp + 0x2c], edi
call dword [sym.imp.MSVCR100.dll_void____cdecl_operator_new_unsigned_int_]
mov ebx, eax
xor eax, eax
add esp, 4
mov dword [esp + 0x10], ebx
cmp ebx, eax
je 0x1005d63c
mov dword [ebx], ebx
mov dword [esp + 0x24], ebx
mov dword [ebx + 4], ebx
push eax
push 0x10114508
push 0x101144e8
mov dword [esp + 0x74], eax
mov ecx, dword [esi + 0x10]
push eax
push ecx
call sub.MSVCR100.dll___RTDynamicCast
mov esi, eax
add esp, 0x14
mov dword [esp + 0x14], esi
test esi, esi
je 0x1005d342
jmp 0x1005d2f0
mov ebx, dword [ebx]
mov eax, dword [ebx + 4]
lea edx, [esp + 0x14]
push edx
push eax
push ebx
call fcn.1005e880
mov ecx, 0x3ffffffe
sub ecx, edi
cmp ecx, 1
jb 0x1005d352
push 0
mov dword [ebx + 4], eax
mov ecx, dword [eax + 4]
push 0x10114508
push 0x101144e8
mov dword [ecx], eax
mov esi, dword [esi + 8]
push 0
inc edi
push esi
mov dword [esp + 0x3c], edi
call sub.MSVCR100.dll___RTDynamicCast
mov ebx, dword [esp + 0x24]
mov esi, eax
add esp, 0x14
mov dword [esp + 0x14], esi
test esi, esi
jne 0x1005d2f0
mov eax, dword [ebx]
mov dword [esp + 0x14], eax
cmp eax, ebx
je 0x1005d550
jmp 0x1005d364
push str.list_T__too_long
call dword [sym.imp.MSVCP100.dll_void___cdecl_std::_Xlength_error_char_const__]
lea ecx, [ecx]
mov eax, dword [esp + 0x14]
mov esi, dword [eax + 8]
mov ebx, dword [esi + 0xc]
lea edx, [esp + 0x3c]
push edx
call fcn.1005ecb0
mov ebx, dword [ebp + 8]
mov byte [esp + 0x68], 1
mov eax, dword [esi]
mov edx, dword [eax + 8]
push ebx
mov ecx, esi
call edx
mov edi, dword [ebp + 0xc]
test eax, eax
jne 0x1005d398
mov eax, dword [esi]
mov edx, dword [eax + 4]
push edi
push ebx
mov ecx, esi
call edx
cmp dword [edi], 0
je 0x1005d448
test byte [0x10115fcc], 1
jne 0x1005d3c6
or dword [0x10115fcc], 1
push str.ACE_DEBUG
call dword [sym.imp.MSVCR100.dll_getenv]
add esp, 4
mov dword [0x10115fc8], eax
jmp 0x1005d3cb
mov eax, dword [0x10115fc8]
mov cl, byte [0x10115860]
test cl, cl
je 0x1005d3da
movsx eax, cl
jmp 0x1005d3ec
test eax, eax
je 0x1005d528
xor ecx, ecx
cmp byte [eax], 0x30
setne cl
mov eax, ecx
test eax, eax
je 0x1005d528
call dword [sym.imp.KERNEL32.dll_GetLastError]
mov ebx, eax
call dword [sym.imp.MSVCR100.dll__errno]
mov eax, dword [eax]
test eax, eax
je 0x1005d40a
mov ebx, eax
call sym.ACE.dll_public:_static_class_ACE_Log_Msg____cdecl_ACE_Log_Msg::instance_void_
mov byte [eax + 0x13c], 1
mov dword [eax + 0x140], str.Parse_Node.cpp
mov dword [eax + 0x144], 0x4a
mov dword [eax + 0x148], 0xffffffff
mov dword [eax + 0x14c], ebx
mov esi, dword [esi + 4]
push esi
push str.dynamic_initialization_failed_for_Module__s_n
jmp 0x1005d51a
mov edx, dword [esi]
mov eax, dword [edx + 8]
push ebx
mov ecx, esi
call eax
mov edx, dword [esp + 0x1c]
mov eax, dword [eax + 4]
mov esi, dword [edx + 0x18]
mov ecx, dword [edx + 8]
mov dword [eax + 0x18], esi
mov dword [edx + 0x18], eax
mov eax, dword [eax + 8]
mov edx, dword [ecx]
push eax
mov eax, dword [edx + 0xc]
call eax
cmp eax, 0xffffffff
jne 0x1005d52a
test byte [0x10115fcc], 1
jne 0x1005d49e
or dword [0x10115fcc], 1
push str.ACE_DEBUG
call dword [sym.imp.MSVCR100.dll_getenv]
add esp, 4
mov dword [0x10115fc8], eax
jmp 0x1005d4a3
mov eax, dword [0x10115fc8]
mov cl, byte [0x10115860]
test cl, cl
je 0x1005d4b2
movsx eax, cl
jmp 0x1005d4c0
test eax, eax
je 0x1005d528
xor ecx, ecx
cmp byte [eax], 0x30
setne cl
mov eax, ecx
test eax, eax
je 0x1005d528
call dword [sym.imp.KERNEL32.dll_GetLastError]
mov esi, eax
call dword [sym.imp.MSVCR100.dll__errno]
mov eax, dword [eax]
test eax, eax
je 0x1005d4da
mov esi, eax
call sym.ACE.dll_public:_static_class_ACE_Log_Msg____cdecl_ACE_Log_Msg::instance_void_
mov edx, dword [esp + 0x18]
mov byte [eax + 0x13c], 1
mov dword [eax + 0x140], str.Parse_Node.cpp
mov dword [eax + 0x144], 0x5b
mov dword [eax + 0x148], 0xffffffff
mov dword [eax + 0x14c], esi
mov ecx, dword [edx + 0xc]
mov ecx, dword [ecx + 4]
push ecx
push str.dynamic_initialization_failed_for_Stream__s_n
push 0x80
push eax
call sym.ACE.dll_public:_int___cdecl_ACE_Log_Msg::log_enum_ACE_Log_Priority__char_const__
add esp, 0x10
inc dword [edi]
lea esi, [esp + 0x3c]
mov byte [esp + 0x68], 0
call fcn.1005ede0
mov edx, dword [esp + 0x14]
mov eax, dword [edx]
mov dword [esp + 0x14], eax
cmp eax, dword [esp + 0x10]
jne 0x1005d360
mov ebx, dword [esp + 0x10]
test byte [0x10115fcc], 1
jne 0x1005d575
or dword [0x10115fcc], 1
push str.ACE_DEBUG
call dword [sym.imp.MSVCR100.dll_getenv]
add esp, 4
mov dword [0x10115fc8], eax
jmp 0x1005d57a
mov eax, dword [0x10115fc8]
mov cl, byte [0x10115860]
test cl, cl
je 0x1005d589
movsx eax, cl
jmp 0x1005d597
test eax, eax
je 0x1005d602
xor ecx, ecx
cmp byte [eax], 0x30
setne cl
mov eax, ecx
test eax, eax
je 0x1005d602
call dword [sym.imp.KERNEL32.dll_GetLastError]
mov esi, eax
call dword [sym.imp.MSVCR100.dll__errno]
mov eax, dword [eax]
test eax, eax
je 0x1005d5b1
mov esi, eax
call sym.ACE.dll_public:_static_class_ACE_Log_Msg____cdecl_ACE_Log_Msg::instance_void_
mov edx, dword [ebp + 0xc]
mov byte [eax + 0x13c], 1
mov dword [eax + 0x140], str.Parse_Node.cpp
mov dword [eax + 0x144], 0x67
mov dword [eax + 0x148], 0
mov dword [eax + 0x14c], esi
mov ecx, dword [edx]
mov edx, dword [esp + 0x18]
push ecx
mov ecx, dword [edx + 0xc]
mov edx, dword [ecx + 4]
push edx
push str.__P_t__Did_stream_on__s__error___d_n
push 4
push eax
call sym.ACE.dll_public:_int___cdecl_ACE_Log_Msg::log_enum_ACE_Log_Priority__char_const__
add esp, 0x14
mov eax, dword [ebx]
mov edi, dword [sym.imp.MSVCR100.dll_void___cdecl_operator_delete_void__]
mov dword [ebx], ebx
mov dword [ebx + 4], ebx
cmp eax, ebx
je 0x1005d621
mov esi, dword [eax]
push eax
call edi
add esp, 4
mov eax, esi
cmp esi, ebx
jne 0x1005d613
push ebx
call edi
add esp, 4
mov ecx, dword [esp + 0x60]
mov dword fs:[0], ecx
pop ecx
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret 8
mov dword [esp + 0x20], eax
lea eax, [esp + 0x20]
push eax
lea ecx, [esp + 0x34]
call dword [sym.imp.MSVCR100.dll_public:_void___thiscall_std::exception::constructor_char_const__const_const__]
push 0x100b36f8
lea ecx, [esp + 0x34]
push ecx
mov dword [esp + 0x38], vtable.std::bad_alloc.0
call sub.MSVCR100.dll__CxxThrowException
int3