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

Disassembly:
push 0xffffffffffffffff
push 0x587695
mov eax, dword fs:[0]
push eax
mov dword fs:[0], esp
sub esp, 0x15c
mov al, byte [esp + 3]
push ebx
push ebp
push esi
mov esi, ecx
xor ebx, ebx
or ebp, 0xffffffff
push ebx
lea ecx, [esp + 0x10c]
mov dword [esp + 0x14], esi
mov dword [esp + 0x40], ebp
mov dword [esp + 0x58], ebp
mov dword [esp + 0x90], ebp
mov dword [esp + 0x88], ebp
mov byte [esp + 0x10c], al
call dword [sym.imp.MSVCP60.dll_private:_void___thiscall_std::basic_string_unsigned_short_int__struct_std::char_traits_unsigned_short_int___class_std::allocator_unsigned_short_int__::_Tidy_bool_]
mov eax, dword [esi + 8]
mov dword [esp + 0x170], ebx
cmp eax, ebx
jne 0x53f00c
mov dword [esp + 0x28], ebx
jmp 0x53f018
mov ecx, dword [esi + 0xc]
sub ecx, eax
sar ecx, 3
mov dword [esp + 0x28], ecx
mov eax, dword [esp + 0x180]
push edi
mov dword [esp + 0x44], ebx
mov edi, dword [eax + 4]
mov eax, dword [eax + 8]
cmp edi, eax
mov dword [esp + 0x28], edi
je 0x53fa63
jmp 0x53f03c
mov esi, dword [esp + 0x14]
mov ecx, dword [esp + 0x180]
mov eax, dword [edi + 8]
mov edx, dword [ecx + 8]
mov ecx, edi
sub eax, edx
lea edx, [esp + 0x30]
push eax
push ebx
push edx
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__::substr_unsigned_int__unsigned_int_]
lea eax, [esp + 0x30]
mov ecx, esi
push eax
mov byte [esp + 0x178], 1
call fcn.0053e6b0
cmp ebp, ebx
jl 0x53f398
mov cl, byte [esp + 0x13]
push ebx
mov byte [esp + 0xa0], cl
lea ecx, [esp + 0xa0]
call dword [sym.imp.MSVCP60.dll_private:_void___thiscall_std::basic_string_unsigned_short_int__struct_std::char_traits_unsigned_short_int___class_std::allocator_unsigned_short_int__::_Tidy_bool_]
mov esi, dword [esp + 0x17c]
push ebp
push ebx
push esi
lea ecx, [esp + 0xa8]
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__::assign_class_std::basic_string_unsigned_short_int__struct_std::char_traits_unsigned_short_int___class_std::allocator_unsigned_short_int___const___unsigned_int__unsigned_int_]
mov edx, dword [sym.imp.MSVCP60.dll_unsigned_int_const_std::basic_string_unsigned_short_int__struct_std::char_traits_unsigned_short_int___class_std::allocator_unsigned_short_int__::npos]
mov ecx, dword [esp + 0x58]
add ecx, ebp
mov byte [esp + 0x174], 2
mov eax, dword [edx]
lea edx, [esp + 0x144]
push eax
push ecx
push edx
mov ecx, esi
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__::substr_unsigned_int__unsigned_int_]
mov ecx, dword [sym.imp.MSVCP60.dll_unsigned_int_const_std::basic_string_unsigned_short_int__struct_std::char_traits_unsigned_short_int___class_std::allocator_unsigned_short_int__::npos]
mov byte [esp + 0x174], 3
mov edx, dword [ecx]
lea ecx, [esp + 0x9c]
push edx
push ebx
push eax
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__::append_class_std::basic_string_unsigned_short_int__struct_std::char_traits_unsigned_short_int___class_std::allocator_unsigned_short_int___const___unsigned_int__unsigned_int_]
push 1
lea ecx, [esp + 0x148]
mov byte [esp + 0x178], 2
call dword [sym.imp.MSVCP60.dll_private:_void___thiscall_std::basic_string_unsigned_short_int__struct_std::char_traits_unsigned_short_int___class_std::allocator_unsigned_short_int__::_Tidy_bool_]
mov esi, dword [esp + 0x38]
mov ecx, dword [esp + 0xa4]
sub esi, ecx
cmp esi, ebx
jle 0x53f2ae
mov al, byte [esp + 0x13]
push ebx
lea ecx, [esp + 0xc8]
mov byte [esp + 0xc8], al
call dword [sym.imp.MSVCP60.dll_private:_void___thiscall_std::basic_string_unsigned_short_int__struct_std::char_traits_unsigned_short_int___class_std::allocator_unsigned_short_int__::_Tidy_bool_]
push ebp
lea ecx, [esp + 0x34]
push ebx
push ecx
lea ecx, [esp + 0xd0]
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__::assign_class_std::basic_string_unsigned_short_int__struct_std::char_traits_unsigned_short_int___class_std::allocator_unsigned_short_int___const___unsigned_int__unsigned_int_]
mov edx, dword [esp + 0xa4]
lea eax, [esi + ebp]
sub edx, ebp
lea ecx, [esp + 0x15c]
push edx
push eax
push ecx
lea ecx, [esp + 0x3c]
mov byte [esp + 0x180], 4
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__::substr_unsigned_int__unsigned_int_]
mov edx, dword [sym.imp.MSVCP60.dll_unsigned_int_const_std::basic_string_unsigned_short_int__struct_std::char_traits_unsigned_short_int___class_std::allocator_unsigned_short_int__::npos]
mov byte [esp + 0x174], 5
mov ecx, dword [edx]
push ecx
push ebx
push eax
lea ecx, [esp + 0xd0]
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__::append_class_std::basic_string_unsigned_short_int__struct_std::char_traits_unsigned_short_int___class_std::allocator_unsigned_short_int___const___unsigned_int__unsigned_int_]
push 1
lea ecx, [esp + 0x160]
mov byte [esp + 0x178], 4
call dword [sym.imp.MSVCP60.dll_private:_void___thiscall_std::basic_string_unsigned_short_int__struct_std::char_traits_unsigned_short_int___class_std::allocator_unsigned_short_int__::_Tidy_bool_]
lea edx, [esp + 0xc4]
lea eax, [esp + 0x9c]
push edx
push eax
call dword [sym.imp.MSVCP60.dll_bool___cdecl_std::operator__class_std::basic_string_unsigned_short_int__struct_std::char_traits_unsigned_short_int___class_std::allocator_unsigned_short_int___const___class_std::basic_string_unsigned_short_int__struct_std::char_traits_unsigned_short_int___class_std::allocator_unsigned_short_int___const__]
add esp, 8
test al, al
jne 0x53f297
push esi
lea ecx, [esp + 0x100]
push ebp
push ecx
lea ecx, [esp + 0x3c]
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__::substr_unsigned_int__unsigned_int_]
mov eax, dword [esp + 0x100]
mov byte [esp + 0x174], 6
cmp eax, ebx
mov dword [esp + 0x6c], ebx
mov dword [esp + 0x48], ebx
jne 0x53f1fb
mov eax, dword [sym.imp.MSVCP60.dll_unsigned_short_int_const__private:_static_unsigned_short_int_const____cdecl_std::basic_string_unsigned_short_int__struct_std::char_traits_unsigned_short_int___class_std::allocator_unsigned_short_int__::_Nullstr_void_::_2::_C]
lea edx, [esp + 0xac]
lea ecx, [esp + 0x48]
push edx
lea edx, [esp + 0x70]
push ecx
mov ecx, dword [esp + 0x1c]
push edx
push esi
push eax
call fcn.0053ec40
mov ecx, dword [esp + 0x6c]
cmp ecx, ebx
je 0x53f34e
mov eax, dword [esp + 0x90]
mov edx, ecx
xor edx, eax
test dl, dl
jne 0x53f34e
and eax, 0xff00
and ecx, 0xff00
cmp eax, ebx
je 0x53f252
cmp ecx, ebx
je 0x53f252
cmp eax, ecx
jne 0x53f34e
cmp ebp, ebx
jne 0x53f2dd
cmp dword [esp + 0xa4], ebx
jne 0x53f2dd
lea eax, [esp + 0xfc]
lea ecx, [esp + 0x10c]
push eax
push ecx
mov ecx, dword [esp + 0x1c]
call fcn.0053fab0
test al, al
je 0x53f2dd
push 1
lea ecx, [esp + 0x100]
mov byte [esp + 0x178], 4
call dword [sym.imp.MSVCP60.dll_private:_void___thiscall_std::basic_string_unsigned_short_int__struct_std::char_traits_unsigned_short_int___class_std::allocator_unsigned_short_int__::_Tidy_bool_]
push 1
lea ecx, [esp + 0xc8]
mov byte [esp + 0x178], 2
call dword [sym.imp.MSVCP60.dll_private:_void___thiscall_std::basic_string_unsigned_short_int__struct_std::char_traits_unsigned_short_int___class_std::allocator_unsigned_short_int__::_Tidy_bool_]
push 1
lea ecx, [esp + 0xa0]
mov byte [esp + 0x178], 1
call dword [sym.imp.MSVCP60.dll_private:_void___thiscall_std::basic_string_unsigned_short_int__struct_std::char_traits_unsigned_short_int___class_std::allocator_unsigned_short_int__::_Tidy_bool_]
push 1
lea ecx, [esp + 0x34]
mov byte [esp + 0x178], bl
call dword [sym.imp.MSVCP60.dll_private:_void___thiscall_std::basic_string_unsigned_short_int__struct_std::char_traits_unsigned_short_int___class_std::allocator_unsigned_short_int__::_Tidy_bool_]
jmp 0x53fa4c
mov ecx, dword [esp + 0x188]
push edi
mov eax, dword [ecx + 8]
push eax
call fcn.00540080
mov edx, dword [esp + 0x48]
mov eax, dword [esp + 0x88]
mov ecx, dword [esp + 0x58]
sub edx, eax
xor eax, eax
cmp esi, ecx
mov ecx, dword [esp + 0x44]
setne al
mov dword [esp + 0xf0], ecx
inc ecx
lea eax, [eax + edx*2]
mov dword [esp + 0x44], ecx
mov ecx, dword [esp + 0xac]
mov dword [esp + 0x48], eax
mov dword [esp + 0xf4], eax
lea edx, [esp + 0xf0]
lea eax, [esp + 0x154]
mov dword [esp + 0xf8], ecx
mov ecx, dword [esp + 0x18c]
push edx
push eax
call fcn.005403e0
push 1
lea ecx, [esp + 0x100]
mov byte [esp + 0x178], 4
call dword [sym.imp.MSVCP60.dll_private:_void___thiscall_std::basic_string_unsigned_short_int__struct_std::char_traits_unsigned_short_int___class_std::allocator_unsigned_short_int__::_Tidy_bool_]
push 1
lea ecx, [esp + 0xc8]
mov byte [esp + 0x178], 2
call dword [sym.imp.MSVCP60.dll_private:_void___thiscall_std::basic_string_unsigned_short_int__struct_std::char_traits_unsigned_short_int___class_std::allocator_unsigned_short_int__::_Tidy_bool_]
push 1
lea ecx, [esp + 0xa0]
mov byte [esp + 0x178], 1
call dword [sym.imp.MSVCP60.dll_private:_void___thiscall_std::basic_string_unsigned_short_int__struct_std::char_traits_unsigned_short_int___class_std::allocator_unsigned_short_int__::_Tidy_bool_]
jmp 0x53fa13
mov cl, byte [esp + 0x13]
mov dword [esp + 0x1c], ebx
mov byte [esp + 0x18], cl
mov dword [esp + 0x20], ebx
mov dword [esp + 0x24], ebx
mov ecx, dword [esp + 0x14]
lea edx, [esp + 0x18]
lea eax, [esp + 0x30]
push edx
push eax
mov byte [esp + 0x17c], 7
call fcn.0053fba0
mov edx, dword [esp + 0x1c]
mov edi, dword [esp + 0x20]
cmp edx, ebx
jne 0x53f3d7
xor eax, eax
jmp 0x53f3de
mov eax, edi
sub eax, edx
sar eax, 3
mov esi, dword [esp + 0x2c]
cmp esi, eax
je 0x53f403
push edi
push edx
lea ecx, [esp + 0x20]
mov byte [esp + 0x17c], 1
call fcn.004f37a0
mov ecx, dword [esp + 0x1c]
push ecx
jmp 0x53f4e7
xor eax, eax
cmp esi, ebx
jle 0x53f433
mov ecx, dword [esp + 0x14]
mov esi, dword [ecx + 8]
lea ecx, [edx + 4]
mov ebp, dword [ecx]
cmp ebp, dword [esi + eax*8 + 4]
jne 0x53f517
mov ebp, dword [esp + 0x2c]
inc eax
add ecx, 8
cmp eax, ebp
jl 0x53f413
mov ebp, dword [esp + 0x40]
mov esi, dword [esp + 0x2c]
mov eax, dword [esp + 0x14]
mov edi, dword [edx]
mov eax, dword [eax + 8]
mov ecx, dword [eax]
cmp ecx, edi
jne 0x53f584
cmp ecx, ebx
jne 0x53f584
mov edx, dword [eax + 4]
mov ecx, dword [esp + 0x17c]
push edx
lea eax, [esp + 0x130]
push ebx
push eax
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__::substr_unsigned_int__unsigned_int_]
mov ecx, dword [esp + 0x1c]
lea eax, [esp + 0x11c]
mov byte [esp + 0x174], 8
mov edx, dword [ecx + 4]
lea ecx, [esp + 0x30]
push edx
push ebx
push eax
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__::substr_unsigned_int__unsigned_int_]
lea ecx, [esp + 0x11c]
lea edx, [esp + 0x12c]
push ecx
push edx
mov byte [esp + 0x17c], 9
call dword [sym.imp.MSVCP60.dll_bool___cdecl_std::operator__class_std::basic_string_unsigned_short_int__struct_std::char_traits_unsigned_short_int___class_std::allocator_unsigned_short_int___const___class_std::basic_string_unsigned_short_int__struct_std::char_traits_unsigned_short_int___class_std::allocator_unsigned_short_int___const__]
add esp, 8
mov byte [esp + 0x174], 8
test al, al
push 1
lea ecx, [esp + 0x120]
je 0x53f563
call dword [sym.imp.MSVCP60.dll_private:_void___thiscall_std::basic_string_unsigned_short_int__struct_std::char_traits_unsigned_short_int___class_std::allocator_unsigned_short_int__::_Tidy_bool_]
push 1
lea ecx, [esp + 0x130]
mov byte [esp + 0x178], 7
call dword [sym.imp.MSVCP60.dll_private:_void___thiscall_std::basic_string_unsigned_short_int__struct_std::char_traits_unsigned_short_int___class_std::allocator_unsigned_short_int__::_Tidy_bool_]
mov eax, dword [esp + 0x1c]
push eax
call sub.MFC42.DLL_operatordelete
add esp, 4
lea ecx, [esp + 0x30]
mov dword [esp + 0x1c], ebx
mov dword [esp + 0x20], ebx
push 1
mov dword [esp + 0x28], ebx
mov byte [esp + 0x178], bl
call dword [sym.imp.MSVCP60.dll_private:_void___thiscall_std::basic_string_unsigned_short_int__struct_std::char_traits_unsigned_short_int___class_std::allocator_unsigned_short_int__::_Tidy_bool_]
mov edi, dword [esp + 0x28]
jmp 0x53fa4c
push edi
push edx
lea ecx, [esp + 0x20]
mov byte [esp + 0x17c], 1
call fcn.004f37a0
mov edx, dword [esp + 0x1c]
push edx
call sub.MFC42.DLL_operatordelete
add esp, 4
lea ecx, [esp + 0x30]
mov dword [esp + 0x1c], ebx
mov dword [esp + 0x20], ebx
push 1
mov dword [esp + 0x28], ebx
mov byte [esp + 0x178], bl
call dword [sym.imp.MSVCP60.dll_private:_void___thiscall_std::basic_string_unsigned_short_int__struct_std::char_traits_unsigned_short_int___class_std::allocator_unsigned_short_int__::_Tidy_bool_]
mov ebp, dword [esp + 0x40]
mov edi, dword [esp + 0x28]
jmp 0x53fa4c
call dword [sym.imp.MSVCP60.dll_private:_void___thiscall_std::basic_string_unsigned_short_int__struct_std::char_traits_unsigned_short_int___class_std::allocator_unsigned_short_int__::_Tidy_bool_]
push 1
lea ecx, [esp + 0x130]
mov byte [esp + 0x178], 7
call dword [sym.imp.MSVCP60.dll_private:_void___thiscall_std::basic_string_unsigned_short_int__struct_std::char_traits_unsigned_short_int___class_std::allocator_unsigned_short_int__::_Tidy_bool_]
mov edx, dword [esp + 0x1c]
xor eax, eax
cmp esi, ebx
mov dword [esp + 0x8c], eax
jle 0x53f9f6
cmp eax, ebx
jle 0x53f5ac
mov ecx, dword [esp + 0x14]
mov esi, dword [ecx + 8]
mov ecx, dword [esi + eax*8 - 4]
mov edi, dword [esi + eax*8 - 8]
add ecx, edi
jmp 0x53f5ae
xor ecx, ecx
mov esi, dword [esp + 0x14]
mov dword [esp + 0x94], ecx
mov esi, dword [esi + 8]
mov esi, dword [esi + eax*8]
sub esi, ecx
cmp eax, ebx
jle 0x53f5d1
mov ebp, dword [edx + eax*8 - 8]
mov edi, dword [edx + eax*8 - 4]
add ebp, edi
jmp 0x53f5d3
xor ebp, ebp
mov edi, dword [edx + eax*8]
mov dword [esp + 0x80], ebp
sub edi, ebp
cmp esi, ebx
jle 0x53f751
cmp edi, ebx
jle 0x53f751
push esi
lea edx, [esp + 0x60]
push ecx
mov ecx, dword [esp + 0x184]
push edx
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__::substr_unsigned_int__unsigned_int_]
push edi
lea eax, [esp + 0x74]
push ebp
push eax
lea ecx, [esp + 0x3c]
mov byte [esp + 0x180], 0xa
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__::substr_unsigned_int__unsigned_int_]
mov eax, dword [esp + 0x60]
mov byte [esp + 0x174], 0xb
cmp eax, ebx
mov dword [esp + 0x54], ebx
mov dword [esp + 0x84], ebx
mov dword [esp + 0x50], ebx
mov dword [esp + 0x98], ebx
mov dword [esp + 0x4c], ebx
mov dword [esp + 0xc0], ebx
jne 0x53f652
mov eax, dword [sym.imp.MSVCP60.dll_unsigned_short_int_const__private:_static_unsigned_short_int_const____cdecl_std::basic_string_unsigned_short_int__struct_std::char_traits_unsigned_short_int___class_std::allocator_unsigned_short_int__::_Nullstr_void_::_2::_C]
mov ebp, dword [esp + 0x14]
lea ecx, [esp + 0x98]
push ecx
lea edx, [esp + 0x54]
lea ecx, [esp + 0x58]
push edx
push ecx
push esi
push eax
mov ecx, ebp
call fcn.0053ec40
mov eax, dword [esp + 0x74]
cmp eax, ebx
jne 0x53f67e
mov eax, dword [sym.imp.MSVCP60.dll_unsigned_short_int_const__private:_static_unsigned_short_int_const____cdecl_std::basic_string_unsigned_short_int__struct_std::char_traits_unsigned_short_int___class_std::allocator_unsigned_short_int__::_Nullstr_void_::_2::_C]
lea edx, [esp + 0xc0]
lea ecx, [esp + 0x4c]
push edx
lea edx, [esp + 0x88]
push ecx
push edx
push edi
push eax
mov ecx, ebp
call fcn.0053ec40
mov eax, dword [esp + 0x54]
cmp eax, ebx
je 0x53f6da
mov ebp, dword [esp + 0x84]
cmp ebp, ebx
je 0x53f6da
mov ecx, ebp
xor ecx, eax
test cl, cl
jne 0x53f6da
and eax, 0xff00
and ebp, 0xff00
cmp eax, ebx
je 0x53f76a
cmp ebp, ebx
je 0x53f76a
cmp eax, ebp
je 0x53f76a
mov ecx, dword [esp + 0x74]
cmp ecx, ebx
je 0x53f700
mov al, byte [ecx - 1]
cmp al, bl
je 0x53f6f4
cmp al, 0xff
je 0x53f6f4
dec al
mov byte [ecx - 1], al
jmp 0x53f700
lea eax, [ecx - 2]
push eax
call sub.MFC42.DLL_operatordelete
add esp, 4
mov ecx, dword [esp + 0x60]
mov dword [esp + 0x74], ebx
cmp ecx, ebx
mov dword [esp + 0x78], ebx
mov dword [esp + 0x7c], ebx
mov byte [esp + 0x174], 7
je 0x53f73a
mov al, byte [ecx - 1]
cmp al, bl
je 0x53f72e
cmp al, 0xff
je 0x53f72e
dec al
mov byte [ecx - 1], al
jmp 0x53f73a
lea eax, [ecx - 2]
push eax
call sub.MFC42.DLL_operatordelete
add esp, 4
mov edx, dword [esp + 0x1c]
mov eax, dword [esp + 0x8c]
mov dword [esp + 0x60], ebx
mov dword [esp + 0x64], ebx
mov dword [esp + 0x68], ebx
mov ecx, dword [esp + 0x2c]
inc eax
cmp eax, ecx
mov dword [esp + 0x8c], eax
jge 0x53f9f6
jmp 0x53f595
mov edx, dword [sym.imp.MSVCP60.dll_unsigned_int_const_std::basic_string_unsigned_short_int__struct_std::char_traits_unsigned_short_int___class_std::allocator_unsigned_short_int__::npos]
mov ebp, dword [esp + 0x94]
mov eax, dword [edx]
lea ecx, [esi + ebp]
push eax
lea edx, [esp + 0xb4]
push ecx
mov ecx, dword [esp + 0x184]
push edx
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__::substr_unsigned_int__unsigned_int_]
mov eax, dword [sym.imp.MSVCP60.dll_unsigned_int_const_std::basic_string_unsigned_short_int__struct_std::char_traits_unsigned_short_int___class_std::allocator_unsigned_short_int__::npos]
mov edx, dword [esp + 0x80]
mov byte [esp + 0x174], 0xc
mov ecx, dword [eax]
lea eax, [edi + edx]
push ecx
lea ecx, [esp + 0xd8]
push eax
push ecx
lea ecx, [esp + 0x3c]
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__::substr_unsigned_int__unsigned_int_]
lea edx, [esp + 0xd4]
lea eax, [esp + 0xb0]
push edx
push eax
mov byte [esp + 0x17c], 0xd
call dword [sym.imp.MSVCP60.dll_bool___cdecl_std::operator_class_std::basic_string_unsigned_short_int__struct_std::char_traits_unsigned_short_int___class_std::allocator_unsigned_short_int___const___class_std::basic_string_unsigned_short_int__struct_std::char_traits_unsigned_short_int___class_std::allocator_unsigned_short_int___const__]
add esp, 8
test al, al
je 0x53f912
cmp ebp, ebx
jne 0x53f868
cmp dword [esp + 0xb8], ebx
jne 0x53f868
lea ecx, [esp + 0x70]
lea edx, [esp + 0x5c]
push ecx
mov ecx, dword [esp + 0x18]
push edx
call fcn.0053fab0
test al, al
je 0x53f868
push 1
lea ecx, [esp + 0xd8]
mov byte [esp + 0x178], 0xc
call dword [sym.imp.MSVCP60.dll_private:_void___thiscall_std::basic_string_unsigned_short_int__struct_std::char_traits_unsigned_short_int___class_std::allocator_unsigned_short_int__::_Tidy_bool_]
push 1
lea ecx, [esp + 0xb4]
mov byte [esp + 0x178], 0xb
call dword [sym.imp.MSVCP60.dll_private:_void___thiscall_std::basic_string_unsigned_short_int__struct_std::char_traits_unsigned_short_int___class_std::allocator_unsigned_short_int__::_Tidy_bool_]
push 1
lea ecx, [esp + 0x74]
mov byte [esp + 0x178], 0xa
call dword [sym.imp.MSVCP60.dll_private:_void___thiscall_std::basic_string_unsigned_short_int__struct_std::char_traits_unsigned_short_int___class_std::allocator_unsigned_short_int__::_Tidy_bool_]
push 1
lea ecx, [esp + 0x60]
mov byte [esp + 0x178], 7
call dword [sym.imp.MSVCP60.dll_private:_void___thiscall_std::basic_string_unsigned_short_int__struct_std::char_traits_unsigned_short_int___class_std::allocator_unsigned_short_int__::_Tidy_bool_]
jmp 0x53f9f2
mov eax, dword [esp + 0x54]
mov edx, dword [sym.imp.MSVCP60.dll_unsigned_int_const_std::basic_string_unsigned_short_int__struct_std::char_traits_unsigned_short_int___class_std::allocator_unsigned_short_int__::npos]
mov ecx, dword [esp + 0x50]
mov dword [esp + 0x90], eax
mov eax, dword [edx]
mov dword [esp + 0x88], ecx
push eax
lea ecx, [esp + 0x60]
push ebx
push ecx
lea ecx, [esp + 0x118]
mov dword [esp + 0x4c], ebp
mov dword [esp + 0x64], esi
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__::assign_class_std::basic_string_unsigned_short_int__struct_std::char_traits_unsigned_short_int___class_std::allocator_unsigned_short_int___const___unsigned_int__unsigned_int_]
mov ecx, dword [esp + 0x188]
mov edx, dword [esp + 0x28]
push edx
push 1
mov eax, dword [ecx + 8]
push eax
call fcn.00473fa0
mov eax, dword [esp + 0x4c]
mov ecx, dword [esp + 0x50]
sub eax, ecx
xor ecx, ecx
cmp edi, esi
mov edx, dword [esp + 0x98]
setne cl
mov dword [esp + 0xec], edx
lea eax, [ecx + eax*2]
mov ecx, dword [esp + 0x44]
mov dword [esp + 0xe4], ecx
inc ecx
mov dword [esp + 0x4c], eax
mov dword [esp + 0xe8], eax
mov dword [esp + 0x44], ecx
lea eax, [esp + 0xe4]
lea ecx, [esp + 0x13c]
push eax
push ecx
mov ecx, dword [esp + 0x194]
call fcn.005403e0
mov ecx, dword [esp + 0xd8]
cmp ecx, ebx
je 0x53f93b
mov al, byte [ecx - 1]
cmp al, bl
je 0x53f92f
cmp al, 0xff
je 0x53f92f
dec al
mov byte [ecx - 1], al
jmp 0x53f93b
lea eax, [ecx - 2]
push eax
call sub.MFC42.DLL_operatordelete
add esp, 4
mov ecx, dword [esp + 0xb4]
mov dword [esp + 0xd8], ebx
cmp ecx, ebx
mov dword [esp + 0xdc], ebx
mov dword [esp + 0xe0], ebx
je 0x53f979
mov al, byte [ecx - 1]
cmp al, bl
je 0x53f96d
cmp al, 0xff
je 0x53f96d
dec al
mov byte [ecx - 1], al
jmp 0x53f979
lea eax, [ecx - 2]
push eax
call sub.MFC42.DLL_operatordelete
add esp, 4
mov ecx, dword [esp + 0x74]
mov dword [esp + 0xb4], ebx
cmp ecx, ebx
mov dword [esp + 0xb8], ebx
mov dword [esp + 0xbc], ebx
je 0x53f9b4
mov al, byte [ecx - 1]
cmp al, bl
je 0x53f9a8
cmp al, 0xff
je 0x53f9a8
dec al
mov byte [ecx - 1], al
jmp 0x53f9b4
lea eax, [ecx - 2]
push eax
call sub.MFC42.DLL_operatordelete
add esp, 4
mov ecx, dword [esp + 0x60]
mov dword [esp + 0x74], ebx
cmp ecx, ebx
mov dword [esp + 0x78], ebx
mov dword [esp + 0x7c], ebx
je 0x53f9e6
mov al, byte [ecx - 1]
cmp al, bl
je 0x53f9da
cmp al, 0xff
je 0x53f9da
dec al
mov byte [ecx - 1], al
jmp 0x53f9e6
lea eax, [ecx - 2]
push eax
call sub.MFC42.DLL_operatordelete
add esp, 4
mov dword [esp + 0x60], ebx
mov dword [esp + 0x64], ebx
mov dword [esp + 0x68], ebx
mov edx, dword [esp + 0x1c]
push edx
call sub.MFC42.DLL_operatordelete
mov ebp, dword [esp + 0x44]
mov edi, dword [esp + 0x2c]
add esp, 4
mov dword [esp + 0x1c], ebx
mov dword [esp + 0x20], ebx
mov dword [esp + 0x24], ebx
mov ecx, dword [esp + 0x34]
mov byte [esp + 0x174], bl
cmp ecx, ebx
je 0x53fa40
mov al, byte [ecx - 1]
cmp al, bl
je 0x53fa34
cmp al, 0xff
je 0x53fa34
dec al
mov byte [ecx - 1], al
jmp 0x53fa40
add ecx, 0xfffffffe
push ecx
call sub.MFC42.DLL_operatordelete
add esp, 4
mov dword [esp + 0x34], ebx
mov dword [esp + 0x38], ebx
mov dword [esp + 0x3c], ebx
mov edx, dword [esp + 0x184]
add edi, 0x10
mov dword [esp + 0x28], edi
cmp edi, dword [edx + 8]
jne 0x53f038
mov ecx, dword [esp + 0x110]
pop edi
cmp ecx, ebx
je 0x53fa8d
mov al, byte [ecx - 1]
cmp al, bl
je 0x53fa81
cmp al, 0xff
je 0x53fa81
dec al
mov byte [ecx - 1], al
jmp 0x53fa8d
add ecx, 0xfffffffe
push ecx
call sub.MFC42.DLL_operatordelete
add esp, 4
mov ecx, dword [esp + 0x168]
pop esi
pop ebp
pop ebx
mov dword fs:[0], ecx
add esp, 0x168
ret 0x14