Function at 0x45bfe0
Capabilities:
Get common file path

Disassembly:
push 0xffffffffffffffff
push 0x4cf42d
mov eax, dword fs:[0]
push eax
sub esp, 0x330
mov eax, dword [0x51501c]
xor eax, esp
mov dword [esp + 0x328], eax
push ebx
push ebp
push esi
push edi
mov eax, dword [0x51501c]
xor eax, esp
push eax
lea eax, [esp + 0x344]
mov dword fs:[0], eax
mov edi, ecx
mov esi, edx
mov dword [esp + 0x28], edi
mov dword [esp + 0x20], esi
call dword [sym.imp.MSVCP80.dll_public:_void___thiscall_std::basic_string_char__struct_std::char_traits_char___class_std::allocator_char__::constructor_void_]
xor ebp, ebp
mov dword [esp + 0x34c], ebp
mov dword [edi + 0x20], ebp
mov dword [edi + 0x24], ebp
mov dword [edi + 0x28], ebp
lea ecx, [esp + 0x27]
lea eax, [edi + 0x2c]
push ecx
push eax
mov byte [esp + 0x354], 1
call fcn.00455fe0
mov byte [esp + 0x34c], 2
lea ecx, [edi + 0x58]
mov dword [edi + 0x54], 2
call dword [sym.imp.MSVCP80.dll_public:_void___thiscall_std::basic_string_char__struct_std::char_traits_char___class_std::allocator_char__::constructor_void_]
mov edx, dword [esp + 0x354]
mov byte [esp + 0x34c], 3
push 0x4d9603
mov dword [edi + 0x7c], edx
mov dword [0x53b820], 4
mov dword [0x53b824], 0x4f891c
call fcn.0045eb40
add esp, 4
lea eax, [esp + 0x234]
push eax
push 0x104
mov dword [esi], ebp
call dword [sym.imp.KERNEL32.dll_GetCurrentDirectoryA]
cmp eax, ebp
je 0x45c0bd
xor eax, eax
jmp 0x45c0ca
push 0x4f891c
call fcn.0045ecd0
add esp, 4
cmp eax, ebp
mov dword [esi], eax
jl 0x45caf0
lea ecx, [esp + 0x234]
push ecx
lea ecx, [esp + 0x1c8]
call dword [sym.imp.MSVCP80.dll_public:_void___thiscall_std::basic_string_char__struct_std::char_traits_char___class_std::allocator_char__::constructor_char_const__]
lea edx, [esp + 0x2c]
push edx
lea ecx, [esp + 0x1c8]
mov byte [esp + 0x350], 4
call dword [sym.imp.MSVCP80.dll_public:_class_std::_String_iterator_char__struct_std::char_traits_char___class_std::allocator_char_____thiscall_std::basic_string_char__struct_std::char_traits_char___class_std::allocator_char__::end_void_]
mov ecx, dword [eax]
mov ebx, dword [eax + 4]
lea edx, [esp + 0x34]
mov dword [esp + 0x18], ecx
push edx
lea ecx, [esp + 0x1c8]
call dword [sym.imp.MSVCP80.dll_public:_class_std::_String_iterator_char__struct_std::char_traits_char___class_std::allocator_char_____thiscall_std::basic_string_char__struct_std::char_traits_char___class_std::allocator_char__::begin_void_]
mov ecx, dword [eax]
mov eax, dword [eax + 4]
cmp eax, ebx
mov dword [esp + 0x18], ecx
je 0x45c13f
jmp 0x45c130
cmp byte [eax], 0x5c
jne 0x45c138
mov byte [eax], 0x2f
add eax, 1
cmp eax, ebx
jne 0x45c130
mov edx, dword [sym.imp.MSVCP80.dll_unsigned_int_const_std::basic_string_char__struct_std::char_traits_char___class_std::allocator_char__::npos]
mov ebx, dword [edx]
push 0x4f8954
lea ecx, [esp + 0x21c]
call dword [sym.imp.MSVCP80.dll_public:_void___thiscall_std::basic_string_char__struct_std::char_traits_char___class_std::allocator_char__::constructor_char_const__]
push ebp
lea eax, [esp + 0x21c]
push eax
lea ecx, [esp + 0x1cc]
mov byte [esp + 0x354], 5
call dword [sym.imp.MSVCP80.dll_public:_unsigned_int___thiscall_std::basic_string_char__struct_std::char_traits_char___class_std::allocator_char__::find_class_std::basic_string_char__struct_std::char_traits_char___class_std::allocator_char___const___unsigned_int_const]
mov ecx, dword [sym.imp.MSVCP80.dll_unsigned_int_const_std::basic_string_char__struct_std::char_traits_char___class_std::allocator_char__::npos]
cmp eax, dword [ecx]
je 0x45c193
mov edx, dword [esp + 0x22c]
mov dword [edi + 0x54], ebp
lea ebx, [edx + eax]
jmp 0x45c21c
push 0x4f8960
lea ecx, [esp + 0x174]
call dword [sym.imp.MSVCP80.dll_public:_void___thiscall_std::basic_string_char__struct_std::char_traits_char___class_std::allocator_char__::constructor_char_const__]
push ebp
lea eax, [esp + 0x174]
push eax
lea ecx, [esp + 0x1cc]
mov byte [esp + 0x354], 6
call dword [sym.imp.MSVCP80.dll_public:_unsigned_int___thiscall_std::basic_string_char__struct_std::char_traits_char___class_std::allocator_char__::find_class_std::basic_string_char__struct_std::char_traits_char___class_std::allocator_char___const___unsigned_int_const]
mov ecx, dword [sym.imp.MSVCP80.dll_unsigned_int_const_std::basic_string_char__struct_std::char_traits_char___class_std::allocator_char__::npos]
cmp eax, dword [ecx]
je 0x45c1e0
mov edx, dword [esp + 0x184]
mov dword [edi + 0x54], 1
lea ebx, [edx + eax]
jmp 0x45c207
push 0x4f896c
mov dword [0x53b820], 2
mov dword [0x53b824], 0x4f891c
call fcn.0045eb40
add esp, 4
mov dword [esi], 0x80004005
lea ecx, [esp + 0x170]
mov byte [esp + 0x34c], 5
call dword [sym.imp.MSVCP80.dll_public:_void___thiscall_std::basic_string_char__struct_std::char_traits_char___class_std::allocator_char__::destructor_void_]
cmp dword [esi], ebp
jl 0x45cac6
cmp ebx, dword [esp + 0x1d8]
sbb eax, eax
and eax, 0x7fffbffb
add eax, 0x80004005
mov dword [esi], eax
jns 0x45c261
push 0x4f89a4
mov dword [0x53b820], 1
mov dword [0x53b824], 0x4f891c
call fcn.0045eb40
add esp, 4
jmp 0x45cac6
lea eax, [edi + 0x74]
push eax
lea ebp, [edi + 0x58]
push ebp
lea ecx, [esp + 0x1cc]
call fcn.0045bb20
add esp, 8
test eax, eax
mov dword [esi], eax
jge 0x45c2a4
push 0x4f89b4
mov dword [0x53b820], 1
mov dword [0x53b824], 0x4f891c
call fcn.0045eb40
add esp, 4
jmp 0x45cac6
lea ecx, [esp + 0x170]
call dword [sym.imp.MSVCP80.dll_public:_void___thiscall_std::basic_string_char__struct_std::char_traits_char___class_std::allocator_char__::constructor_void_]
lea eax, [esp + 0x170]
mov byte [esp + 0x34c], 7
mov ecx, dword [edi + 0x74]
push eax
call fcn.0047dbe0
add esp, 4
cmp dword [edi + 0x54], 0
jne 0x45c4d1
lea esi, [esp + 0x1fc]
call fcn.004ab480
push 0x4db2a0
push eax
lea ecx, [esp + 0x1e8]
mov byte [esp + 0x354], 8
mov esi, dword [sym.imp.MSVCP80.dll_class_std::basic_string_char__struct_std::char_traits_char___class_std::allocator_char_____cdecl_std::operator_char__struct_std::char_traits_char___class_std::allocator_char___class_std::basic_string_char__struct_std::char_traits_char___class_std::allocator_char___const___char_const__]
push ecx
call esi
add esp, 0xc
push ebp
push eax
lea edx, [esp + 0x1b0]
mov byte [esp + 0x354], 9
mov ebx, dword [sym.imp.MSVCP80.dll_class_std::basic_string_char__struct_std::char_traits_char___class_std::allocator_char_____cdecl_std::operator_char__struct_std::char_traits_char___class_std::allocator_char___class_std::basic_string_char__struct_std::char_traits_char___class_std::allocator_char___const___class_std::basic_string_char__struct_std::char_traits_char___class_std::allocator_char___const__]
push edx
call ebx
add esp, 0xc
push 0x4db8b0
push eax
lea eax, [esp + 0x194]
push eax
mov byte [esp + 0x358], 0xa
call esi
add esp, 0xc
lea ecx, [esp + 0x170]
push ecx
push eax
lea edx, [esp + 0x15c]
push edx
mov byte [esp + 0x358], 0xb
call ebx
add esp, 0xc
lea ecx, [esp + 0x18c]
mov byte [esp + 0x34c], 0xd
call dword [sym.imp.MSVCP80.dll_public:_void___thiscall_std::basic_string_char__struct_std::char_traits_char___class_std::allocator_char__::destructor_void_]
lea ecx, [esp + 0x1a8]
mov byte [esp + 0x34c], 0xe
call dword [sym.imp.MSVCP80.dll_public:_void___thiscall_std::basic_string_char__struct_std::char_traits_char___class_std::allocator_char__::destructor_void_]
lea ecx, [esp + 0x1e0]
mov byte [esp + 0x34c], 0xf
call dword [sym.imp.MSVCP80.dll_public:_void___thiscall_std::basic_string_char__struct_std::char_traits_char___class_std::allocator_char__::destructor_void_]
mov ebx, 0x10
lea ecx, [esp + 0x1fc]
mov byte [esp + 0x34c], bl
call dword [sym.imp.MSVCP80.dll_public:_void___thiscall_std::basic_string_char__struct_std::char_traits_char___class_std::allocator_char__::destructor_void_]
push 0x4dc004
lea eax, [esp + 0x158]
push eax
lea ecx, [esp + 0x44]
push ecx
call esi
add esp, 0xc
push eax
mov ecx, edi
mov byte [esp + 0x350], 0x11
call dword [sym.imp.MSVCP80.dll_public:_class_std::basic_string_char__struct_std::char_traits_char___class_std::allocator_char______thiscall_std::basic_string_char__struct_std::char_traits_char___class_std::allocator_char__::operator_class_std::basic_string_char__struct_std::char_traits_char___class_std::allocator_char___const__]
lea ecx, [esp + 0x3c]
mov byte [esp + 0x34c], bl
call dword [sym.imp.MSVCP80.dll_public:_void___thiscall_std::basic_string_char__struct_std::char_traits_char___class_std::allocator_char__::destructor_void_]
push 0x4e2670
lea edx, [esp + 0x158]
push edx
lea eax, [esp + 0x140]
push eax
call esi
add esp, 0xc
push 0x30
mov byte [esp + 0x350], 0x12
call sub.MSVCR80.dll_void____cdecl_operator_new_unsigned_int_
add esp, 4
mov dword [esp + 0x14], eax
test eax, eax
mov byte [esp + 0x34c], 0x13
je 0x45c430
push eax
call fcn.004776c0
mov esi, eax
jmp 0x45c432
xor esi, esi
mov byte [esp + 0x34c], 0x12
push 0
lea edx, [esp + 0x13c]
mov ecx, esi
mov dword [esp + 0x18], esi
call fcn.004778d0
test eax, eax
mov ecx, dword [esp + 0x20]
mov dword [ecx], eax
jge 0x45c4ad
cmp dword [esp + 0x150], ebx
mov eax, dword [esp + 0x13c]
mov dword [0x53b820], 1
mov dword [0x53b824], 0x4f891c
jae 0x45c483
lea eax, [esp + 0x13c]
push eax
push 0x4f89dc
call fcn.0045eb40
add esp, 8
test esi, esi
je 0x45c4be
call fcn.00407d50
mov byte [esp + 0x34c], bl
lea ecx, [esp + 0x138]
jmp 0x45ca96
lea ebx, [esp + 0x14]
lea esi, [edi + 0x1c]
call fcn.00409510
mov ebx, 0x10
mov byte [esp + 0x34c], bl
lea ecx, [esp + 0x138]
jmp 0x45ca96
lea esi, [esp + 0x74]
call fcn.004ab480
push 0x4db8bc
push eax
lea edx, [esp + 0xec]
mov byte [esp + 0x354], 0x14
mov ebp, dword [sym.imp.MSVCP80.dll_class_std::basic_string_char__struct_std::char_traits_char___class_std::allocator_char_____cdecl_std::operator_char__struct_std::char_traits_char___class_std::allocator_char___class_std::basic_string_char__struct_std::char_traits_char___class_std::allocator_char___const___char_const__]
push edx
call ebp
add esp, 0xc
lea ecx, [edi + 0x58]
push ecx
push eax
lea eax, [esp + 0x60]
mov byte [esp + 0x354], 0x15
mov esi, dword [sym.imp.MSVCP80.dll_class_std::basic_string_char__struct_std::char_traits_char___class_std::allocator_char_____cdecl_std::operator_char__struct_std::char_traits_char___class_std::allocator_char___class_std::basic_string_char__struct_std::char_traits_char___class_std::allocator_char___const___class_std::basic_string_char__struct_std::char_traits_char___class_std::allocator_char___const__]
push eax
call esi
add esp, 0xc
push 0x4db8b0
push eax
lea ecx, [esp + 0x44]
push ecx
mov byte [esp + 0x358], 0x16
call ebp
add esp, 0xc
lea edx, [esp + 0x170]
push edx
push eax
lea eax, [esp + 0x15c]
push eax
mov byte [esp + 0x358], 0x17
call esi
add esp, 0xc
lea ecx, [esp + 0x3c]
mov byte [esp + 0x34c], 0x19
call dword [sym.imp.MSVCP80.dll_public:_void___thiscall_std::basic_string_char__struct_std::char_traits_char___class_std::allocator_char__::destructor_void_]
lea ecx, [esp + 0x58]
mov byte [esp + 0x34c], 0x1a
call dword [sym.imp.MSVCP80.dll_public:_void___thiscall_std::basic_string_char__struct_std::char_traits_char___class_std::allocator_char__::destructor_void_]
lea ecx, [esp + 0xe4]
mov byte [esp + 0x34c], 0x1b
call dword [sym.imp.MSVCP80.dll_public:_void___thiscall_std::basic_string_char__struct_std::char_traits_char___class_std::allocator_char__::destructor_void_]
mov bl, 0x1c
lea ecx, [esp + 0x74]
mov byte [esp + 0x34c], bl
call dword [sym.imp.MSVCP80.dll_public:_void___thiscall_std::basic_string_char__struct_std::char_traits_char___class_std::allocator_char__::destructor_void_]
push 0x4dc004
lea ecx, [esp + 0x158]
push ecx
lea edx, [esp + 0x194]
push edx
call ebp
add esp, 0xc
push eax
mov ecx, edi
mov byte [esp + 0x350], 0x1d
call dword [sym.imp.MSVCP80.dll_public:_class_std::basic_string_char__struct_std::char_traits_char___class_std::allocator_char______thiscall_std::basic_string_char__struct_std::char_traits_char___class_std::allocator_char__::operator_class_std::basic_string_char__struct_std::char_traits_char___class_std::allocator_char___const__]
lea ecx, [esp + 0x18c]
mov byte [esp + 0x34c], bl
call dword [sym.imp.MSVCP80.dll_public:_void___thiscall_std::basic_string_char__struct_std::char_traits_char___class_std::allocator_char__::destructor_void_]
push 0x4dc078
lea eax, [esp + 0x158]
push eax
lea ecx, [esp + 0x1b0]
push ecx
call ebp
add esp, 0xc
mov bl, 0x1e
mov byte [esp + 0x34c], bl
push 0x40
call sub.MSVCR80.dll_void____cdecl_operator_new_unsigned_int_
add esp, 4
mov dword [esp + 0x14], eax
test eax, eax
mov byte [esp + 0x34c], 0x1f
je 0x45c622
push eax
call fcn.004786c0
mov dword [esp + 0x14], eax
jmp 0x45c62a
mov dword [esp + 0x14], 0
lea edx, [esp + 0x1a8]
mov byte [esp + 0x34c], bl
mov ebx, dword [esp + 0x14]
push edx
call fcn.00479100
test eax, eax
mov esi, dword [esp + 0x20]
mov dword [esi], eax
jge 0x45c6a6
cmp dword [esp + 0x1c0], 0x10
mov eax, dword [esp + 0x1ac]
mov dword [0x53b820], 1
mov dword [0x53b824], 0x4f891c
jae 0x45c678
lea eax, [esp + 0x1ac]
push eax
push 0x4f8a04
call fcn.0045eb40
mov esi, dword [esp + 0x1c]
add esp, 8
test esi, esi
je 0x45ca87
push esi
call fcn.00478520
push esi
call sub.MSVCR80.dll_void___cdecl_operator_delete_void__
add esp, 4
jmp 0x45ca87
push 0x4dc974
lea eax, [esp + 0x158]
push eax
lea ecx, [esp + 0x1e8]
push ecx
call ebp
add esp, 0xc
push 0x2c
mov byte [esp + 0x350], 0x20
call sub.MSVCR80.dll_void____cdecl_operator_new_unsigned_int_
add esp, 4
mov dword [esp + 0x34], eax
test eax, eax
mov byte [esp + 0x34c], 0x21
je 0x45c6ec
push eax
call 0x49c690
mov ebx, eax
jmp 0x45c6ee
xor ebx, ebx
lea edx, [esp + 0x1e0]
mov ecx, ebx
mov byte [esp + 0x34c], 0x20
call fcn.0049c6e0
xor ecx, ecx
cmp eax, ecx
mov dword [esi], eax
jge 0x45c762
cmp dword [esp + 0x1f8], 0x10
mov eax, dword [esp + 0x1e4]
mov dword [0x53b820], 1
mov dword [0x53b824], 0x4f891c
jae 0x45c738
lea eax, [esp + 0x1e4]
push eax
push 0x4f8a2c
call fcn.0045eb40
add esp, 8
test ebx, ebx
je 0x45ca72
push ebx
call fcn.0049c580
push ebx
call sub.MSVCR80.dll_void___cdecl_operator_delete_void__
add esp, 4
jmp 0x45ca72
mov dword [esp + 0x13c], ecx
mov dword [esp + 0x140], ecx
mov dword [esp + 0x144], ecx
mov byte [esp + 0x34c], 0x22
mov eax, dword [esp + 0x14]
lea ecx, [esp + 0x138]
mov edx, ebx
call fcn.004b9640
test eax, eax
mov dword [esi], eax
jge 0x45c7bd
push 0x4e4924
mov dword [0x53b820], 1
mov dword [0x53b824], 0x4f891c
call fcn.0045eb40
add esp, 4
jmp 0x45ca5e
lea esi, [esp + 0x2c]
lea edi, [esp + 0x138]
call fcn.00409e00
lea esi, [esp + 0x18]
mov ebx, eax
call fcn.00409d70
mov edx, dword [ebx + 4]
mov ecx, dword [ebx]
push edx
mov edx, dword [eax + 4]
mov eax, dword [eax]
push ecx
push edx
push eax
call fcn.0040b470
add esp, 0x10
lea esi, [esp + 0x18]
call fcn.00409e00
mov ecx, dword [eax]
mov edx, dword [eax + 4]
lea esi, [esp + 0x34]
mov dword [esp + 0x2c], ecx
mov dword [esp + 0x30], edx
call fcn.00409d70
mov ecx, dword [eax]
mov edx, dword [eax + 4]
lea esi, [esp + 0x2c]
lea edi, [esp + 0x18]
mov dword [esp + 0x18], ecx
mov dword [esp + 0x1c], edx
call fcn.004545a0
test al, al
je 0x45ca5a
nop
mov eax, dword [esp + 0x20]
cmp dword [eax], 0
jl 0x45ca5a
lea esi, [esp + 0x18]
call fcn.00409ed0
lea ecx, [esp + 0x18c]
mov edi, eax
call dword [sym.imp.MSVCP80.dll_public:_void___thiscall_std::basic_string_char__struct_std::char_traits_char___class_std::allocator_char__::constructor_void_]
lea ecx, [esp + 0x18c]
mov byte [esp + 0x34c], 0x23
push ecx
mov ecx, dword [edi + 0x1c]
call fcn.0047dbe0
add esp, 4
lea esi, [esp + 0xac]
call fcn.004ab480
push 0x4db2a0
push eax
lea edx, [esp + 0x108]
push edx
mov byte [esp + 0x358], 0x24
call ebp
add esp, 0xc
push edi
push eax
lea eax, [esp + 0x124]
mov byte [esp + 0x354], 0x25
mov esi, dword [sym.imp.MSVCP80.dll_class_std::basic_string_char__struct_std::char_traits_char___class_std::allocator_char_____cdecl_std::operator_char__struct_std::char_traits_char___class_std::allocator_char___class_std::basic_string_char__struct_std::char_traits_char___class_std::allocator_char___const___class_std::basic_string_char__struct_std::char_traits_char___class_std::allocator_char___const__]
push eax
call esi
add esp, 0xc
push 0x4db8b0
push eax
lea ecx, [esp + 0xd0]
push ecx
mov byte [esp + 0x358], 0x26
call ebp
add esp, 0xc
lea edx, [esp + 0x18c]
push edx
push eax
lea eax, [esp + 0x98]
push eax
mov byte [esp + 0x358], 0x27
call esi
add esp, 0xc
push 0x4e2670
push eax
lea ecx, [esp + 0x204]
push ecx
mov byte [esp + 0x358], 0x28
call ebp
add esp, 0xc
lea ecx, [esp + 0x90]
mov byte [esp + 0x34c], 0x2a
call dword [sym.imp.MSVCP80.dll_public:_void___thiscall_std::basic_string_char__struct_std::char_traits_char___class_std::allocator_char__::destructor_void_]
lea ecx, [esp + 0xc8]
mov byte [esp + 0x34c], 0x2b
call dword [sym.imp.MSVCP80.dll_public:_void___thiscall_std::basic_string_char__struct_std::char_traits_char___class_std::allocator_char__::destructor_void_]
lea ecx, [esp + 0x11c]
mov byte [esp + 0x34c], 0x2c
call dword [sym.imp.MSVCP80.dll_public:_void___thiscall_std::basic_string_char__struct_std::char_traits_char___class_std::allocator_char__::destructor_void_]
lea ecx, [esp + 0x100]
mov byte [esp + 0x34c], 0x2d
call dword [sym.imp.MSVCP80.dll_public:_void___thiscall_std::basic_string_char__struct_std::char_traits_char___class_std::allocator_char__::destructor_void_]
mov bl, 0x2e
lea ecx, [esp + 0xac]
mov byte [esp + 0x34c], bl
call dword [sym.imp.MSVCP80.dll_public:_void___thiscall_std::basic_string_char__struct_std::char_traits_char___class_std::allocator_char__::destructor_void_]
push 0x30
call sub.MSVCR80.dll_void____cdecl_operator_new_unsigned_int_
add esp, 4
mov dword [esp + 0x34], eax
test eax, eax
mov byte [esp + 0x34c], 0x2f
je 0x45c996
push eax
call fcn.004776c0
mov esi, eax
jmp 0x45c998
xor esi, esi
mov byte [esp + 0x34c], bl
push 0
lea edx, [esp + 0x200]
mov ecx, esi
mov dword [esp + 0x18], esi
call fcn.004778d0
test eax, eax
mov edx, dword [esp + 0x20]
mov dword [edx], eax
jge 0x45ca02
cmp dword [esp + 0x214], 0x10
mov eax, dword [esp + 0x200]
mov dword [0x53b820], 1
mov dword [0x53b824], 0x4f891c
jae 0x45c9e9
lea eax, [esp + 0x200]
push eax
push 0x4dc98c
call fcn.0045eb40
add esp, 8
test esi, esi
je 0x45ca12
call fcn.00407d50
jmp 0x45ca12
mov esi, dword [esp + 0x28]
lea ebx, [esp + 0x14]
add esi, 0x1c
call fcn.00409510
lea ecx, [esp + 0x1fc]
mov byte [esp + 0x34c], 0x23
call dword [sym.imp.MSVCP80.dll_public:_void___thiscall_std::basic_string_char__struct_std::char_traits_char___class_std::allocator_char__::destructor_void_]
lea ecx, [esp + 0x18c]
mov byte [esp + 0x34c], 0x22
call dword [sym.imp.MSVCP80.dll_public:_void___thiscall_std::basic_string_char__struct_std::char_traits_char___class_std::allocator_char__::destructor_void_]
lea esi, [esp + 0x18]
call fcn.00405fe0
lea esi, [esp + 0x2c]
lea edi, [esp + 0x18]
call fcn.004545a0
test al, al
jne 0x45c830
mov edi, dword [esp + 0x28]
lea ebx, [esp + 0x138]
mov byte [esp + 0x34c], 0x20
call fcn.00406060
lea ecx, [esp + 0x1e0]
mov byte [esp + 0x34c], 0x1e
call dword [sym.imp.MSVCP80.dll_public:_void___thiscall_std::basic_string_char__struct_std::char_traits_char___class_std::allocator_char__::destructor_void_]
mov byte [esp + 0x34c], 0x1c
lea ecx, [esp + 0x1a8]
call dword [sym.imp.MSVCP80.dll_public:_void___thiscall_std::basic_string_char__struct_std::char_traits_char___class_std::allocator_char__::destructor_void_]
lea ecx, [esp + 0x154]
mov byte [esp + 0x34c], 7
call dword [sym.imp.MSVCP80.dll_public:_void___thiscall_std::basic_string_char__struct_std::char_traits_char___class_std::allocator_char__::destructor_void_]
lea ecx, [esp + 0x170]
mov byte [esp + 0x34c], 5
call dword [sym.imp.MSVCP80.dll_public:_void___thiscall_std::basic_string_char__struct_std::char_traits_char___class_std::allocator_char__::destructor_void_]
lea ecx, [esp + 0x218]
mov byte [esp + 0x34c], 4
call dword [sym.imp.MSVCP80.dll_public:_void___thiscall_std::basic_string_char__struct_std::char_traits_char___class_std::allocator_char__::destructor_void_]
lea ecx, [esp + 0x1c4]
mov byte [esp + 0x34c], 3
call dword [sym.imp.MSVCP80.dll_public:_void___thiscall_std::basic_string_char__struct_std::char_traits_char___class_std::allocator_char__::destructor_void_]
mov ecx, edi
call fcn.0045be20
mov eax, edi
mov ecx, dword [esp + 0x344]
mov dword fs:[0], ecx
pop ecx
pop edi
pop esi
pop ebp
pop ebx
mov ecx, dword [esp + 0x328]
xor ecx, esp
call fcn.00459ea4
add esp, 0x33c
ret 4