Function at 0x4099a4
Capabilities:
Query environment variable

Disassembly:
push 0x374
mov eax, 0x41c1f6
call fcn.00417909
xor ebx, ebx
push 0x206
lea eax, [ebp - 0x21a]
mov esi, edx
push ebx
push eax
mov edi, ecx
mov dword [ebp - 0x348], esi
mov word [ebp - 0x21c], bx
call sub.MSVCR80.dll_memset
add esp, 0xc
cmp dword [edi + 0x14], ebx
jne 0x4099e8
xor al, al
call fcn.00417953
ret
lea eax, [ebp - 0x284]
push eax
call fcn.004088de
push ecx
mov dword [ebp - 4], ebx
mov ecx, esp
mov dword [ebp - 0x340], esp
push edi
call fcn.004088c2
lea ecx, [ebp - 0x284]
call fcn.004168d0
test al, al
lea ecx, [ebp - 0x284]
jne 0x409a26
or dword [ebp - 4], 0xffffffff
call fcn.00414980
jmp 0x4099e0
push ebx
push ebx
push ebx
mov byte [ebp - 0x341], bl
call fcn.00410de0
lea eax, [ebp - 0x33c]
push eax
call fcn.00408e9f
push ecx
mov byte [ebp - 4], 1
mov eax, esp
lea ecx, [ebp - 0x284]
mov dword [ebp - 0x340], esp
mov dword [eax], str.tsbslib
call fcn.00412de0
cmp al, bl
je 0x409f74
push ecx
mov eax, esp
mov dword [eax], str.version
lea eax, [ebp - 0x364]
mov dword [ebp - 0x340], esp
push eax
lea ecx, [ebp - 0x284]
call fcn.0040893a
push eax
lea ecx, [ebp - 0x33c]
mov byte [ebp - 4], 2
call dword [sym.imp.MSVCP80.dll_public:_class_std::basic_string_wchar_t__struct_std::char_traits_wchar_t___class_std::allocator_wchar_t______thiscall_std::basic_string_wchar_t__struct_std::char_traits_wchar_t___class_std::allocator_wchar_t__::operator_class_std::basic_string_wchar_t__struct_std::char_traits_wchar_t___class_std::allocator_wchar_t___const__]
lea ecx, [ebp - 0x364]
mov byte [ebp - 4], 1
call dword [sym.imp.MSVCP80.dll_public:_void___thiscall_std::basic_string_wchar_t__struct_std::char_traits_wchar_t___class_std::allocator_wchar_t__::destructor_void_]
lea ecx, [ebp - 0x284]
call fcn.00412370
test al, al
je 0x409f74
push ecx
mov eax, esp
lea ecx, [ebp - 0x284]
mov dword [ebp - 0x340], esp
mov dword [eax], str.header
call fcn.00412de0
cmp al, bl
je 0x409f74
lea ecx, [ebp - 0x2e4]
call dword [sym.imp.MSVCP80.dll_public:_void___thiscall_std::basic_string_wchar_t__struct_std::char_traits_wchar_t___class_std::allocator_wchar_t__::constructor_void_]
push ebx
mov byte [ebp - 4], 3
push dword [ebp - 0x248]
lea ecx, [ebp - 0x284]
push dword [ebp - 0x24c]
call fcn.00410de0
push ecx
mov eax, esp
lea ecx, [ebp - 0x284]
mov dword [ebp - 0x340], esp
mov dword [eax], str.timestamp
call fcn.00412e80
cmp al, bl
je 0x409b56
lea eax, [ebp - 0x364]
push eax
lea ecx, [ebp - 0x284]
call fcn.00408920
push eax
lea ecx, [ebp - 0x320]
mov byte [ebp - 4], 4
call dword [sym.imp.MSVCP80.dll_public:_class_std::basic_string_wchar_t__struct_std::char_traits_wchar_t___class_std::allocator_wchar_t______thiscall_std::basic_string_wchar_t__struct_std::char_traits_wchar_t___class_std::allocator_wchar_t__::operator_class_std::basic_string_wchar_t__struct_std::char_traits_wchar_t___class_std::allocator_wchar_t___const__]
lea ecx, [ebp - 0x364]
mov byte [ebp - 4], 3
call dword [sym.imp.MSVCP80.dll_public:_void___thiscall_std::basic_string_wchar_t__struct_std::char_traits_wchar_t___class_std::allocator_wchar_t__::destructor_void_]
push ebx
push dword [ebp - 0x248]
lea ecx, [ebp - 0x284]
push dword [ebp - 0x24c]
call fcn.00410de0
push ecx
mov eax, esp
lea ecx, [ebp - 0x284]
mov dword [ebp - 0x340], esp
mov dword [eax], str.description
call fcn.00412e80
cmp al, bl
je 0x409bbf
lea eax, [ebp - 0x364]
push eax
lea ecx, [ebp - 0x284]
call fcn.00408920
push eax
lea ecx, [ebp - 0x304]
mov byte [ebp - 4], 5
call dword [sym.imp.MSVCP80.dll_public:_class_std::basic_string_wchar_t__struct_std::char_traits_wchar_t___class_std::allocator_wchar_t______thiscall_std::basic_string_wchar_t__struct_std::char_traits_wchar_t___class_std::allocator_wchar_t__::operator_class_std::basic_string_wchar_t__struct_std::char_traits_wchar_t___class_std::allocator_wchar_t___const__]
lea ecx, [ebp - 0x364]
mov byte [ebp - 4], 3
call dword [sym.imp.MSVCP80.dll_public:_void___thiscall_std::basic_string_wchar_t__struct_std::char_traits_wchar_t___class_std::allocator_wchar_t__::destructor_void_]
lea eax, [ebp - 0x33c]
push eax
mov ecx, esi
call dword [sym.imp.MSVCP80.dll_public:_class_std::basic_string_wchar_t__struct_std::char_traits_wchar_t___class_std::allocator_wchar_t______thiscall_std::basic_string_wchar_t__struct_std::char_traits_wchar_t___class_std::allocator_wchar_t__::operator_class_std::basic_string_wchar_t__struct_std::char_traits_wchar_t___class_std::allocator_wchar_t___const__]
lea eax, [ebp - 0x320]
push eax
lea ecx, [esi + 0x1c]
call dword [sym.imp.MSVCP80.dll_public:_class_std::basic_string_wchar_t__struct_std::char_traits_wchar_t___class_std::allocator_wchar_t______thiscall_std::basic_string_wchar_t__struct_std::char_traits_wchar_t___class_std::allocator_wchar_t__::operator_class_std::basic_string_wchar_t__struct_std::char_traits_wchar_t___class_std::allocator_wchar_t___const__]
lea eax, [ebp - 0x304]
push eax
lea ecx, [esi + 0x38]
call dword [sym.imp.MSVCP80.dll_public:_class_std::basic_string_wchar_t__struct_std::char_traits_wchar_t___class_std::allocator_wchar_t______thiscall_std::basic_string_wchar_t__struct_std::char_traits_wchar_t___class_std::allocator_wchar_t__::operator_class_std::basic_string_wchar_t__struct_std::char_traits_wchar_t___class_std::allocator_wchar_t___const__]
push ebx
push ebx
push dword [ebp - 0x24c]
lea ecx, [ebp - 0x284]
call fcn.00410de0
push ecx
mov eax, esp
lea ecx, [ebp - 0x284]
mov dword [ebp - 0x340], esp
mov dword [eax], str.tsbsinfo
call fcn.00412de0
cmp al, bl
je 0x409f64
lea ecx, [ebp - 0x284]
call fcn.00412370
test al, al
je 0x409f64
lea ecx, [ebp - 0x2c8]
call dword [sym.imp.MSVCP80.dll_public:_void___thiscall_std::basic_string_wchar_t__struct_std::char_traits_wchar_t___class_std::allocator_wchar_t__::constructor_void_]
push ebx
push ebx
mov byte [ebp - 4], 6
push dword [ebp - 0x24c]
lea ecx, [ebp - 0x284]
call fcn.00410de0
push ecx
mov eax, esp
lea ecx, [ebp - 0x284]
mov dword [ebp - 0x340], esp
mov dword [eax], str.kbitem
call fcn.00412de0
cmp al, bl
je 0x409f4d
push 0x28
call fcn.00416f0a
mov edi, eax
pop ecx
mov dword [ebp - 0x340], edi
cmp edi, ebx
mov byte [ebp - 4], 7
je 0x409cae
mov ecx, edi
call dword [sym.imp.MSVCP80.dll_public:_void___thiscall_std::basic_string_wchar_t__struct_std::char_traits_wchar_t___class_std::allocator_wchar_t__::constructor_void_]
mov byte [ebp - 4], 8
call fcn.00409ff8
mov dword [edi + 0x20], eax
mov dword [edi + 0x24], ebx
mov esi, edi
jmp 0x409cb0
xor esi, esi
cmp esi, ebx
mov byte [ebp - 4], 6
je 0x409f08
push ecx
mov eax, esp
mov dword [eax], str.kbname
lea eax, [ebp - 0x380]
mov dword [ebp - 0x340], esp
push eax
lea ecx, [ebp - 0x284]
call fcn.0040893a
push eax
mov ecx, esi
mov byte [ebp - 4], 9
call dword [sym.imp.MSVCP80.dll_public:_class_std::basic_string_wchar_t__struct_std::char_traits_wchar_t___class_std::allocator_wchar_t______thiscall_std::basic_string_wchar_t__struct_std::char_traits_wchar_t___class_std::allocator_wchar_t__::operator_class_std::basic_string_wchar_t__struct_std::char_traits_wchar_t___class_std::allocator_wchar_t___const__]
lea ecx, [ebp - 0x380]
mov byte [ebp - 4], 6
call dword [sym.imp.MSVCP80.dll_public:_void___thiscall_std::basic_string_wchar_t__struct_std::char_traits_wchar_t___class_std::allocator_wchar_t__::destructor_void_]
lea ecx, [ebp - 0x284]
call fcn.00412370
test al, al
jne 0x409d15
mov edi, esi
call fcn.00408e67
jmp 0x409c59
push ecx
mov eax, esp
lea ecx, [ebp - 0x284]
mov dword [ebp - 0x340], esp
mov dword [eax], str.system
call fcn.00412de0
cmp al, bl
je 0x409eec
lea ecx, [ebp - 0x2ac]
call dword [sym.imp.MSVCP80.dll_public:_void___thiscall_std::basic_string_wchar_t__struct_std::char_traits_wchar_t___class_std::allocator_wchar_t__::constructor_void_]
mov byte [ebp - 4], 0xa
call fcn.00405ed6
mov dword [ebp - 0x28c], eax
mov dword [ebp - 0x288], ebx
push ecx
mov eax, esp
mov byte [ebp - 4], 0xb
mov dword [eax], str.sysname
lea eax, [ebp - 0x380]
mov dword [ebp - 0x340], esp
push eax
lea ecx, [ebp - 0x284]
call fcn.0040893a
push eax
lea ecx, [ebp - 0x2ac]
mov byte [ebp - 4], 0xc
call dword [sym.imp.MSVCP80.dll_public:_class_std::basic_string_wchar_t__struct_std::char_traits_wchar_t___class_std::allocator_wchar_t______thiscall_std::basic_string_wchar_t__struct_std::char_traits_wchar_t___class_std::allocator_wchar_t__::operator_class_std::basic_string_wchar_t__struct_std::char_traits_wchar_t___class_std::allocator_wchar_t___const__]
lea ecx, [ebp - 0x380]
mov byte [ebp - 4], 0xb
call dword [sym.imp.MSVCP80.dll_public:_void___thiscall_std::basic_string_wchar_t__struct_std::char_traits_wchar_t___class_std::allocator_wchar_t__::destructor_void_]
lea ecx, [ebp - 0x284]
call fcn.00412370
test al, al
jne 0x409dc2
lea eax, [ebp - 0x2ac]
push eax
mov byte [ebp - 4], 6
call fcn.00409975
jmp 0x409d15
push ecx
mov eax, esp
lea ecx, [ebp - 0x284]
mov dword [ebp - 0x340], esp
mov dword [eax], str.files
call fcn.00412de0
cmp al, bl
je 0x409ece
push ecx
mov eax, esp
lea ecx, [ebp - 0x284]
mov dword [ebp - 0x340], esp
mov dword [eax], str.filepath
call fcn.00412e80
cmp al, bl
je 0x409ece
lea eax, [ebp - 0x380]
push eax
lea ecx, [ebp - 0x284]
call fcn.00408920
push eax
lea ecx, [ebp - 0x2c8]
mov byte [ebp - 4], 0xd
call dword [sym.imp.MSVCP80.dll_public:_class_std::basic_string_wchar_t__struct_std::char_traits_wchar_t___class_std::allocator_wchar_t______thiscall_std::basic_string_wchar_t__struct_std::char_traits_wchar_t___class_std::allocator_wchar_t__::operator_class_std::basic_string_wchar_t__struct_std::char_traits_wchar_t___class_std::allocator_wchar_t___const__]
lea ecx, [ebp - 0x380]
mov byte [ebp - 4], 0xb
call dword [sym.imp.MSVCP80.dll_public:_void___thiscall_std::basic_string_wchar_t__struct_std::char_traits_wchar_t___class_std::allocator_wchar_t__::destructor_void_]
cmp dword [ebp - 0x2b0], 8
mov eax, dword [ebp - 0x2c4]
jae 0x409e4e
lea eax, [ebp - 0x2c4]
push 0x104
lea ecx, [ebp - 0x21c]
push ecx
push eax
call dword [sym.imp.KERNEL32.dll_ExpandEnvironmentStringsW]
cmp eax, ebx
je 0x409ead
lea eax, [ebp - 0x21c]
push eax
lea ecx, [ebp - 0x364]
call dword [sym.imp.MSVCP80.dll_public:_void___thiscall_std::basic_string_wchar_t__struct_std::char_traits_wchar_t___class_std::allocator_wchar_t__::constructor_wchar_t_const__]
mov byte [ebp - 4], 0xe
mov eax, dword [ebp - 0x28c]
push eax
lea ecx, [ebp - 0x290]
push ecx
lea eax, [ebp - 0x364]
push eax
mov edi, ecx
call fcn.0040631e
lea ecx, [ebp - 0x364]
mov byte [ebp - 4], 0xb
call dword [sym.imp.MSVCP80.dll_public:_void___thiscall_std::basic_string_wchar_t__struct_std::char_traits_wchar_t___class_std::allocator_wchar_t__::destructor_void_]
jmp 0x409de4
mov eax, dword [ebp - 0x28c]
push eax
lea ecx, [ebp - 0x290]
push ecx
lea eax, [ebp - 0x2c8]
push eax
mov edi, ecx
call fcn.0040631e
jmp 0x409de4
lea ecx, [ebp - 0x284]
call fcn.00412390
lea edi, [esi + 0x1c]
lea ecx, [ebp - 0x2ac]
call fcn.00409f8b
jmp 0x409dad
lea ecx, [ebp - 0x284]
call fcn.00412390
mov eax, dword [ebp - 0x348]
push esi
call fcn.00408fc2
jmp 0x409c59
lea ecx, [ebp - 0x2c8]
mov byte [ebp - 4], 3
call dword [sym.imp.MSVCP80.dll_public:_void___thiscall_std::basic_string_wchar_t__struct_std::char_traits_wchar_t___class_std::allocator_wchar_t__::destructor_void_]
lea ecx, [ebp - 0x2e4]
mov byte [ebp - 4], 1
call dword [sym.imp.MSVCP80.dll_public:_void___thiscall_std::basic_string_wchar_t__struct_std::char_traits_wchar_t___class_std::allocator_wchar_t__::destructor_void_]
lea eax, [ebp - 0x33c]
push eax
mov byte [ebp - 4], bl
call fcn.00408eda
or dword [ebp - 4], 0xffffffff
lea ecx, [ebp - 0x284]
call fcn.00414980
mov al, bl
jmp 0x4099e2
lea ecx, [ebp - 0x2c8]
mov byte [ebp - 0x341], 1
mov byte [ebp - 4], 3
call dword [sym.imp.MSVCP80.dll_public:_void___thiscall_std::basic_string_wchar_t__struct_std::char_traits_wchar_t___class_std::allocator_wchar_t__::destructor_void_]
lea ecx, [ebp - 0x2e4]
mov byte [ebp - 4], 1
call dword [sym.imp.MSVCP80.dll_public:_void___thiscall_std::basic_string_wchar_t__struct_std::char_traits_wchar_t___class_std::allocator_wchar_t__::destructor_void_]
lea eax, [ebp - 0x33c]
push eax
mov byte [ebp - 4], bl
call fcn.00408eda
mov bl, byte [ebp - 0x341]
jmp 0x409f37