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

Disassembly:
push 0xffffffffffffffff
push 0x1000735d
mov eax, dword fs:[0]
push eax
mov dword fs:[0], esp
sub esp, 0x58
mov al, byte [esp + 0x6c]
push ebx
push ebp
xor ebx, ebx
mov ebp, ecx
push esi
cmp al, bl
push edi
mov dword [esp + 0x10], ebp
jne 0x10002771
call fcn.10003190
mov dword [esp + 0x7c], ebx
mov al, byte [esp + 0x7c]
push ebx
lea ecx, [esp + 0x1c]
mov byte [esp + 0x1c], al
call dword [sym.imp.MSVCP60.dll_private:_void___thiscall_std::basic_string_char__struct_std::char_traits_char___class_std::allocator_char__::_Tidy_bool_]
mov dword [esp + 0x70], ebx
mov edx, dword [esp + 0x78]
lea ecx, [esp + 0x18]
push ecx
push edx
call sub.MSVCP60.dll_class_std::basic_istream_char__struct_std::char_traits_char______cdecl_std::getline_class_std::basic_istream_char__struct_std::char_traits_char_____class_std::basic_string_char__struct_std::char_traits_char___class_std::allocator_char____
add esp, 8
cmp eax, ebx
jne 0x100027a6
xor ecx, ecx
jmp 0x100027ad
mov ecx, dword [eax]
mov ecx, dword [ecx + 4]
add ecx, eax
mov edx, dword [ecx + 4]
and dl, 6
neg dl
sbb edx, edx
not edx
test ecx, edx
je 0x10002b0e
mov al, byte [esp + 0x7c]
push ebx
lea ecx, [esp + 0x4c]
mov byte [esp + 0x4c], al
call dword [sym.imp.MSVCP60.dll_private:_void___thiscall_std::basic_string_char__struct_std::char_traits_char___class_std::allocator_char__::_Tidy_bool_]
mov edi, 0x1000b904
or ecx, 0xffffffff
xor eax, eax
repne scasb al, byte es:[edi]
not ecx
dec ecx
push ecx
push 0x1000b904
lea ecx, [esp + 0x50]
call dword [sym.imp.MSVCP60.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__::assign_char_const___unsigned_int_]
lea ecx, [esp + 0x48]
lea edx, [esp + 0x18]
push ecx
push edx
mov byte [esp + 0x78], 1
call fcn.10002100
add esp, 8
lea ecx, [esp + 0x48]
mov byte [esp + 0x70], bl
push 1
call dword [sym.imp.MSVCP60.dll_private:_void___thiscall_std::basic_string_char__struct_std::char_traits_char___class_std::allocator_char__::_Tidy_bool_]
mov al, byte [esp + 0x7c]
push ebx
lea ecx, [esp + 0x5c]
mov byte [esp + 0x5c], al
call dword [sym.imp.MSVCP60.dll_private:_void___thiscall_std::basic_string_char__struct_std::char_traits_char___class_std::allocator_char__::_Tidy_bool_]
mov edi, 0x1000b900
or ecx, 0xffffffff
xor eax, eax
repne scasb al, byte es:[edi]
not ecx
dec ecx
push ecx
push 0x1000b900
lea ecx, [esp + 0x60]
call dword [sym.imp.MSVCP60.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__::assign_char_const___unsigned_int_]
lea ecx, [esp + 0x58]
lea edx, [esp + 0x18]
push ecx
push edx
mov byte [esp + 0x78], 2
call fcn.10001f70
add esp, 8
lea ecx, [esp + 0x58]
mov byte [esp + 0x70], bl
push 1
call dword [sym.imp.MSVCP60.dll_private:_void___thiscall_std::basic_string_char__struct_std::char_traits_char___class_std::allocator_char__::_Tidy_bool_]
cmp dword [esp + 0x20], ebx
je 0x1000278c
mov edi, 0x1000b8f0
or ecx, 0xffffffff
xor eax, eax
repne scasb al, byte es:[edi]
not ecx
dec ecx
push ecx
push ebx
push 0x1000b8f0
lea ecx, [esp + 0x24]
call dword [sym.imp.MSVCP60.dll_public:_unsigned_int___thiscall_std::basic_string_char__struct_std::char_traits_char___class_std::allocator_char__::find_first_of_char_const___unsigned_int__unsigned_int_const]
cmp eax, ebx
jne 0x100028ff
mov eax, dword [sym.imp.MSVCP60.dll_unsigned_int_const_std::basic_string_char__struct_std::char_traits_char___class_std::allocator_char__::npos]
mov edi, 0x1000b8f8
or ecx, 0xffffffff
mov edx, dword [eax]
xor eax, eax
repne scasb al, byte es:[edi]
not ecx
dec ecx
push ecx
push edx
push 0x1000b8f8
lea ecx, [esp + 0x24]
call dword [sym.imp.MSVCP60.dll_public:_unsigned_int___thiscall_std::basic_string_char__struct_std::char_traits_char___class_std::allocator_char__::find_last_not_of_char_const___unsigned_int__unsigned_int_const]
mov esi, eax
mov eax, dword [esp + 0x20]
cmp eax, esi
jb 0x100028eb
cmp dword [esp + 0x1c], ebx
je 0x100028eb
lea ecx, [esp + 0x18]
call dword [sym.imp.MSVCP60.dll_private:_void___thiscall_std::basic_string_char__struct_std::char_traits_char___class_std::allocator_char__::_Freeze_void_]
mov ecx, dword [esp + 0x1c]
lea eax, [ecx + esi]
jmp 0x100028f0
mov eax, dword [sym.imp.MSVCP60.dll_char_const__private:_static_char_const____cdecl_std::basic_string_char__struct_std::char_traits_char___class_std::allocator_char__::_Nullstr_void_::_2::_C]
cmp byte [eax], 0x5d
jne 0x100028ff
mov esi, 1
jmp 0x1000297f
mov edi, 0x1000b8ec
or ecx, 0xffffffff
xor eax, eax
mov esi, 3
repne scasb al, byte es:[edi]
not ecx
dec ecx
push ecx
push ebx
push 0x1000b8ec
lea ecx, [esp + 0x24]
call dword [sym.imp.MSVCP60.dll_public:_unsigned_int___thiscall_std::basic_string_char__struct_std::char_traits_char___class_std::allocator_char__::find_first_of_char_const___unsigned_int__unsigned_int_const]
mov edx, dword [sym.imp.MSVCP60.dll_unsigned_int_const_std::basic_string_char__struct_std::char_traits_char___class_std::allocator_char__::npos]
cmp eax, dword [edx]
je 0x10002956
mov edi, 0x1000b8ec
or ecx, 0xffffffff
xor eax, eax
repne scasb al, byte es:[edi]
not ecx
dec ecx
push ecx
push ebx
push 0x1000b8ec
lea ecx, [esp + 0x24]
call dword [sym.imp.MSVCP60.dll_public:_unsigned_int___thiscall_std::basic_string_char__struct_std::char_traits_char___class_std::allocator_char__::find_first_of_char_const___unsigned_int__unsigned_int_const]
cmp eax, ebx
jbe 0x10002956
xor esi, esi
jmp 0x1000297f
mov edi, 0x1000b8f4
or ecx, 0xffffffff
xor eax, eax
repne scasb al, byte es:[edi]
not ecx
dec ecx
push ecx
push ebx
push 0x1000b8f4
lea ecx, [esp + 0x24]
call dword [sym.imp.MSVCP60.dll_public:_unsigned_int___thiscall_std::basic_string_char__struct_std::char_traits_char___class_std::allocator_char__::find_first_of_char_const___unsigned_int__unsigned_int_const]
cmp eax, ebx
jne 0x1000297f
mov esi, 2
sub esi, ebx
je 0x100029c1
dec esi
jne 0x1000278c
lea ecx, [esp + 0x18]
call dword [sym.imp.MSVCP60.dll_public:_unsigned_int___thiscall_std::basic_string_char__struct_std::char_traits_char___class_std::allocator_char__::size_void_const]
sub esp, 0x10
sub eax, 2
mov ecx, esp
mov dword [esp + 0x8c], esp
push eax
push 1
push ecx
lea ecx, [esp + 0x34]
call dword [sym.imp.MSVCP60.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__::substr_unsigned_int__unsigned_int_]
mov ecx, ebp
call fcn.10002ed0
mov dword [esp + 0x7c], eax
jmp 0x1000278c
cmp dword [esp + 0x7c], ebx
je 0x1000278c
mov edi, 0x1000b8ec
or ecx, 0xffffffff
xor eax, eax
repne scasb al, byte es:[edi]
not ecx
dec ecx
mov edi, ecx
je 0x10002a10
mov ebp, dword [esp + 0x20]
cmp ebp, ebx
jbe 0x10002a10
mov esi, dword [esp + 0x1c]
add ebp, esi
cmp esi, ebp
jae 0x10002a10
movsx edx, byte [esi]
push edi
push edx
push 0x1000b8ec
call dword [sym.imp.MSVCRT.dll_memchr]
add esp, 0xc
cmp eax, ebx
jne 0x10002ab3
inc esi
cmp esi, ebp
jb 0x100029f0
mov eax, dword [sym.imp.MSVCP60.dll_unsigned_int_const_std::basic_string_char__struct_std::char_traits_char___class_std::allocator_char__::npos]
mov esi, dword [eax]
push esi
lea ecx, [esp + 0x2c]
push ebx
push ecx
lea ecx, [esp + 0x24]
call dword [sym.imp.MSVCP60.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__::substr_unsigned_int__unsigned_int_]
mov edx, dword [sym.imp.MSVCP60.dll_unsigned_int_const_std::basic_string_char__struct_std::char_traits_char___class_std::allocator_char__::npos]
inc esi
lea ecx, [esp + 0x38]
mov byte [esp + 0x70], 3
mov eax, dword [edx]
push eax
push esi
push ecx
lea ecx, [esp + 0x24]
call dword [sym.imp.MSVCP60.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__::substr_unsigned_int__unsigned_int_]
mov dl, byte [esp + 0x28]
sub esp, 0x10
mov ecx, esp
mov dword [esp + 0x24], esp
mov byte [esp + 0x80], 4
mov byte [ecx], dl
mov dword [ecx + 4], ebx
mov dword [ecx + 8], ebx
mov dword [ecx + 0xc], ebx
mov eax, dword [sym.imp.MSVCP60.dll_unsigned_int_const_std::basic_string_char__struct_std::char_traits_char___class_std::allocator_char__::npos]
mov edx, dword [eax]
lea eax, [esp + 0x38]
push edx
push ebx
push eax
call dword [sym.imp.MSVCP60.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__::assign_class_std::basic_string_char__struct_std::char_traits_char___class_std::allocator_char___const___unsigned_int__unsigned_int_]
mov ecx, dword [esp + 0x8c]
call fcn.10003a40
cmp eax, ebx
je 0x10002a97
lea ecx, [esp + 0x38]
push ecx
mov ecx, eax
call fcn.10003ef0
mov eax, dword [esp + 0x3c]
cmp eax, ebx
je 0x10002ac5
lea ecx, [eax - 1]
mov al, byte [eax - 1]
cmp al, bl
je 0x10002abc
cmp al, 0xff
je 0x10002abc
dec al
mov byte [ecx], al
jmp 0x10002ac5
sub esi, dword [esp + 0x1c]
jmp 0x10002a17
push ecx
call sub.MFC42.DLL_operatordelete
add esp, 4
mov ecx, dword [esp + 0x2c]
mov dword [esp + 0x3c], ebx
cmp ecx, ebx
mov dword [esp + 0x40], ebx
mov dword [esp + 0x44], ebx
mov byte [esp + 0x70], bl
je 0x10002af9
mov al, byte [ecx - 1]
cmp al, bl
je 0x10002aef
cmp al, 0xff
je 0x10002aef
dec al
mov byte [ecx - 1], al
jmp 0x10002af9
dec ecx
push ecx
call sub.MFC42.DLL_operatordelete
add esp, 4
mov ebp, dword [esp + 0x10]
mov dword [esp + 0x2c], ebx
mov dword [esp + 0x30], ebx
mov dword [esp + 0x34], ebx
jmp 0x1000278c
mov ecx, dword [esp + 0x1c]
cmp ecx, ebx
je 0x10002b32
mov al, byte [ecx - 1]
cmp al, bl
je 0x10002b28
cmp al, 0xff
je 0x10002b28
dec al
mov byte [ecx - 1], al
jmp 0x10002b32
dec ecx
push ecx
call sub.MFC42.DLL_operatordelete
add esp, 4
mov ecx, dword [esp + 0x68]
pop edi
pop esi
pop ebp
mov dword fs:[0], ecx
pop ebx
add esp, 0x64
ret 8