Function at 0x1021eab
Capabilities:
Query environment variable

Disassembly:
push 0x54
mov eax, 0x102fef4
call fcn.0102d2d6
mov dword [ebp - 0x18], ecx
xor eax, eax
lea edi, [ebp - 0xe]
stosb byte es:[edi], al
sub esp, 0x10
lea edi, [ebp - 0xf]
stosb byte es:[edi], al
mov ecx, esp
mov dword [ebp - 0x24], esp
lea eax, [ebp - 0xe]
push eax
mov ebx, 0x1009460
push ebx
call dword [sym.imp.msvcp60.dll_public:_void___thiscall_std::basic_string_unsigned_short_int__struct_std::char_traits_unsigned_short_int___class_std::allocator_unsigned_short_int__::constructor_unsigned_short_int_const___class_std::allocator_unsigned_short_int__const__]
and dword [ebp - 4], 0
push 0x306
sub esp, 0x10
mov ecx, esp
mov dword [ebp - 0x28], esp
lea eax, [ebp - 0xf]
push eax
mov esi, 0x1007bf8
push esi
call dword [sym.imp.msvcp60.dll_public:_void___thiscall_std::basic_string_unsigned_short_int__struct_std::char_traits_unsigned_short_int___class_std::allocator_unsigned_short_int__::constructor_unsigned_short_int_const___class_std::allocator_unsigned_short_int__const__]
or dword [ebp - 4], 0xffffffff
lea ecx, [ebp - 0x60]
call fcn.01011355
mov eax, dword [ebp + 0xc]
mov ecx, dword [ebp - 0x18]
and dword [ebp - 0x14], 0
mov dword [ebp - 4], 1
mov dword [ecx + 0x34], eax
xor eax, eax
lea edi, [ebp + 0xf]
stosb byte es:[edi], al
lea edi, [ebp - 0xf]
stosb byte es:[edi], al
push 0x1009420
sub esp, 0x10
lea edi, [ebp - 0xe]
stosb byte es:[edi], al
mov ecx, esp
mov dword [ebp - 0x28], esp
lea eax, [ebp + 0xf]
push eax
push 0x1002504
mov byte [ebp - 4], 2
call dword [sym.imp.msvcp60.dll_public:_void___thiscall_std::basic_string_unsigned_short_int__struct_std::char_traits_unsigned_short_int___class_std::allocator_unsigned_short_int__::constructor_unsigned_short_int_const___class_std::allocator_unsigned_short_int__const__]
sub esp, 0x10
mov ecx, esp
mov dword [ebp - 0x24], esp
lea eax, [ebp - 0xf]
push eax
push ebx
mov byte [ebp - 4], 3
call dword [sym.imp.msvcp60.dll_public:_void___thiscall_std::basic_string_unsigned_short_int__struct_std::char_traits_unsigned_short_int___class_std::allocator_unsigned_short_int__::constructor_unsigned_short_int_const___class_std::allocator_unsigned_short_int__const__]
push 0x30c
sub esp, 0x10
mov ecx, esp
mov dword [ebp - 0x2c], esp
lea eax, [ebp - 0xe]
push eax
push esi
mov byte [ebp - 4], 4
call dword [sym.imp.msvcp60.dll_public:_void___thiscall_std::basic_string_unsigned_short_int__struct_std::char_traits_unsigned_short_int___class_std::allocator_unsigned_short_int__::constructor_unsigned_short_int_const___class_std::allocator_unsigned_short_int__const__]
lea eax, [ebp - 0x60]
push eax
mov byte [ebp - 4], 2
call fcn.010111d2
mov eax, dword [ebp + 8]
mov ecx, dword [eax]
add esp, 0x3c
lea edx, [ebp - 0x14]
push edx
push eax
call dword [ecx + 0xc]
mov dword [ebp + 0xc], eax
test eax, eax
jge 0x1022088
push 0x1009420
xor eax, eax
sub esp, 0x10
lea edi, [ebp + 0xb]
stosb byte es:[edi], al
mov ecx, esp
mov dword [ebp - 0x2c], esp
lea eax, [ebp + 0xb]
push eax
push 0x10024cc
call dword [sym.imp.msvcp60.dll_public:_void___thiscall_std::basic_string_unsigned_short_int__struct_std::char_traits_unsigned_short_int___class_std::allocator_unsigned_short_int__::constructor_unsigned_short_int_const___class_std::allocator_unsigned_short_int__const__]
lea eax, [ebp - 0x60]
push eax
call fcn.010114c6
mov esi, dword [ebp + 0xc]
add esp, 0x18
push esi
xor eax, eax
sub esp, 0x10
lea edi, [ebp + 0xb]
stosb byte es:[edi], al
mov ecx, esp
mov dword [ebp + 0xc], esp
lea eax, [ebp + 0xb]
push eax
push 0x1002490
call dword [sym.imp.msvcp60.dll_public:_void___thiscall_std::basic_string_unsigned_short_int__struct_std::char_traits_unsigned_short_int___class_std::allocator_unsigned_short_int__::constructor_unsigned_short_int_const___class_std::allocator_unsigned_short_int__const__]
lea eax, [ebp - 0x60]
push eax
call fcn.010114c6
xor eax, eax
add esp, 0x18
lea edi, [ebp + 0xb]
stosb byte es:[edi], al
push esi
lea eax, [ebp - 0x3c]
push eax
call fcn.01010552
mov ecx, eax
mov byte [ebp - 4], 5
call dword [sym.imp.msvcp60.dll_public:_unsigned_short_int_const____thiscall_std::basic_string_unsigned_short_int__struct_std::char_traits_unsigned_short_int___class_std::allocator_unsigned_short_int__::c_str_void_const]
push eax
sub esp, 0x10
mov ecx, esp
mov dword [ebp + 0xc], esp
lea eax, [ebp + 0xb]
push eax
push 0x100246c
call dword [sym.imp.msvcp60.dll_public:_void___thiscall_std::basic_string_unsigned_short_int__struct_std::char_traits_unsigned_short_int___class_std::allocator_unsigned_short_int__::constructor_unsigned_short_int_const___class_std::allocator_unsigned_short_int__const__]
lea eax, [ebp - 0x60]
push eax
call fcn.010114c6
add esp, 0x18
mov byte [ebp - 4], 2
lea ecx, [ebp - 0x3c]
call dword [sym.imp.msvcp60.dll_public:_void___thiscall_std::basic_string_unsigned_short_int__struct_std::char_traits_unsigned_short_int___class_std::allocator_unsigned_short_int__::destructor_void_]
xor eax, eax
sub esp, 0x10
lea edi, [ebp + 0xb]
stosb byte es:[edi], al
mov ecx, esp
mov dword [ebp + 0xc], esp
lea eax, [ebp + 0xb]
push eax
push 0x10023d8
call dword [sym.imp.msvcp60.dll_public:_void___thiscall_std::basic_string_unsigned_short_int__struct_std::char_traits_unsigned_short_int___class_std::allocator_unsigned_short_int__::constructor_unsigned_short_int_const___class_std::allocator_unsigned_short_int__const__]
lea eax, [ebp - 0x60]
push eax
call fcn.010114c6
add esp, 0x14
push 0x103138c
lea eax, [ebp + 8]
push eax
mov dword [ebp + 8], esi
call sub.msvcrt.dll__CxxThrowException
and dword [ebp - 0x1c], 0
xor eax, eax
lea edi, [ebp + 0xf]
stosb byte es:[edi], al
lea edi, [ebp - 0xf]
stosb byte es:[edi], al
push 0x10093c8
sub esp, 0x10
lea edi, [ebp - 0xe]
stosb byte es:[edi], al
mov ecx, esp
mov dword [ebp - 0x2c], esp
lea eax, [ebp + 0xf]
push eax
push 0x1002504
mov byte [ebp - 4], 6
call dword [sym.imp.msvcp60.dll_public:_void___thiscall_std::basic_string_unsigned_short_int__struct_std::char_traits_unsigned_short_int___class_std::allocator_unsigned_short_int__::constructor_unsigned_short_int_const___class_std::allocator_unsigned_short_int__const__]
sub esp, 0x10
mov ecx, esp
mov dword [ebp - 0x28], esp
lea eax, [ebp - 0xf]
push eax
push ebx
mov byte [ebp - 4], 7
call dword [sym.imp.msvcp60.dll_public:_void___thiscall_std::basic_string_unsigned_short_int__struct_std::char_traits_unsigned_short_int___class_std::allocator_unsigned_short_int__::constructor_unsigned_short_int_const___class_std::allocator_unsigned_short_int__const__]
push 0x30f
sub esp, 0x10
mov ecx, esp
mov dword [ebp - 0x24], esp
lea eax, [ebp - 0xe]
push eax
push esi
mov byte [ebp - 4], 8
call dword [sym.imp.msvcp60.dll_public:_void___thiscall_std::basic_string_unsigned_short_int__struct_std::char_traits_unsigned_short_int___class_std::allocator_unsigned_short_int__::constructor_unsigned_short_int_const___class_std::allocator_unsigned_short_int__const__]
lea eax, [ebp - 0x60]
push eax
mov byte [ebp - 4], 6
call fcn.010111d2
mov eax, dword [ebp + 8]
mov ecx, dword [eax]
add esp, 0x3c
lea edx, [ebp - 0x1c]
push edx
push eax
call dword [ecx + 0x10]
mov dword [ebp + 0xc], eax
test eax, eax
jge 0x10221b9
push 0x10093c8
xor eax, eax
sub esp, 0x10
lea edi, [ebp + 0xb]
stosb byte es:[edi], al
mov ecx, esp
mov dword [ebp - 0x2c], esp
lea eax, [ebp + 0xb]
push eax
push 0x10024cc
call dword [sym.imp.msvcp60.dll_public:_void___thiscall_std::basic_string_unsigned_short_int__struct_std::char_traits_unsigned_short_int___class_std::allocator_unsigned_short_int__::constructor_unsigned_short_int_const___class_std::allocator_unsigned_short_int__const__]
lea eax, [ebp - 0x60]
push eax
call fcn.010114c6
mov esi, dword [ebp + 0xc]
add esp, 0x18
push esi
xor eax, eax
sub esp, 0x10
lea edi, [ebp + 0xb]
stosb byte es:[edi], al
mov ecx, esp
mov dword [ebp + 0xc], esp
lea eax, [ebp + 0xb]
push eax
push 0x1002490
call dword [sym.imp.msvcp60.dll_public:_void___thiscall_std::basic_string_unsigned_short_int__struct_std::char_traits_unsigned_short_int___class_std::allocator_unsigned_short_int__::constructor_unsigned_short_int_const___class_std::allocator_unsigned_short_int__const__]
lea eax, [ebp - 0x60]
push eax
call fcn.010114c6
xor eax, eax
add esp, 0x18
lea edi, [ebp + 0xb]
stosb byte es:[edi], al
push esi
lea eax, [ebp - 0x3c]
push eax
call fcn.01010552
mov byte [ebp - 4], 9
mov ecx, eax
call dword [sym.imp.msvcp60.dll_public:_unsigned_short_int_const____thiscall_std::basic_string_unsigned_short_int__struct_std::char_traits_unsigned_short_int___class_std::allocator_unsigned_short_int__::c_str_void_const]
push eax
sub esp, 0x10
mov ecx, esp
mov dword [ebp + 0xc], esp
lea eax, [ebp + 0xb]
push eax
push 0x100246c
call dword [sym.imp.msvcp60.dll_public:_void___thiscall_std::basic_string_unsigned_short_int__struct_std::char_traits_unsigned_short_int___class_std::allocator_unsigned_short_int__::constructor_unsigned_short_int_const___class_std::allocator_unsigned_short_int__const__]
lea eax, [ebp - 0x60]
push eax
call fcn.010114c6
add esp, 0x18
mov byte [ebp - 4], 6
jmp 0x1022045
xor eax, eax
lea edi, [ebp + 0xf]
stosb byte es:[edi], al
lea edi, [ebp - 0xf]
stosb byte es:[edi], al
push 0x1009378
sub esp, 0x10
lea edi, [ebp - 0xe]
stosb byte es:[edi], al
mov ecx, esp
mov dword [ebp - 0x2c], esp
lea eax, [ebp + 0xf]
push eax
push 0x1002504
mov byte [ebp - 0xd], 0
call dword [sym.imp.msvcp60.dll_public:_void___thiscall_std::basic_string_unsigned_short_int__struct_std::char_traits_unsigned_short_int___class_std::allocator_unsigned_short_int__::constructor_unsigned_short_int_const___class_std::allocator_unsigned_short_int__const__]
sub esp, 0x10
mov ecx, esp
mov dword [ebp - 0x28], esp
lea eax, [ebp - 0xf]
push eax
push ebx
mov byte [ebp - 4], 0xa
call dword [sym.imp.msvcp60.dll_public:_void___thiscall_std::basic_string_unsigned_short_int__struct_std::char_traits_unsigned_short_int___class_std::allocator_unsigned_short_int__::constructor_unsigned_short_int_const___class_std::allocator_unsigned_short_int__const__]
push 0x312
sub esp, 0x10
mov ecx, esp
mov dword [ebp - 0x24], esp
lea eax, [ebp - 0xe]
push eax
push esi
mov byte [ebp - 4], 0xb
call dword [sym.imp.msvcp60.dll_public:_void___thiscall_std::basic_string_unsigned_short_int__struct_std::char_traits_unsigned_short_int___class_std::allocator_unsigned_short_int__::constructor_unsigned_short_int_const___class_std::allocator_unsigned_short_int__const__]
lea eax, [ebp - 0x60]
push eax
mov byte [ebp - 4], 6
call fcn.010111d2
mov eax, dword [ebp + 8]
mov ecx, dword [eax]
add esp, 0x3c
lea edx, [ebp - 0xd]
push edx
push eax
call dword [ecx + 0x14]
mov dword [ebp + 0xc], eax
test eax, eax
jge 0x10222b2
push 0x1009378
xor eax, eax
sub esp, 0x10
lea edi, [ebp + 0xb]
stosb byte es:[edi], al
mov ecx, esp
mov dword [ebp - 0x2c], esp
lea eax, [ebp + 0xb]
push eax
push 0x10024cc
call dword [sym.imp.msvcp60.dll_public:_void___thiscall_std::basic_string_unsigned_short_int__struct_std::char_traits_unsigned_short_int___class_std::allocator_unsigned_short_int__::constructor_unsigned_short_int_const___class_std::allocator_unsigned_short_int__const__]
lea eax, [ebp - 0x60]
push eax
call fcn.010114c6
mov esi, dword [ebp + 0xc]
add esp, 0x18
push esi
xor eax, eax
sub esp, 0x10
lea edi, [ebp + 0xb]
stosb byte es:[edi], al
mov ecx, esp
mov dword [ebp + 0xc], esp
lea eax, [ebp + 0xb]
push eax
push 0x1002490
call dword [sym.imp.msvcp60.dll_public:_void___thiscall_std::basic_string_unsigned_short_int__struct_std::char_traits_unsigned_short_int___class_std::allocator_unsigned_short_int__::constructor_unsigned_short_int_const___class_std::allocator_unsigned_short_int__const__]
lea eax, [ebp - 0x60]
push eax
call fcn.010114c6
xor eax, eax
add esp, 0x18
lea edi, [ebp + 0xb]
stosb byte es:[edi], al
push esi
lea eax, [ebp - 0x3c]
push eax
call fcn.01010552
mov byte [ebp - 4], 0xc
jmp 0x1022184
and dword [ebp - 0x20], 0
xor eax, eax
lea edi, [ebp + 0xf]
stosb byte es:[edi], al
lea edi, [ebp - 0xf]
stosb byte es:[edi], al
push 0x1009310
sub esp, 0x10
lea edi, [ebp - 0xe]
stosb byte es:[edi], al
mov ecx, esp
mov dword [ebp - 0x2c], esp
lea eax, [ebp + 0xf]
push eax
push 0x1002504
mov byte [ebp - 4], 0xd
call dword [sym.imp.msvcp60.dll_public:_void___thiscall_std::basic_string_unsigned_short_int__struct_std::char_traits_unsigned_short_int___class_std::allocator_unsigned_short_int__::constructor_unsigned_short_int_const___class_std::allocator_unsigned_short_int__const__]
sub esp, 0x10
mov ecx, esp
mov dword [ebp - 0x28], esp
lea eax, [ebp - 0xf]
push eax
push ebx
mov byte [ebp - 4], 0xe
call dword [sym.imp.msvcp60.dll_public:_void___thiscall_std::basic_string_unsigned_short_int__struct_std::char_traits_unsigned_short_int___class_std::allocator_unsigned_short_int__::constructor_unsigned_short_int_const___class_std::allocator_unsigned_short_int__const__]
push 0x315
sub esp, 0x10
mov ecx, esp
mov dword [ebp - 0x24], esp
lea eax, [ebp - 0xe]
push eax
push esi
mov byte [ebp - 4], 0xf
call dword [sym.imp.msvcp60.dll_public:_void___thiscall_std::basic_string_unsigned_short_int__struct_std::char_traits_unsigned_short_int___class_std::allocator_unsigned_short_int__::constructor_unsigned_short_int_const___class_std::allocator_unsigned_short_int__const__]
lea eax, [ebp - 0x60]
push eax
mov byte [ebp - 4], 0xd
call fcn.010111d2
mov eax, dword [ebp + 8]
mov ecx, dword [eax]
add esp, 0x3c
lea edx, [ebp - 0x20]
push edx
push eax
call dword [ecx + 0x18]
mov dword [ebp + 0xc], eax
test eax, eax
jge 0x10223e3
push 0x1009310
xor eax, eax
sub esp, 0x10
lea edi, [ebp + 0xb]
stosb byte es:[edi], al
mov ecx, esp
mov dword [ebp - 0x2c], esp
lea eax, [ebp + 0xb]
push eax
push 0x10024cc
call dword [sym.imp.msvcp60.dll_public:_void___thiscall_std::basic_string_unsigned_short_int__struct_std::char_traits_unsigned_short_int___class_std::allocator_unsigned_short_int__::constructor_unsigned_short_int_const___class_std::allocator_unsigned_short_int__const__]
lea eax, [ebp - 0x60]
push eax
call fcn.010114c6
mov esi, dword [ebp + 0xc]
add esp, 0x18
push esi
xor eax, eax
sub esp, 0x10
lea edi, [ebp + 0xb]
stosb byte es:[edi], al
mov ecx, esp
mov dword [ebp + 0xc], esp
lea eax, [ebp + 0xb]
push eax
push 0x1002490
call dword [sym.imp.msvcp60.dll_public:_void___thiscall_std::basic_string_unsigned_short_int__struct_std::char_traits_unsigned_short_int___class_std::allocator_unsigned_short_int__::constructor_unsigned_short_int_const___class_std::allocator_unsigned_short_int__const__]
lea eax, [ebp - 0x60]
push eax
call fcn.010114c6
xor eax, eax
add esp, 0x18
lea edi, [ebp + 0xb]
stosb byte es:[edi], al
push esi
lea eax, [ebp - 0x3c]
push eax
call fcn.01010552
mov byte [ebp - 4], 0x10
mov ecx, eax
call dword [sym.imp.msvcp60.dll_public:_unsigned_short_int_const____thiscall_std::basic_string_unsigned_short_int__struct_std::char_traits_unsigned_short_int___class_std::allocator_unsigned_short_int__::c_str_void_const]
push eax
sub esp, 0x10
mov ecx, esp
mov dword [ebp + 0xc], esp
lea eax, [ebp + 0xb]
push eax
push 0x100246c
call dword [sym.imp.msvcp60.dll_public:_void___thiscall_std::basic_string_unsigned_short_int__struct_std::char_traits_unsigned_short_int___class_std::allocator_unsigned_short_int__::constructor_unsigned_short_int_const___class_std::allocator_unsigned_short_int__const__]
lea eax, [ebp - 0x60]
push eax
call fcn.010114c6
add esp, 0x18
mov byte [ebp - 4], 0xd
jmp 0x1022045
push dword [ebp - 0x14]
lea eax, [ebp - 0x3c]
push eax
call fcn.01013090
mov edi, dword [ebp - 0x18]
push eax
mov ecx, edi
mov byte [ebp - 4], 0x11
call dword [sym.imp.msvcp60.dll_public:_class_std::basic_string_unsigned_short_int__struct_std::char_traits_unsigned_short_int___class_std::allocator_unsigned_short_int______thiscall_std::basic_string_unsigned_short_int__struct_std::char_traits_unsigned_short_int___class_std::allocator_unsigned_short_int__::operator_class_std::basic_string_unsigned_short_int__struct_std::char_traits_unsigned_short_int___class_std::allocator_unsigned_short_int___const__]
lea ecx, [ebp - 0x3c]
mov byte [ebp - 4], 0xd
call dword [sym.imp.msvcp60.dll_public:_void___thiscall_std::basic_string_unsigned_short_int__struct_std::char_traits_unsigned_short_int___class_std::allocator_unsigned_short_int__::destructor_void_]
push dword [ebp - 0x1c]
lea eax, [ebp - 0x3c]
push eax
call fcn.01013090
push eax
lea ecx, [edi + 0x10]
mov byte [ebp - 4], 0x12
call dword [sym.imp.msvcp60.dll_public:_class_std::basic_string_unsigned_short_int__struct_std::char_traits_unsigned_short_int___class_std::allocator_unsigned_short_int______thiscall_std::basic_string_unsigned_short_int__struct_std::char_traits_unsigned_short_int___class_std::allocator_unsigned_short_int__::operator_class_std::basic_string_unsigned_short_int__struct_std::char_traits_unsigned_short_int___class_std::allocator_unsigned_short_int___const__]
lea ecx, [ebp - 0x3c]
mov byte [ebp - 4], 0xd
call dword [sym.imp.msvcp60.dll_public:_void___thiscall_std::basic_string_unsigned_short_int__struct_std::char_traits_unsigned_short_int___class_std::allocator_unsigned_short_int__::destructor_void_]
movzx ax, byte [ebp - 0xd]
movzx eax, ax
lea ecx, [edi + 0x38]
push eax
call dword [0x10010fc]
push dword [ebp - 0x14]
lea eax, [ebp - 0x3c]
push eax
call fcn.01013090
push eax
mov ecx, edi
mov byte [ebp - 4], 0x13
call dword [sym.imp.msvcp60.dll_public:_class_std::basic_string_unsigned_short_int__struct_std::char_traits_unsigned_short_int___class_std::allocator_unsigned_short_int______thiscall_std::basic_string_unsigned_short_int__struct_std::char_traits_unsigned_short_int___class_std::allocator_unsigned_short_int__::operator_class_std::basic_string_unsigned_short_int__struct_std::char_traits_unsigned_short_int___class_std::allocator_unsigned_short_int___const__]
lea ecx, [ebp - 0x3c]
mov byte [ebp - 4], 0xd
call dword [sym.imp.msvcp60.dll_public:_void___thiscall_std::basic_string_unsigned_short_int__struct_std::char_traits_unsigned_short_int___class_std::allocator_unsigned_short_int__::destructor_void_]
push 0
push 0x104
lea ecx, [edi + 0x38]
call dword [sym.imp.msvcp60.dll_public:_void___thiscall_std::basic_string_unsigned_short_int__struct_std::char_traits_unsigned_short_int___class_std::allocator_unsigned_short_int__::resize_unsigned_int__unsigned_short_int_]
mov eax, dword [ebp - 0x14]
lea ecx, [edi + 0x38]
mov dword [ebp + 8], eax
call dword [sym.imp.msvcp60.dll_public:_unsigned_int___thiscall_std::basic_string_unsigned_short_int__struct_std::char_traits_unsigned_short_int___class_std::allocator_unsigned_short_int__::length_void_const]
push eax
lea ecx, [edi + 0x38]
call dword [sym.imp.msvcp60.dll_public:_unsigned_short_int_const____thiscall_std::basic_string_unsigned_short_int__struct_std::char_traits_unsigned_short_int___class_std::allocator_unsigned_short_int__::c_str_void_const]
push eax
push dword [ebp + 8]
call dword [sym.imp.KERNEL32.dll_ExpandEnvironmentStringsW]
test eax, eax
jne 0x10225a3
lea edi, [ebp + 0xb]
stosb byte es:[edi], al
lea edi, [ebp + 0xf]
stosb byte es:[edi], al
push 0x1009248
sub esp, 0x10
lea edi, [ebp - 0xf]
stosb byte es:[edi], al
mov ecx, esp
mov dword [ebp - 0x2c], esp
lea eax, [ebp + 0xb]
push eax
push 0x1002c84
call dword [sym.imp.msvcp60.dll_public:_void___thiscall_std::basic_string_unsigned_short_int__struct_std::char_traits_unsigned_short_int___class_std::allocator_unsigned_short_int__::constructor_unsigned_short_int_const___class_std::allocator_unsigned_short_int__const__]
sub esp, 0x10
mov ecx, esp
mov dword [ebp - 0x28], esp
lea eax, [ebp + 0xf]
push eax
push ebx
mov byte [ebp - 4], 0x14
call dword [sym.imp.msvcp60.dll_public:_void___thiscall_std::basic_string_unsigned_short_int__struct_std::char_traits_unsigned_short_int___class_std::allocator_unsigned_short_int__::constructor_unsigned_short_int_const___class_std::allocator_unsigned_short_int__const__]
push 0x320
sub esp, 0x10
mov ecx, esp
mov dword [ebp - 0x24], esp
lea eax, [ebp - 0xf]
push eax
push esi
mov byte [ebp - 4], 0x15
call dword [sym.imp.msvcp60.dll_public:_void___thiscall_std::basic_string_unsigned_short_int__struct_std::char_traits_unsigned_short_int___class_std::allocator_unsigned_short_int__::constructor_unsigned_short_int_const___class_std::allocator_unsigned_short_int__const__]
lea eax, [ebp - 0x60]
push eax
mov byte [ebp - 4], 0xd
call fcn.010111d2
add esp, 0x3c
call dword [sym.imp.KERNEL32.dll_GetLastError]
mov ebx, eax
mov esi, ebx
test ebx, ebx
jle 0x102252d
and esi, 0xffff
or esi, 0x80070000
test ebx, ebx
je 0x10225a0
push 0x1009248
xor eax, eax
sub esp, 0x10
lea edi, [ebp + 0xb]
stosb byte es:[edi], al
mov ecx, esp
mov dword [ebp + 0xc], esp
lea eax, [ebp + 0xb]
push eax
push 0x1002c48
call dword [sym.imp.msvcp60.dll_public:_void___thiscall_std::basic_string_unsigned_short_int__struct_std::char_traits_unsigned_short_int___class_std::allocator_unsigned_short_int__::constructor_unsigned_short_int_const___class_std::allocator_unsigned_short_int__const__]
lea eax, [ebp - 0x60]
push eax
call fcn.010114c6
add esp, 0x18
push ebx
xor eax, eax
sub esp, 0x10
lea edi, [ebp + 0xb]
stosb byte es:[edi], al
mov ecx, esp
mov dword [ebp + 0xc], esp
lea eax, [ebp + 0xb]
push eax
push 0x1002c18
call dword [sym.imp.msvcp60.dll_public:_void___thiscall_std::basic_string_unsigned_short_int__struct_std::char_traits_unsigned_short_int___class_std::allocator_unsigned_short_int__::constructor_unsigned_short_int_const___class_std::allocator_unsigned_short_int__const__]
lea eax, [ebp - 0x60]
push eax
call fcn.010114c6
xor eax, eax
add esp, 0x18
lea edi, [ebp + 0xb]
stosb byte es:[edi], al
push esi
lea eax, [ebp - 0x3c]
push eax
call fcn.01010552
mov byte [ebp - 4], 0x16
jmp 0x10223ae
mov edi, dword [ebp - 0x18]
sub esp, 0x10
mov ecx, esp
mov dword [ebp + 8], esp
lea esi, [edi + 0x38]
push esi
call dword [sym.imp.msvcp60.dll_public:_void___thiscall_std::basic_string_unsigned_short_int__struct_std::char_traits_unsigned_short_int___class_std::allocator_unsigned_short_int__::constructor_class_std::basic_string_unsigned_short_int__struct_std::char_traits_unsigned_short_int___class_std::allocator_unsigned_short_int___const__]
lea eax, [ebp - 0x3c]
push eax
call fcn.01017de2
push eax
mov ecx, esi
mov byte [ebp - 4], 0x17
call dword [sym.imp.msvcp60.dll_public:_class_std::basic_string_unsigned_short_int__struct_std::char_traits_unsigned_short_int___class_std::allocator_unsigned_short_int______thiscall_std::basic_string_unsigned_short_int__struct_std::char_traits_unsigned_short_int___class_std::allocator_unsigned_short_int__::operator_class_std::basic_string_unsigned_short_int__struct_std::char_traits_unsigned_short_int___class_std::allocator_unsigned_short_int___const__]
lea ecx, [ebp - 0x3c]
mov byte [ebp - 4], 0xd
call dword [sym.imp.msvcp60.dll_public:_void___thiscall_std::basic_string_unsigned_short_int__struct_std::char_traits_unsigned_short_int___class_std::allocator_unsigned_short_int__::destructor_void_]
add edi, 0x48
push edi
sub esp, 0x10
mov ecx, esp
mov dword [ebp + 8], esp
push esi
call dword [sym.imp.msvcp60.dll_public:_void___thiscall_std::basic_string_unsigned_short_int__struct_std::char_traits_unsigned_short_int___class_std::allocator_unsigned_short_int__::constructor_class_std::basic_string_unsigned_short_int__struct_std::char_traits_unsigned_short_int___class_std::allocator_unsigned_short_int___const__]
call fcn.010212f3
test al, al
jne 0x10225fd
push esi
mov ecx, edi
call dword [sym.imp.msvcp60.dll_public:_class_std::basic_string_unsigned_short_int__struct_std::char_traits_unsigned_short_int___class_std::allocator_unsigned_short_int______thiscall_std::basic_string_unsigned_short_int__struct_std::char_traits_unsigned_short_int___class_std::allocator_unsigned_short_int__::operator_class_std::basic_string_unsigned_short_int__struct_std::char_traits_unsigned_short_int___class_std::allocator_unsigned_short_int___const__]
push dword [ebp - 0x20]
mov esi, dword [sym.imp.OLEAUT32.dll_SysStringLen]
call esi
push dword [ebp - 0x1c]
call esi
push dword [ebp - 0x14]
call esi
or dword [ebp - 4], 0xffffffff
lea ecx, [ebp - 0x60]
call fcn.01011422
call fcn.0102d387
ret 8