Function at 0x445e70
Capabilities:
Access peb ldr_data

Disassembly:
mov eax, dword fs:[0]
push 0xffffffffffffffff
push 0x5417da
push eax
mov dword fs:[0], esp
sub esp, 0x20
push edi
mov edi, dword [esp + 0x34]
test edi, edi
je 0x445ff5
mov eax, edi
lea edx, [eax + 1]
lea ebx, [ebx]
mov cl, byte [eax]
inc eax
test cl, cl
jne 0x445ea0
sub eax, edx
mov dword [esp + 0x34], eax
je 0x445ff5
push esi
lea ecx, [esp + 0xc]
call dword [sym.imp.MSVCP71.dll_public:_void___thiscall_std::basic_string_char__struct_std::char_traits_char___class_std::allocator_char__::constructor_void_]
mov dword [esp + 0x30], 0
call fcn.00466b00
push eax
lea ecx, [esp + 0x10]
call dword [sym.imp.MSVCP71.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_char_const__]
push edi
lea ecx, [esp + 0x10]
call dword [0x5d0508]
push 0
push 1
push edi
lea ecx, [esp + 0x18]
call dword [sym.imp.MSVCP71.dll_public:_char_const____thiscall_std::basic_string_char__struct_std::char_traits_char___class_std::allocator_char__::c_str_void_const]
push eax
mov ecx, 0x298eff0
call dword [sym.imp.MSVCP71.dll_public:_char_const____thiscall_std::basic_string_char__struct_std::char_traits_char___class_std::allocator_char__::c_str_void_const]
push eax
mov eax, dword [0x298ef24]
push eax
call fcn.00466c30
mov esi, eax
add esp, 0x18
mov dword [esp + 8], esi
test esi, esi
mov byte [esp + 0x30], 1
jne 0x445f4d
push edi
push str.ERROR_:_GLCONST_CHAR::EXP_PC_LOADFILE_____s
call fcn.00463a70
add esp, 8
lea ecx, [esp + 0xc]
mov dword [esp + 0x30], 0xffffffff
call dword [sym.imp.MSVCP71.dll_public:_void___thiscall_std::basic_string_char__struct_std::char_traits_char___class_std::allocator_char__::destructor_void_]
pop esi
xor eax, eax
pop edi
mov ecx, dword [esp + 0x20]
mov dword fs:[0], ecx
add esp, 0x2c
ret
lea ecx, [esp + 0x38]
xor edi, edi
call dword [sym.imp.MFC71.DLL_ATL::CStringT::CStringT_2]
mov edx, dword [esi]
lea eax, [esp + 0x38]
push eax
mov ecx, esi
mov byte [esp + 0x34], 2
call dword [edx + 0xc]
test eax, eax
je 0x445fb6
push ebp
mov ebp, dword [sym.imp.MSVCR71.dll_atoi]
lea ecx, [esp + 0x3c]
call dword [sym.imp.MFC71.DLL_ATL::CSimpleStringT::GetString]
push eax
call ebp
add esp, 4
cmp edi, 0x12c
jge 0x445fa7
mov dword [edi*4 + 0x726640], eax
mov edx, dword [esi]
lea eax, [esp + 0x3c]
push eax
mov ecx, esi
inc edi
call dword [edx + 0xc]
test eax, eax
jne 0x445f75
jmp 0x445fb5
push edi
push str.ERROR_:_GLCONST_CHAR::EXP_PC_LOADFILE____too_long_array__d
call fcn.00463a70
add esp, 8
pop ebp
lea ecx, [esp + 0x38]
call dword [sym.imp.MFC71.DLL_ATL::CStringT::CStringT]
mov edx, dword [esi]
push 1
mov ecx, esi
mov byte [esp + 0x34], 0
call dword [edx]
lea ecx, [esp + 0xc]
mov dword [esp + 0x30], 0xffffffff
call dword [sym.imp.MSVCP71.dll_public:_void___thiscall_std::basic_string_char__struct_std::char_traits_char___class_std::allocator_char__::destructor_void_]
pop esi
mov eax, 1
pop edi
mov ecx, dword [esp + 0x20]
mov dword fs:[0], ecx
add esp, 0x2c
ret
push edi
push str.ERROR_:_GLCONST_CHAR::EXP_PC_LOADFILE_____s
call fcn.00463a70
mov ecx, dword [esp + 0x2c]
add esp, 8
xor eax, eax
pop edi
mov dword fs:[0], ecx
add esp, 0x2c
ret