Function at 0x4466e0
Capabilities:
Resolve function by parsing pe exports

Disassembly:
push 0xffffffffffffffff
push 0x46d52d
mov eax, dword fs:[0]
push eax
sub esp, 0x148
mov eax, dword [0x490018]
xor eax, esp
mov dword [esp + 0x144], eax
push ebx
push ebp
push edi
mov eax, dword [0x490018]
xor eax, esp
push eax
lea eax, [esp + 0x158]
mov dword fs:[0], eax
xor ebx, ebx
mov dword [esp + 0x10], ebx
mov ecx, dword [esi + 0xb4]
sub ecx, dword [esi + 0xb0]
mov eax, 0x92492493
imul ecx
add edx, ecx
sar edx, 5
mov edi, edx
shr edi, 0x1f
add edi, edx
cmp dword [esi + 0x1dc], 1
jle 0x4467fa
mov eax, dword [sym.imp.MSVCP90.dll_unsigned_int_const_std::basic_string_wchar_t__struct_std::char_traits_wchar_t___class_std::allocator_wchar_t__::npos]
mov ecx, dword [eax]
push ecx
lea ebp, [esi + 4]
push 0x5c
mov ecx, ebp
call dword [sym.imp.MSVCP90.dll_public:_unsigned_int___thiscall_std::basic_string_wchar_t__struct_std::char_traits_wchar_t___class_std::allocator_wchar_t__::rfind_wchar_t__unsigned_int_const]
mov edx, dword [sym.imp.MSVCP90.dll_unsigned_int_const_std::basic_string_wchar_t__struct_std::char_traits_wchar_t___class_std::allocator_wchar_t__::npos]
mov dword [esp + 0x18], eax
mov eax, dword [edx]
push eax
push 0x2e
mov ecx, ebp
call dword [sym.imp.MSVCP90.dll_public:_unsigned_int___thiscall_std::basic_string_wchar_t__struct_std::char_traits_wchar_t___class_std::allocator_wchar_t__::rfind_wchar_t__unsigned_int_const]
cmp eax, dword [esp + 0x18]
jbe 0x4467fa
cmp eax, 0xffffffff
je 0x4467fa
push eax
push ebx
lea ecx, [esp + 0x28]
push ecx
mov ecx, ebp
call dword [sym.imp.MSVCP90.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__::substr_unsigned_int__unsigned_int_]
mov dword [esp + 0x160], ebx
mov edx, dword [sym.imp.MSVCP90.dll_unsigned_int_const_std::basic_string_wchar_t__struct_std::char_traits_wchar_t___class_std::allocator_wchar_t__::npos]
mov ecx, dword [edx]
push ecx
lea edx, [esp + 0x78]
push edx
mov ecx, eax
call fcn.0041c180
lea eax, [esp + 0x74]
push eax
mov ecx, ebp
mov byte [esp + 0x164], 1
call dword [sym.imp.MSVCP90.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 edx, [esp + 0x90]
lea ecx, [ebp + 0x1c]
push edx
call dword [sym.imp.MSVCP90.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, [esp + 0x74]
push eax
mov byte [esp + 0x164], bl
call fcn.004063d0
lea ecx, [esp + 0x20]
mov dword [esp + 0x160], 0xffffffff
call dword [sym.imp.MSVCP90.dll_public:_void___thiscall_std::basic_string_wchar_t__struct_std::char_traits_wchar_t___class_std::allocator_wchar_t__::destructor_void_]
lea eax, [esi + 0x168]
push eax
lea ecx, [esp + 0xb0]
push ecx
call fcn.00406030
mov dword [esp + 0x160], 2
test edi, edi
je 0x446849
mov ebp, dword [esi + 0xb0]
mov ecx, dword [esi + 0xb4]
sub ecx, ebp
mov eax, 0x92492493
imul ecx
add edx, ecx
sar edx, 5
mov eax, edx
shr eax, 0x1f
add eax, edx
jne 0x446845
call fcn.00404900
mov eax, ebp
jmp 0x446869
push 0x47bbcc
lea ecx, [esp + 0x40]
push ecx
call fcn.00406360
mov ebx, 1
mov byte [esp + 0x160], 3
mov dword [esp + 0x10], ebx
push eax
lea edx, [esi + 4]
push edx
lea eax, [esp + 0x28]
push eax
call dword [sym.imp.MSVCP90.dll_class_std::basic_string_wchar_t__struct_std::char_traits_wchar_t___class_std::allocator_wchar_t_____cdecl_std::operator_wchar_t__struct_std::char_traits_wchar_t___class_std::allocator_wchar_t___class_std::basic_string_wchar_t__struct_std::char_traits_wchar_t___class_std::allocator_wchar_t___const___class_std::basic_string_wchar_t__struct_std::char_traits_wchar_t___class_std::allocator_wchar_t___const__]
add esp, 0xc
mov dword [esp + 0x160], 4
mov ecx, dword [sym.imp.MSVCP90.dll_unsigned_int_const_std::basic_string_wchar_t__struct_std::char_traits_wchar_t___class_std::allocator_wchar_t__::npos]
mov edx, dword [ecx]
push edx
lea ecx, [esp + 0xe8]
push ecx
mov ecx, eax
call fcn.0041c180
lea ecx, [esp + 0x20]
mov byte [esp + 0x160], 6
call dword [sym.imp.MSVCP90.dll_public:_void___thiscall_std::basic_string_wchar_t__struct_std::char_traits_wchar_t___class_std::allocator_wchar_t__::destructor_void_]
mov byte [esp + 0x160], 7
test bl, 1
je 0x4468cf
lea edx, [esp + 0x3c]
and ebx, 0xfffffffe
push edx
mov dword [esp + 0x14], ebx
call fcn.004063d0
cmp edi, 2
jb 0x446904
mov edi, dword [esi + 0xb0]
mov ecx, dword [esi + 0xb4]
sub ecx, edi
mov eax, 0x92492493
imul ecx
add edx, ecx
sar edx, 5
mov eax, edx
shr eax, 0x1f
add eax, edx
cmp eax, 1
ja 0x4468ff
call fcn.00404900
lea eax, [edi + 0x38]
jmp 0x44691e
push 0x47bbd0
lea ecx, [esp + 0x78]
push ecx
call fcn.00406360
mov byte [esp + 0x160], 8
or ebx, 2
push eax
lea edx, [esp + 0x120]
push edx
call fcn.00406030
mov dword [esp + 0x160], 0xa
test bl, 2
je 0x446946
lea eax, [esp + 0x74]
push eax
call fcn.004063d0
mov ecx, dword [sym.imp.MSVCP90.dll_unsigned_int_const_std::basic_string_wchar_t__struct_std::char_traits_wchar_t___class_std::allocator_wchar_t__::npos]
mov edx, dword [ecx]
push edx
lea eax, [esp + 0xe8]
push eax
lea ecx, [esp + 0xb4]
call dword [sym.imp.MSVCP90.dll_public:_unsigned_int___thiscall_std::basic_string_wchar_t__struct_std::char_traits_wchar_t___class_std::allocator_wchar_t__::rfind_class_std::basic_string_wchar_t__struct_std::char_traits_wchar_t___class_std::allocator_wchar_t___const___unsigned_int_const]
mov edi, eax
or eax, 0xffffffff
cmp dword [esi + 0x1dc], 1
jle 0x446990
mov ecx, dword [sym.imp.MSVCP90.dll_unsigned_int_const_std::basic_string_wchar_t__struct_std::char_traits_wchar_t___class_std::allocator_wchar_t__::npos]
mov edx, dword [ecx]
push edx
lea eax, [esp + 0x120]
push eax
lea ecx, [esp + 0xb4]
call dword [sym.imp.MSVCP90.dll_public:_unsigned_int___thiscall_std::basic_string_wchar_t__struct_std::char_traits_wchar_t___class_std::allocator_wchar_t__::rfind_class_std::basic_string_wchar_t__struct_std::char_traits_wchar_t___class_std::allocator_wchar_t___const___unsigned_int_const]
cmp edi, 0xffffffff
je 0x446ad3
add edi, dword [esp + 0xf8]
lea ecx, [esp + 0x20]
sub eax, edi
push eax
push edi
push ecx
lea ecx, [esi + 0x168]
call dword [sym.imp.MSVCP90.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__::substr_unsigned_int__unsigned_int_]
mov bl, 0xb
mov byte [esp + 0x160], bl
mov edx, dword [sym.imp.MSVCP90.dll_unsigned_int_const_std::basic_string_wchar_t__struct_std::char_traits_wchar_t___class_std::allocator_wchar_t__::npos]
mov ecx, dword [edx]
push ecx
lea edx, [esp + 0x40]
push edx
mov ecx, eax
call fcn.0041c180
lea eax, [esp + 0x3c]
push eax
lea ecx, [esp + 0xb0]
mov byte [esp + 0x164], 0xc
call dword [sym.imp.MSVCP90.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, [esp + 0x58]
push ecx
lea ecx, [esp + 0xcc]
call dword [sym.imp.MSVCP90.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 edx, [esp + 0x3c]
push edx
mov byte [esp + 0x164], bl
call fcn.004063d0
lea ecx, [esp + 0x20]
mov byte [esp + 0x160], 0xa
call dword [sym.imp.MSVCP90.dll_public:_void___thiscall_std::basic_string_wchar_t__struct_std::char_traits_wchar_t___class_std::allocator_wchar_t__::destructor_void_]
lea eax, [esp + 0x74]
push eax
xor ebx, ebx
call fcn.00406430
lea ecx, [esp + 0x18]
push ecx
lea ecx, [esp + 0xb0]
mov byte [esp + 0x164], 0xd
call dword [sym.imp.MSVCP90.dll_public:_class_std::_String_iterator_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__::begin_void_]
mov edx, dword [eax]
mov edi, dword [eax + 4]
mov dword [esp + 0x10], edx
lea eax, [esp + 0x10]
push eax
lea ecx, [esp + 0xb0]
call dword [sym.imp.MSVCP90.dll_public:_class_std::_String_iterator_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__::end_void_]
cmp edi, dword [eax + 4]
je 0x446a8c
movzx ebp, word [edi]
push ebp
call dword [sym.imp.MSVCR90.dll_iswdigit]
add esp, 4
test eax, eax
je 0x446a87
push ebp
push 1
lea ecx, [esp + 0x7c]
inc ebx
call dword [sym.imp.MSVCP90.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__::append_unsigned_int__wchar_t_]
add edi, 2
jmp 0x446a51
test ebx, ebx
je 0x446ac1
cmp dword [esp + 0x8c], 8
mov eax, dword [esp + 0x78]
mov dword [esi + 0x100], ebx
jae 0x446aa8
lea eax, [esp + 0x78]
push eax
call dword [sym.imp.MSVCR90.dll__wtoi]
add esp, 4
cmp dword [esi + 0xf8], eax
ja 0x446ac1
inc eax
mov dword [esi + 0xfc], eax
lea ecx, [esp + 0x74]
push ecx
mov byte [esp + 0x164], 0xa
call fcn.004063d0
lea edx, [esp + 0x11c]
push edx
mov byte [esp + 0x164], 7
call fcn.004063d0
lea eax, [esp + 0xe4]
push eax
mov byte [esp + 0x164], 2
call fcn.004063d0
lea ecx, [esp + 0xac]
push ecx
mov dword [esp + 0x164], 0xffffffff
call fcn.004063d0
mov ecx, dword [esp + 0x158]
mov dword fs:[0], ecx
pop ecx
pop edi
pop ebp
pop ebx
mov ecx, dword [esp + 0x144]
xor ecx, esp
call fcn.00428cb4
add esp, 0x154
ret