Function at 0x411cb0
Capabilities:
Read file on windows

Disassembly:
push ebp
mov ebp, esp
push 0xffffffffffffffff
push 0x4255f5
mov eax, dword fs:[0]
push eax
mov dword fs:[0], esp
sub esp, 0xc7c
mov al, byte [ebp + 0xb]
push ebx
push esi
xor esi, esi
push edi
push esi
lea ecx, [ebp - 0x1c]
mov dword [ebp - 0x24], esi
mov byte [ebp - 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_]
movsx ecx, byte [0x42b74b]
mov edx, dword [0x42b788]
mov eax, dword [0x42b76c]
add ecx, edx
push 0x2f1ffff
mov dword [0x42b77c], ecx
push 0x13bbffff
movsx ecx, word [0x42b758]
movsx edx, word [0x42b754]
imul ecx, ecx, 0xdfbffff
sub eax, edx
mov dword [ebp - 4], esi
mov dword [0x42b774], eax
mov dword [0x42b770], ecx
mov dword [0x42b778], 0xc943fffe
call fcn.0040e3c0
lea edx, [ebp - 0x88]
mov dword [0x42b784], eax
push edx
call fcn.00413160
movsx eax, word [0x42b758]
push 0xf311ffff
push eax
call fcn.0040e290
mov byte [0x42b749], al
mov byte [ebp - 0xc88], 0
mov byte [ebp - 0x888], 0
mov byte [ebp - 0x488], 0
movsx ecx, byte [0x42b74a]
imul ecx, ecx, 0x2215ffff
push 0x8703ffff
push 0x8db5ffff
mov byte [ebp - 4], 1
mov dword [0x42b780], ecx
call fcn.0040e400
movsx edx, word [0x42b75e]
mov byte [0x42b74f], al
mov cl, byte [0x42b754]
movsx eax, al
sub edx, eax
add esp, 0x1c
mov dword [0x42b778], edx
mov dl, byte [0x42b748]
add cl, dl
mov byte [0x42b74c], cl
lea ecx, [ebp - 0xc88]
call fcn.0040fdd0
movsx edx, byte [0x42b74e]
push 0xeaffffff
push edx
call fcn.0040e400
push 0x5ecfffff
push 0xd24dffff
mov byte [0x42b74e], al
mov word [0x42b756], 0xffff
call fcn.0040e290
add esp, 0x10
mov dword [0x42b768], eax
mov al, byte [ebp + 0xb]
lea ecx, [ebp - 0x44]
push esi
mov byte [ebp - 0x44], 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_]
lea edi, [ebp - 0xc88]
or ecx, 0xffffffff
xor eax, eax
repne scasb al, byte es:[edi]
not ecx
dec ecx
mov ebx, ecx
push 1
push ebx
lea ecx, [ebp - 0x44]
call dword [sym.imp.MSVCP60.dll_private:_bool___thiscall_std::basic_string_char__struct_std::char_traits_char___class_std::allocator_char__::_Grow_unsigned_int__bool_]
test al, al
je 0x411e65
mov edi, dword [ebp - 0x40]
mov ecx, ebx
mov edx, ecx
lea esi, [ebp - 0xc88]
shr ecx, 2
rep movsd dword es:[edi], dword [esi]
mov ecx, edx
push ebx
and ecx, 3
rep movsb byte es:[edi], byte [esi]
lea ecx, [ebp - 0x44]
call dword [sym.imp.MSVCP60.dll_private:_void___thiscall_std::basic_string_char__struct_std::char_traits_char___class_std::allocator_char__::_Eos_unsigned_int_]
push 0x339bffff
push 0xc939ffff
mov byte [ebp - 4], 2
call fcn.0040e450
mov ecx, dword [0x42b770]
mov edx, dword [0x42b788]
mov byte [0x42b74f], al
mov eax, dword [0x42b77c]
inc eax
push ecx
push edx
mov word [0x42b75e], ax
call fcn.0040e2c0
mov byte [0x42b749], al
lea edi, [ebp - 0x888]
or ecx, 0xffffffff
xor eax, eax
add esp, 0x10
mov dword [0x42b788], 0x665dffff
repne scasb al, byte es:[edi]
not ecx
dec ecx
lea eax, [ebp - 0x888]
push ecx
push eax
lea ecx, [ebp - 0x44]
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__::append_char_const___unsigned_int_]
push 0x343ffff
push 0x7dabffff
call fcn.0040e400
mov bl, byte [0x42b749]
add esp, 8
test bl, bl
setne cl
mov dword [0x42b784], eax
mov byte [0x42b748], cl
lea edi, [ebp - 0x488]
or ecx, 0xffffffff
xor eax, eax
lea edx, [ebp - 0x488]
repne scasb al, byte es:[edi]
not ecx
dec ecx
push ecx
push edx
lea ecx, [ebp - 0x44]
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__::append_char_const___unsigned_int_]
movsx eax, byte [0x42b749]
movsx ecx, byte [0x42b74b]
push eax
push ecx
call fcn.0040e450
mov bl, byte [0x42b784]
mov ecx, dword [0x42b77c]
mov word [0x42b75e], ax
mov al, byte [0x42b74b]
mov dl, al
movsx eax, al
sub dl, bl
push eax
push ecx
mov byte [0x42b748], dl
call fcn.0040e450
mov dword [0x42b784], eax
mov al, byte [0x42b3a0]
sub al, 0x28
add esp, 0x10
and eax, 0xff
add eax, 3
and al, 0xfc
call fcn.004248b0
mov ecx, esp
mov edx, 0x42b3a0
call fcn.00422900
mov esi, eax
or ecx, 0xffffffff
mov edi, esi
xor eax, eax
repne scasb al, byte es:[edi]
not ecx
dec ecx
push 1
mov ebx, ecx
lea ecx, [ebp - 0x1c]
push ebx
call dword [sym.imp.MSVCP60.dll_private:_bool___thiscall_std::basic_string_char__struct_std::char_traits_char___class_std::allocator_char__::_Grow_unsigned_int__bool_]
test al, al
je 0x411fbf
mov edi, dword [ebp - 0x18]
mov ecx, ebx
mov edx, ecx
push ebx
shr ecx, 2
rep movsd dword es:[edi], dword [esi]
mov ecx, edx
and ecx, 3
rep movsb byte es:[edi], byte [esi]
lea ecx, [ebp - 0x1c]
call dword [sym.imp.MSVCP60.dll_private:_void___thiscall_std::basic_string_char__struct_std::char_traits_char___class_std::allocator_char__::_Eos_unsigned_int_]
mov al, byte [0x42b758]
mov bl, byte [0x42b74a]
mov cl, byte [0x42b74b]
mov edx, dword [ebp - 0x7c]
inc al
inc bl
mov byte [0x42b74d], al
lea eax, [ebp - 0x5c]
neg cl
push edx
push eax
mov byte [0x42b74a], bl
mov byte [0x42b74c], cl
call fcn.00404d90
add esp, 8
mov ecx, dword [sym.imp.MSVCP60.dll_unsigned_int_const_std::basic_string_char__struct_std::char_traits_char___class_std::allocator_char__::npos]
mov byte [ebp - 4], 3
mov edx, dword [ecx]
lea ecx, [ebp - 0x1c]
push edx
push 0
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__::append_class_std::basic_string_char__struct_std::char_traits_char___class_std::allocator_char___const___unsigned_int__unsigned_int_]
push 1
lea ecx, [ebp - 0x5c]
mov byte [ebp - 4], 2
call dword [sym.imp.MSVCP60.dll_private:_void___thiscall_std::basic_string_char__struct_std::char_traits_char___class_std::allocator_char__::_Tidy_bool_]
push 0xcfd3ffff
push 0x496fffff
call fcn.0040e4a0
push 0xe015ffff
push 0x3881ffff
mov byte [0x42b74a], al
call fcn.0040e3c0
movsx edx, word [0x42b760]
mov ecx, dword [0x42b780]
mov dword [0x42b76c], eax
mov al, byte [0x42b778]
push ecx
push edx
mov byte [0x42b74c], al
call fcn.0040e290
mov dword [0x42b780], eax
mov eax, dword [ebp - 0x78]
lea ecx, [ebp - 0x5c]
push eax
push ecx
call fcn.00404d90
add esp, 0x20
mov edx, dword [sym.imp.MSVCP60.dll_unsigned_int_const_std::basic_string_char__struct_std::char_traits_char___class_std::allocator_char__::npos]
mov byte [ebp - 4], 4
mov ecx, dword [edx]
push ecx
push 0
push eax
lea ecx, [ebp - 0x1c]
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__::append_class_std::basic_string_char__struct_std::char_traits_char___class_std::allocator_char___const___unsigned_int__unsigned_int_]
push 1
lea ecx, [ebp - 0x5c]
mov byte [ebp - 4], 2
call dword [sym.imp.MSVCP60.dll_private:_void___thiscall_std::basic_string_char__struct_std::char_traits_char___class_std::allocator_char__::_Tidy_bool_]
movsx edx, byte [0x42b74b]
movsx eax, word [0x42b75e]
push edx
push eax
call fcn.0040e2c0
cmp word [0x42b756], 0
mov edx, dword [ebp - 0x74]
mov byte [0x42b74b], al
lea eax, [ebp - 0x5c]
setne cl
push edx
push eax
mov byte [0x42b749], cl
call fcn.00404d90
add esp, 0x10
mov ecx, dword [sym.imp.MSVCP60.dll_unsigned_int_const_std::basic_string_char__struct_std::char_traits_char___class_std::allocator_char__::npos]
mov byte [ebp - 4], 5
mov edx, dword [ecx]
lea ecx, [ebp - 0x1c]
push edx
push 0
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__::append_class_std::basic_string_char__struct_std::char_traits_char___class_std::allocator_char___const___unsigned_int__unsigned_int_]
push 1
lea ecx, [ebp - 0x5c]
mov byte [ebp - 4], 2
call dword [sym.imp.MSVCP60.dll_private:_void___thiscall_std::basic_string_char__struct_std::char_traits_char___class_std::allocator_char__::_Tidy_bool_]
push 0xf641ffff
push 0x2eb9ffff
call fcn.0040e3c0
mov word [0x42b75a], ax
mov al, byte [0x42b398]
sub al, 0x28
add esp, 8
and eax, 0xff
add eax, 3
and al, 0xfc
call fcn.004248b0
mov ecx, esp
mov edx, 0x42b398
call fcn.00422900
mov ebx, eax
or ecx, 0xffffffff
mov edi, ebx
xor eax, eax
repne scasb al, byte es:[edi]
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 [ebp - 0x14]
not ecx
dec ecx
mov esi, ecx
mov ecx, dword [eax]
sub ecx, edx
cmp ecx, esi
ja 0x412165
call dword [sym.imp.MSVCP60.dll_void___cdecl_std::_Xlen_void_]
test esi, esi
jbe 0x4121aa
mov edx, dword [ebp - 0x14]
push 0
lea ecx, [ebp - 0x1c]
lea eax, [edx + esi]
push eax
mov dword [ebp - 0x20], eax
call dword [sym.imp.MSVCP60.dll_private:_bool___thiscall_std::basic_string_char__struct_std::char_traits_char___class_std::allocator_char__::_Grow_unsigned_int__bool_]
test al, al
je 0x4121aa
mov eax, dword [ebp - 0x18]
mov ecx, dword [ebp - 0x14]
lea edi, [ecx + eax]
mov ecx, esi
mov edx, ecx
mov esi, ebx
shr ecx, 2
rep movsd dword es:[edi], dword [esi]
mov eax, dword [ebp - 0x20]
mov ecx, edx
and ecx, 3
push eax
rep movsb byte es:[edi], byte [esi]
lea ecx, [ebp - 0x1c]
call dword [sym.imp.MSVCP60.dll_private:_void___thiscall_std::basic_string_char__struct_std::char_traits_char___class_std::allocator_char__::_Eos_unsigned_int_]
movsx ecx, byte [0x42b748]
push ecx
push 0x610dffff
call fcn.0040e290
movsx edx, byte [0x42b748]
imul edx, edx, 0xeb1fffff
mov dword [0x42b77c], eax
mov eax, dword [ebp - 0x40]
add esp, 8
mov dword [0x42b784], edx
test eax, eax
mov word [0x42b756], 0xffff
jne 0x4121ec
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]
push eax
call fcn.00415160
mov dword [ebp - 0x20], eax
mov edi, eax
or ecx, 0xffffffff
xor eax, eax
add esp, 4
mov edx, dword [ebp - 0x14]
repne scasb al, byte es:[edi]
mov eax, dword [sym.imp.MSVCP60.dll_unsigned_int_const_std::basic_string_char__struct_std::char_traits_char___class_std::allocator_char__::npos]
not ecx
dec ecx
mov esi, ecx
mov ecx, dword [eax]
sub ecx, edx
cmp ecx, esi
ja 0x41221c
call dword [sym.imp.MSVCP60.dll_void___cdecl_std::_Xlen_void_]
test esi, esi
jbe 0x41225c
mov edx, dword [ebp - 0x14]
push 0
lea ecx, [ebp - 0x1c]
lea ebx, [edx + esi]
push ebx
call dword [sym.imp.MSVCP60.dll_private:_bool___thiscall_std::basic_string_char__struct_std::char_traits_char___class_std::allocator_char__::_Grow_unsigned_int__bool_]
test al, al
je 0x41225c
mov eax, dword [ebp - 0x18]
mov ecx, dword [ebp - 0x14]
push ebx
lea edi, [ecx + eax]
mov ecx, esi
mov esi, dword [ebp - 0x20]
mov edx, ecx
shr ecx, 2
rep movsd dword es:[edi], dword [esi]
mov ecx, edx
and ecx, 3
rep movsb byte es:[edi], byte [esi]
lea ecx, [ebp - 0x1c]
call dword [sym.imp.MSVCP60.dll_private:_void___thiscall_std::basic_string_char__struct_std::char_traits_char___class_std::allocator_char__::_Eos_unsigned_int_]
push 0x2411ffff
push 0xb299ffff
call fcn.0040e340
push 0x9677ffff
push 0xbac1ffff
mov byte [0x42b748], al
call fcn.0040e2f0
mov dword [0x42b788], eax
xor edi, edi
movsx eax, byte [0x42b74d]
push eax
push 0x7723ffff
mov dword [ebp - 0x48], edi
xor bl, bl
call fcn.0040e4a0
movsx ecx, byte [0x42b750]
mov byte [0x42b74a], al
mov edx, 0x7045ffff
lea eax, [ebp - 0x70]
sub edx, ecx
push eax
mov dword [0x42b784], edx
call fcn.00414170
mov ecx, dword [0x42b780]
mov byte [ebp - 4], 6
push ecx
push 0x90a1ffff
call fcn.0040e290
mov edx, dword [0x42b770]
push 0xeee1ffff
inc edx
push 0x277ffff
mov dword [0x42b778], eax
mov word [0x42b752], dx
call fcn.0040e3c0
mov word [0x42b758], ax
mov eax, dword [ebp - 0x68]
add esp, 0x2c
cmp eax, edi
jbe 0x412473
movsx ecx, byte [0x42b74c]
mov eax, dword [0x42b774]
push ecx
add eax, 0x2e69ffff
push 0x5c57ffff
mov word [0x42b754], 1
mov byte [0x42b74b], 1
mov dword [0x42b788], eax
call fcn.0040e400
mov word [0x42b754], ax
mov eax, dword [ebp - 0x6c]
add esp, 8
cmp eax, edi
jne 0x412350
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]
push edi
push edi
push 3
push edi
push 1
push SysReAllocString
push eax
call dword [sym.imp.KERNEL32.DLL_CreateFileA]
push 0x4513ffff
push 0xc425ffff
mov esi, eax
call fcn.0040e340
movsx ecx, word [0x42b75c]
movsx edx, ax
sub ecx, edx
push 0x45c9ffff
push ecx
mov word [0x42b75e], ax
mov dword [0x42b780], ecx
call fcn.0040e290
add esp, 0x10
cmp esi, 0xffffffff
mov word [0x42b75e], ax
je 0x412473
movsx ecx, byte [0x42b74b]
mov eax, dword [0x42b788]
push eax
push ecx
call fcn.0040e3c0
mov word [0x42b752], ax
mov al, byte [0x42b74e]
or dl, 0xff
add esp, 8
sub dl, al
movsx ax, byte [0x42b750]
push 2
push edi
dec eax
push 0xfffffffffffffffc
push esi
mov byte [0x42b749], dl
mov word [0x42b760], ax
call dword [sym.imp.KERNEL32.DLL_SetFilePointer]
cmp eax, 0xffffffff
je 0x412473
mov ecx, dword [0x42b774]
push 0x350fffff
push ecx
call fcn.0040e400
movsx edx, byte [0x42b74a]
mov dword [0x42b76c], eax
push edx
movsx eax, word [0x42b752]
push eax
call fcn.0040e450
mov dword [0x42b76c], eax
mov eax, dword [0x42b768]
push eax
push eax
call fcn.0040e340
add esp, 0x18
lea ecx, [ebp - 0x20]
lea edx, [ebp - 0x48]
mov word [0x42b762], ax
push edi
push ecx
push 4
push edx
push esi
mov dword [ebp - 0x20], edi
call dword [sym.imp.KERNEL32.DLL_ReadFile]
test eax, eax
je 0x412473
cmp dword [ebp - 0x20], 4
jne 0x412473
movsx eax, byte [0x42b74f]
add eax, 0x52ec0001
mov word [0x42b75a], di
mov dword [0x42b788], eax
mov bl, 1
push 0xb28dffff
push 0x396fffff
call fcn.0040e3c0
add esp, 8
mov dword [0x42b774], eax
test bl, bl
je 0x41259d
mov al, byte [0x42b38c]
mov edx, dword [0x42b778]
movsx cx, byte [0x42b750]
sub al, 0x28
add edx, 0x349dffff
and eax, 0xff
mov word [0x42b75e], cx
add eax, 3
mov dword [0x42b77c], edx
and al, 0xfc
call fcn.004248b0
mov ecx, esp
mov edx, 0x42b38c
call fcn.00422900
mov ebx, eax
or ecx, 0xffffffff
mov edi, ebx
xor eax, eax
repne scasb al, byte es:[edi]
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 [ebp - 0x14]
not ecx
dec ecx
mov esi, ecx
mov ecx, dword [eax]
sub ecx, edx
cmp ecx, esi
ja 0x4124fb
call dword [sym.imp.MSVCP60.dll_void___cdecl_std::_Xlen_void_]
test esi, esi
jbe 0x412540
mov edx, dword [ebp - 0x14]
push 0
lea ecx, [ebp - 0x1c]
lea eax, [edx + esi]
push eax
mov dword [ebp - 0x20], eax
call dword [sym.imp.MSVCP60.dll_private:_bool___thiscall_std::basic_string_char__struct_std::char_traits_char___class_std::allocator_char__::_Grow_unsigned_int__bool_]
test al, al
je 0x412540
mov eax, dword [ebp - 0x18]
mov ecx, dword [ebp - 0x14]
lea edi, [ecx + eax]
mov ecx, esi
mov edx, ecx
mov esi, ebx
shr ecx, 2
rep movsd dword es:[edi], dword [esi]
mov eax, dword [ebp - 0x20]
mov ecx, edx
and ecx, 3
push eax
rep movsb byte es:[edi], byte [esi]
lea ecx, [ebp - 0x1c]
call dword [sym.imp.MSVCP60.dll_private:_void___thiscall_std::basic_string_char__struct_std::char_traits_char___class_std::allocator_char__::_Eos_unsigned_int_]
mov ecx, dword [ebp - 0x48]
lea edx, [ebp - 0x5c]
push ecx
push edx
call fcn.00404d90
add esp, 8
mov ecx, dword [sym.imp.MSVCP60.dll_unsigned_int_const_std::basic_string_char__struct_std::char_traits_char___class_std::allocator_char__::npos]
mov byte [ebp - 4], 7
mov edx, dword [ecx]
lea ecx, [ebp - 0x1c]
push edx
push 0
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__::append_class_std::basic_string_char__struct_std::char_traits_char___class_std::allocator_char___const___unsigned_int__unsigned_int_]
mov eax, dword [ebp - 0x58]
mov byte [ebp - 4], 6
test eax, eax
je 0x412655
lea ecx, [eax - 1]
mov al, byte [eax - 1]
test al, al
je 0x41258f
cmp al, 0xff
je 0x41258f
dec al
mov byte [ecx], al
jmp 0x412655
push ecx
call sub.MSVCRT.dll_void___cdecl_operator_delete_void__
add esp, 4
jmp 0x412655
mov ax, word [0x42b762]
push 0x807bffff
inc ax
push 0x326dffff
mov word [0x42b760], 1
mov word [0x42b75a], ax
call fcn.0040e400
mov dword [0x42b770], eax
mov al, byte [0x42b37c]
sub al, 0x28
add esp, 8
and eax, 0xff
add eax, 3
and al, 0xfc
call fcn.004248b0
mov ecx, esp
mov edx, 0x42b37c
call fcn.00422900
mov dword [ebp - 0x20], eax
mov edi, eax
or ecx, 0xffffffff
xor eax, eax
repne scasb al, byte es:[edi]
not ecx
dec ecx
mov esi, ecx
mov ecx, 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 [ecx]
mov ecx, dword [ebp - 0x14]
sub edx, ecx
cmp edx, esi
ja 0x412615
call dword [sym.imp.MSVCP60.dll_void___cdecl_std::_Xlen_void_]
test esi, esi
jbe 0x412655
mov eax, dword [ebp - 0x14]
push 0
lea ecx, [ebp - 0x1c]
lea ebx, [eax + esi]
push ebx
call dword [sym.imp.MSVCP60.dll_private:_bool___thiscall_std::basic_string_char__struct_std::char_traits_char___class_std::allocator_char__::_Grow_unsigned_int__bool_]
test al, al
je 0x412655
mov ecx, dword [ebp - 0x18]
mov edx, dword [ebp - 0x14]
lea edi, [edx + ecx]
mov ecx, esi
mov esi, dword [ebp - 0x20]
mov eax, ecx
shr ecx, 2
rep movsd dword es:[edi], dword [esi]
mov ecx, eax
and ecx, 3
rep movsb byte es:[edi], byte [esi]
mov ecx, dword [ebp - 0x18]
mov dword [ebp - 0x14], ebx
mov byte [ecx + ebx], 0
movsx edx, byte [0x42b74c]
push edx
push 0x3fafffff
call fcn.0040e3c0
push 0x1857ffff
push 0x2fa9ffff
mov byte [0x42b749], al
call fcn.0040e3c0
mov dword [0x42b774], eax
mov al, byte [0x42b370]
sub al, 0x28
add esp, 0x10
and eax, 0xff
mov word [0x42b758], 0xffff
add eax, 3
mov word [0x42b760], 1
and al, 0xfc
call fcn.004248b0
mov ecx, esp
mov edx, 0x42b370
call fcn.00422900
mov dword [ebp - 0x20], eax
mov edi, eax
or ecx, 0xffffffff
xor eax, eax
repne scasb al, byte es:[edi]
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 [ebp - 0x14]
not ecx
dec ecx
mov esi, ecx
mov ecx, dword [eax]
sub ecx, edx
cmp ecx, esi
ja 0x4126de
call dword [sym.imp.MSVCP60.dll_void___cdecl_std::_Xlen_void_]
test esi, esi
jbe 0x41271e
mov edx, dword [ebp - 0x14]
push 0
lea ecx, [ebp - 0x1c]
lea ebx, [edx + esi]
push ebx
call dword [sym.imp.MSVCP60.dll_private:_bool___thiscall_std::basic_string_char__struct_std::char_traits_char___class_std::allocator_char__::_Grow_unsigned_int__bool_]
test al, al
je 0x41271e
mov eax, dword [ebp - 0x18]
mov ecx, dword [ebp - 0x14]
lea edi, [ecx + eax]
mov ecx, esi
mov esi, dword [ebp - 0x20]
mov edx, ecx
shr ecx, 2
rep movsd dword es:[edi], dword [esi]
mov ecx, edx
and ecx, 3
rep movsb byte es:[edi], byte [esi]
mov eax, dword [ebp - 0x18]
mov dword [ebp - 0x14], ebx
mov byte [eax + ebx], 0
mov ecx, dword [0x42b774]
push 0x40f9ffff
push ecx
call fcn.0040e290
movsx edx, byte [0x42b74f]
push 0x9ca3ffff
push edx
mov dword [0x42b76c], eax
call fcn.0040e4a0
mov dword [0x42b780], eax
movsx eax, word [0x42b75e]
push eax
push 0xc113ffff
call fcn.0040e3c0
lea ecx, [ebp - 0x5c]
mov word [0x42b762], ax
push ecx
call fcn.00404770
add esp, 0x1c
mov edx, dword [sym.imp.MSVCP60.dll_unsigned_int_const_std::basic_string_char__struct_std::char_traits_char___class_std::allocator_char__::npos]
mov byte [ebp - 4], 8
mov ecx, dword [edx]
push ecx
push 0
push eax
lea ecx, [ebp - 0x1c]
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__::append_class_std::basic_string_char__struct_std::char_traits_char___class_std::allocator_char___const___unsigned_int__unsigned_int_]
mov eax, dword [ebp - 0x58]
mov byte [ebp - 4], 6
test eax, eax
je 0x4127b0
lea ecx, [eax - 1]
mov al, byte [eax - 1]
test al, al
je 0x4127a7
cmp al, 0xff
je 0x4127a7
dec al
mov byte [ecx], al
jmp 0x4127b0
push ecx
call sub.MSVCRT.dll_void___cdecl_operator_delete_void__
add esp, 4
movsx dx, byte [0x42b74a]
mov eax, dword [0x42b770]
inc edx
mov word [0x42b756], dx
xor ecx, ecx
movsx edx, word [0x42b75c]
test eax, eax
setne cl
push eax
push edx
mov dword [0x42b768], ecx
call fcn.0040e380
push 0xbe1dffff
push 0x9bffff
mov dword [0x42b774], eax
call fcn.0040e450
mov dword [0x42b778], eax
mov al, byte [0x42b364]
sub al, 0x28
add esp, 0x10
and eax, 0xff
add eax, 3
and al, 0xfc
call fcn.004248b0
mov ecx, esp
mov edx, 0x42b364
call fcn.00422900
mov ebx, eax
or ecx, 0xffffffff
mov edi, ebx
xor eax, eax
repne scasb al, byte es:[edi]
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 [ebp - 0x14]
not ecx
dec ecx
mov esi, ecx
mov ecx, dword [eax]
sub ecx, edx
cmp ecx, esi
ja 0x412844
call dword [sym.imp.MSVCP60.dll_void___cdecl_std::_Xlen_void_]
test esi, esi
jbe 0x412889
mov edx, dword [ebp - 0x14]
push 0
lea ecx, [ebp - 0x1c]
lea eax, [edx + esi]
push eax
mov dword [ebp - 0x20], eax
call dword [sym.imp.MSVCP60.dll_private:_bool___thiscall_std::basic_string_char__struct_std::char_traits_char___class_std::allocator_char__::_Grow_unsigned_int__bool_]
test al, al
je 0x412889
mov eax, dword [ebp - 0x18]
mov ecx, dword [ebp - 0x14]
lea edi, [ecx + eax]
mov ecx, esi
mov edx, ecx
mov esi, ebx
shr ecx, 2
rep movsd dword es:[edi], dword [esi]
mov eax, dword [ebp - 0x20]
mov ecx, edx
and ecx, 3
rep movsb byte es:[edi], byte [esi]
mov ecx, dword [ebp - 0x18]
mov dword [ebp - 0x14], eax
mov byte [ecx + eax], 0
movsx edx, word [0x42b756]
push 0xdedfffff
push edx
call fcn.0040e3c0
mov dword [0x42b774], eax
push 0xf18fffff
movsx eax, byte [0x42b74a]
push eax
call fcn.0040e3c0
mov cx, word [0x42b75e]
mov dword [0x42b768], eax
neg cx
mov word [0x42b754], cx
mov edi, 0x42b360
or ecx, 0xffffffff
xor eax, eax
mov edx, dword [sym.imp.MSVCP60.dll_unsigned_int_const_std::basic_string_char__struct_std::char_traits_char___class_std::allocator_char__::npos]
add esp, 0x10
repne scasb al, byte es:[edi]
mov eax, dword [edx]
mov edx, dword [ebp - 0x14]
not ecx
dec ecx
sub eax, edx
mov esi, ecx
cmp eax, esi
ja 0x4128f3
call dword [sym.imp.MSVCP60.dll_void___cdecl_std::_Xlen_void_]
test esi, esi
jbe 0x412935
mov ecx, dword [ebp - 0x14]
push 0
lea ebx, [ecx + esi]
lea ecx, [ebp - 0x1c]
push ebx
call dword [sym.imp.MSVCP60.dll_private:_bool___thiscall_std::basic_string_char__struct_std::char_traits_char___class_std::allocator_char__::_Grow_unsigned_int__bool_]
test al, al
je 0x412935
mov edx, dword [ebp - 0x18]
mov eax, dword [ebp - 0x14]
mov ecx, esi
mov esi, 0x42b360
lea edi, [eax + edx]
mov edx, ecx
shr ecx, 2
rep movsd dword es:[edi], dword [esi]
mov ecx, edx
and ecx, 3
rep movsb byte es:[edi], byte [esi]
mov eax, dword [ebp - 0x18]
mov dword [ebp - 0x14], ebx
mov byte [eax + ebx], 0
movsx ecx, byte [0x42b74c]
movsx edx, byte [0x42b749]
movsx eax, word [0x42b756]
add ecx, edx
push eax
push 0xc03dffff
mov dword [0x42b77c], ecx
call fcn.0040e2f0
mov cx, word [0x42b752]
mov word [0x42b754], ax
mov al, byte [0x42b354]
add esp, 8
sub al, 0x28
dec cx
and eax, 0xff
mov word [0x42b758], cx
add eax, 3
and al, 0xfc
call fcn.004248b0
mov ecx, esp
mov edx, 0x42b354
call fcn.00422900
mov dword [ebp - 0x20], eax
mov edi, eax
or ecx, 0xffffffff
xor eax, eax
mov edx, dword [sym.imp.MSVCP60.dll_unsigned_int_const_std::basic_string_char__struct_std::char_traits_char___class_std::allocator_char__::npos]
repne scasb al, byte es:[edi]
mov eax, dword [edx]
mov edx, dword [ebp - 0x14]
not ecx
dec ecx
sub eax, edx
mov esi, ecx
cmp eax, esi
ja 0x4129c0
call dword [sym.imp.MSVCP60.dll_void___cdecl_std::_Xlen_void_]
test esi, esi
jbe 0x412a00
mov ecx, dword [ebp - 0x14]
push 0
lea ebx, [ecx + esi]
lea ecx, [ebp - 0x1c]
push ebx
call dword [sym.imp.MSVCP60.dll_private:_bool___thiscall_std::basic_string_char__struct_std::char_traits_char___class_std::allocator_char__::_Grow_unsigned_int__bool_]
test al, al
je 0x412a00
mov edx, dword [ebp - 0x18]
mov eax, dword [ebp - 0x14]
mov ecx, esi
mov esi, dword [ebp - 0x20]
lea edi, [eax + edx]
mov edx, ecx
shr ecx, 2
rep movsd dword es:[edi], dword [esi]
mov ecx, edx
and ecx, 3
rep movsb byte es:[edi], byte [esi]
mov eax, dword [ebp - 0x18]
mov dword [ebp - 0x14], ebx
mov byte [eax + ebx], 0
movsx ecx, word [0x42b752]
push 0xbcd9ffff
push ecx
call fcn.0040e340
movsx edx, byte [0x42b750]
push 0x42abffff
push edx
mov word [0x42b75e], ax
call fcn.0040e400
add esp, 0x10
mov word [0x42b760], ax
call fcn.00401390
mov eax, dword [eax*4 + 0x42b2a8]
mov al, byte [eax]
sub al, 0x28
and eax, 0xff
add eax, 3
and al, 0xfc
call fcn.004248b0
mov esi, esp
call fcn.00401390
mov edx, dword [eax*4 + 0x42b2a8]
mov ecx, esi
call fcn.00422900
mov dword [ebp - 0x20], eax
mov edi, eax
or ecx, 0xffffffff
xor eax, eax
repne scasb al, byte es:[edi]
not ecx
dec ecx
mov esi, ecx
mov ecx, 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 [ecx]
mov ecx, dword [ebp - 0x14]
sub edx, ecx
cmp edx, esi
ja 0x412a8f
call dword [sym.imp.MSVCP60.dll_void___cdecl_std::_Xlen_void_]
test esi, esi
jbe 0x412acf
mov eax, dword [ebp - 0x14]
push 0
lea ecx, [ebp - 0x1c]
lea ebx, [eax + esi]
push ebx
call dword [sym.imp.MSVCP60.dll_private:_bool___thiscall_std::basic_string_char__struct_std::char_traits_char___class_std::allocator_char__::_Grow_unsigned_int__bool_]
test al, al
je 0x412acf
mov ecx, dword [ebp - 0x18]
mov edx, dword [ebp - 0x14]
lea edi, [edx + ecx]
mov ecx, esi
mov esi, dword [ebp - 0x20]
mov eax, ecx
shr ecx, 2
rep movsd dword es:[edi], dword [esi]
mov ecx, eax
and ecx, 3
rep movsb byte es:[edi], byte [esi]
mov ecx, dword [ebp - 0x18]
mov dword [ebp - 0x14], ebx
mov byte [ecx + ebx], 0
movsx edx, byte [0x42b74c]
mov esi, dword [0x42b768]
push 0x84efffff
add edx, esi
push 0xf0dfffff
mov dword [0x42b770], edx
call fcn.0040e450
mov ecx, dword [0x42b76c]
mov word [0x42b75e], ax
movsx eax, byte [0x42b74c]
push eax
push ecx
call fcn.0040e450
lea edx, [ebp - 0x4c]
mov dword [0x42b76c], eax
push edx
push 8
call fcn.0040f5c0
push 0xa1d5ffff
push 0x5191ffff
call fcn.0040e340
movsx ecx, byte [0x42b74e]
mov word [0x42b758], ax
movsx eax, byte [0x42b749]
push eax
push ecx
call fcn.0040e340
mov word [0x42b75a], ax
xor eax, eax
mov edi, 0x42b360
or ecx, 0xffffffff
add esp, 0x28
mov dl, byte [ebp + 0xb]
repne scasb al, byte es:[edi]
not ecx
dec ecx
mov dword [0x42b77c], 0xc4980000
push ecx
push 0x42b360
lea ecx, [ebp - 0x34]
mov byte [ebp - 0x34], dl
mov dword [ebp - 0x30], eax
mov dword [ebp - 0x2c], eax
mov dword [ebp - 0x28], 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_char_const___unsigned_int_]
mov eax, dword [0x42b76c]
mov byte [ebp - 4], 9
push eax
push 0x26d1ffff
call fcn.0040e340
push 0xedc1ffff
push 0xa7d7ffff
mov dword [0x42b774], eax
call fcn.0040e380
mov edx, dword [ebp - 0x4c]
lea ecx, [ebp - 0x34]
push ecx
push edx
mov word [0x42b75a], ax
call fcn.0041e040
add esp, 0x18
test eax, eax
jne 0x412db8
movsx eax, word [0x42b762]
movsx ecx, word [0x42b754]
imul eax, ecx
mov edx, dword [0x42b788]
push eax
push edx
mov dword [0x42b77c], eax
call fcn.0040e2f0
mov dword [0x42b76c], eax
lea ecx, [ebp - 0x20]
movsx ax, byte [0x42b749]
neg eax
push ecx
push 2
mov word [0x42b75a], ax
call fcn.0040f5c0
movsx edx, word [0x42b760]
push edx
push 0xc277ffff
call fcn.0040e2f0
mov byte [0x42b74f], al
lea eax, [ebp - 0x24]
push eax
push 3
call fcn.0040f5c0
movsx ecx, word [0x42b762]
push 0x2c8bffff
push ecx
call fcn.0040e340
mov edx, dword [0x42b77c]
mov word [0x42b75a], ax
movsx eax, byte [0x42b750]
push edx
push eax
call fcn.0040e340
mov cl, byte [0x42b760]
mov bl, byte [0x42b75e]
mov word [0x42b75c], ax
mov eax, dword [ebp - 0x20]
lea edx, [ebp - 0x60]
and cl, bl
push edx
push eax
mov byte [0x42b74b], cl
call fcn.0041e840
add esp, 0x38
test eax, eax
je 0x412cf9
mov edx, dword [ebp - 0x24]
lea ecx, [ebp - 0x60]
push ecx
push edx
call fcn.0041e840
add esp, 8
test eax, eax
je 0x412cf9
push 0x876dffff
push 0x4851ffff
call fcn.0040e290
mov byte [0x42b74d], al
mov edi, 0x42b350
movsx eax, word [0x42b75c]
add eax, 0x49d3ffff
or ecx, 0xffffffff
mov dword [0x42b774], eax
xor eax, eax
add esp, 8
mov byte [0x42b750], 0
repne scasb al, byte es:[edi]
not ecx
dec ecx
push 1
mov ebx, ecx
lea ecx, [ebp - 0x34]
push ebx
call dword [sym.imp.MSVCP60.dll_private:_bool___thiscall_std::basic_string_char__struct_std::char_traits_char___class_std::allocator_char__::_Grow_unsigned_int__bool_]
test al, al
je 0x412d3c
mov ecx, ebx
mov esi, 0x42b350
jmp 0x412d21
mov edi, 0x42b360
or ecx, 0xffffffff
xor eax, eax
push 1
repne scasb al, byte es:[edi]
not ecx
dec ecx
mov ebx, ecx
lea ecx, [ebp - 0x34]
push ebx
call dword [sym.imp.MSVCP60.dll_private:_bool___thiscall_std::basic_string_char__struct_std::char_traits_char___class_std::allocator_char__::_Grow_unsigned_int__bool_]
test al, al
je 0x412d3c
mov ecx, ebx
mov esi, 0x42b360
mov edi, dword [ebp - 0x30]
mov edx, ecx
shr ecx, 2
rep movsd dword es:[edi], dword [esi]
mov ecx, edx
and ecx, 3
rep movsb byte es:[edi], byte [esi]
mov eax, dword [ebp - 0x30]
mov dword [ebp - 0x2c], ebx
mov byte [eax + ebx], 0
movsx ecx, byte [0x42b74a]
movsx eax, byte [0x42b749]
mov edx, dword [0x42b778]
or ecx, 0x2e51ffff
push edx
push eax
mov dword [0x42b780], ecx
call fcn.0040e2c0
mov edx, dword [ebp - 0x4c]
lea ecx, [ebp - 0x34]
push ecx
push edx
mov byte [0x42b74c], al
mov dword [0x42b77c], 1
call fcn.0041e560
mov eax, dword [0x42b76c]
push 0xdfc1ffff
push eax
call fcn.0040e2f0
mov word [0x42b75c], ax
mov eax, dword [0x42b778]
push eax
push eax
call fcn.0040e380
mov cl, byte [0x42b75c]
add esp, 0x20
neg cl
mov word [0x42b75e], ax
mov byte [0x42b74b], cl
mov al, byte [0x42b348]
mov dl, byte [0x42b762]
mov bl, byte [0x42b74d]
sub al, 0x28
and eax, 0xff
or dl, bl
add eax, 3
mov byte [0x42b74a], dl
and al, 0xfc
call fcn.004248b0
mov ecx, esp
mov edx, 0x42b348
call fcn.00422900
mov dword [ebp - 0x24], eax
mov edi, eax
or ecx, 0xffffffff
xor eax, eax
repne scasb al, byte es:[edi]
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 [ebp - 0x14]
not ecx
dec ecx
mov esi, ecx
mov ecx, dword [eax]
sub ecx, edx
cmp ecx, esi
ja 0x412e15
call dword [sym.imp.MSVCP60.dll_void___cdecl_std::_Xlen_void_]
test esi, esi
jbe 0x412e55
mov edx, dword [ebp - 0x14]
push 0
lea ecx, [ebp - 0x1c]
lea ebx, [edx + esi]
push ebx
call dword [sym.imp.MSVCP60.dll_private:_bool___thiscall_std::basic_string_char__struct_std::char_traits_char___class_std::allocator_char__::_Grow_unsigned_int__bool_]
test al, al
je 0x412e55
mov eax, dword [ebp - 0x18]
mov ecx, dword [ebp - 0x14]
lea edi, [ecx + eax]
mov ecx, esi
mov esi, dword [ebp - 0x24]
mov edx, ecx
shr ecx, 2
rep movsd dword es:[edi], dword [esi]
mov ecx, edx
and ecx, 3
rep movsb byte es:[edi], byte [esi]
mov eax, dword [ebp - 0x18]
mov dword [ebp - 0x14], ebx
mov byte [eax + ebx], 0
movsx cx, byte [0x42b749]
push 0xde1ffff
push 0x246bffff
mov word [0x42b754], cx
call fcn.0040e380
push 0x8f5bffff
push 0xb2c5ffff
mov byte [0x42b750], al
call fcn.0040e4a0
mov edx, dword [sym.imp.MSVCP60.dll_unsigned_int_const_std::basic_string_char__struct_std::char_traits_char___class_std::allocator_char__::npos]
mov ecx, dword [ebp - 0x2c]
mov dword [0x42b784], eax
add esp, 0x10
mov eax, dword [edx]
mov esi, eax
cmp ecx, esi
jae 0x412ea2
mov esi, ecx
sub eax, dword [ebp - 0x14]
cmp eax, esi
ja 0x412eaf
call dword [sym.imp.MSVCP60.dll_void___cdecl_std::_Xlen_void_]
test esi, esi
jbe 0x412efa
mov eax, dword [ebp - 0x14]
push 0
lea ecx, [ebp - 0x1c]
lea ebx, [eax + esi]
push ebx
call dword [sym.imp.MSVCP60.dll_private:_bool___thiscall_std::basic_string_char__struct_std::char_traits_char___class_std::allocator_char__::_Grow_unsigned_int__bool_]
test al, al
je 0x412efa
mov eax, dword [ebp - 0x30]
test eax, eax
jne 0x412ed5
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]
mov ecx, dword [ebp - 0x18]
mov edx, dword [ebp - 0x14]
push ebx
lea edi, [edx + ecx]
mov ecx, esi
mov esi, eax
mov eax, ecx
shr ecx, 2
rep movsd dword es:[edi], dword [esi]
mov ecx, eax
and ecx, 3
rep movsb byte es:[edi], byte [esi]
lea ecx, [ebp - 0x1c]
call dword [sym.imp.MSVCP60.dll_private:_void___thiscall_std::basic_string_char__struct_std::char_traits_char___class_std::allocator_char__::_Eos_unsigned_int_]
mov al, byte [0x42b33c]
mov dword [0x42b784], 1
sub al, 0x28
and eax, 0xff
add eax, 3
and al, 0xfc
call fcn.004248b0
mov ecx, esp
mov edx, 0x42b33c
call fcn.00422900
mov dword [ebp - 0x24], eax
mov edi, eax
or ecx, 0xffffffff
xor eax, eax
repne scasb al, byte es:[edi]
not ecx
dec ecx
mov esi, ecx
mov ecx, 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 [ecx]
mov ecx, dword [ebp - 0x14]
sub edx, ecx
cmp edx, esi
ja 0x412f4e
call dword [sym.imp.MSVCP60.dll_void___cdecl_std::_Xlen_void_]
test esi, esi
jbe 0x412f8e
mov eax, dword [ebp - 0x14]
push 0
lea ecx, [ebp - 0x1c]
lea ebx, [eax + esi]
push ebx
call dword [sym.imp.MSVCP60.dll_private:_bool___thiscall_std::basic_string_char__struct_std::char_traits_char___class_std::allocator_char__::_Grow_unsigned_int__bool_]
test al, al
je 0x412f8e
mov ecx, dword [ebp - 0x18]
mov edx, dword [ebp - 0x14]
lea edi, [edx + ecx]
mov ecx, esi
mov esi, dword [ebp - 0x24]
mov eax, ecx
shr ecx, 2
rep movsd dword es:[edi], dword [esi]
mov ecx, eax
and ecx, 3
rep movsb byte es:[edi], byte [esi]
mov ecx, dword [ebp - 0x18]
mov dword [ebp - 0x14], ebx
mov byte [ecx + ebx], 0
movsx edx, byte [0x42b74e]
push edx
push 0x6673ffff
call fcn.0040e2c0
mov word [0x42b75c], ax
mov eax, dword [0x42b768]
push 0x82a5ffff
push eax
call fcn.0040e450
lea ecx, [ebp - 0x5c]
mov byte [0x42b74c], al
push ecx
call fcn.004048d0
add esp, 0x14
mov edi, eax
mov edx, dword [sym.imp.MSVCP60.dll_unsigned_int_const_std::basic_string_char__struct_std::char_traits_char___class_std::allocator_char__::npos]
mov ecx, dword [edi + 8]
mov byte [ebp - 4], 0xa
mov eax, dword [edx]
mov esi, eax
cmp ecx, esi
jae 0x412fe0
mov esi, ecx
sub eax, dword [ebp - 0x14]
cmp eax, esi
ja 0x412fed
call dword [sym.imp.MSVCP60.dll_void___cdecl_std::_Xlen_void_]
test esi, esi
jbe 0x413038
mov eax, dword [ebp - 0x14]
push 0
lea ecx, [ebp - 0x1c]
lea ebx, [eax + esi]
push ebx
call dword [sym.imp.MSVCP60.dll_private:_bool___thiscall_std::basic_string_char__struct_std::char_traits_char___class_std::allocator_char__::_Grow_unsigned_int__bool_]
test al, al
je 0x413038
mov eax, dword [edi + 4]
test eax, eax
jne 0x413013
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]
mov ecx, dword [ebp - 0x18]
mov edx, dword [ebp - 0x14]
push ebx
lea edi, [edx + ecx]
mov ecx, esi
mov esi, eax
mov eax, ecx
shr ecx, 2
rep movsd dword es:[edi], dword [esi]
mov ecx, eax
and ecx, 3
rep movsb byte es:[edi], byte [esi]
lea ecx, [ebp - 0x1c]
call dword [sym.imp.MSVCP60.dll_private:_void___thiscall_std::basic_string_char__struct_std::char_traits_char___class_std::allocator_char__::_Eos_unsigned_int_]
mov eax, dword [ebp - 0x58]
mov byte [ebp - 4], 9
test eax, eax
je 0x413060
lea ecx, [eax - 1]
mov al, byte [eax - 1]
test al, al
je 0x413057
cmp al, 0xff
je 0x413057
dec al
mov byte [ecx], al
jmp 0x413060
push ecx
call sub.MSVCRT.dll_void___cdecl_operator_delete_void__
add esp, 4
mov esi, dword [ebp + 8]
mov cl, byte [ebp - 0x1c]
xor eax, eax
mov word [0x42b752], 0xffff
mov byte [esi], cl
mov dword [esi + 4], eax
mov dword [esi + 8], eax
mov dword [esi + 0xc], eax
mov edx, dword [sym.imp.MSVCP60.dll_unsigned_int_const_std::basic_string_char__struct_std::char_traits_char___class_std::allocator_char__::npos]
mov ecx, dword [edx]
lea edx, [ebp - 0x1c]
push ecx
push eax
push edx
mov ecx, esi
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 [ebp - 0x30]
xor edi, edi
cmp ecx, edi
je 0x4130b7
mov al, byte [ecx - 1]
test al, al
je 0x4130ad
cmp al, 0xff
je 0x4130ad
dec al
mov byte [ecx - 1], al
jmp 0x4130b7
dec ecx
push ecx
call sub.MSVCRT.dll_void___cdecl_operator_delete_void__
add esp, 4
mov ecx, dword [ebp - 0x6c]
mov dword [ebp - 0x30], edi
cmp ecx, edi
mov dword [ebp - 0x2c], edi
mov dword [ebp - 0x28], edi
je 0x4130e3
mov al, byte [ecx - 1]
test al, al
je 0x4130d9
cmp al, 0xff
je 0x4130d9
dec al
mov byte [ecx - 1], al
jmp 0x4130e3
dec ecx
push ecx
call sub.MSVCRT.dll_void___cdecl_operator_delete_void__
add esp, 4
mov ecx, dword [ebp - 0x40]
mov dword [ebp - 0x6c], edi
cmp ecx, edi
mov dword [ebp - 0x68], edi
mov dword [ebp - 0x64], edi
je 0x41310f
mov al, byte [ecx - 1]
test al, al
je 0x413105
cmp al, 0xff
je 0x413105
dec al
mov byte [ecx - 1], al
jmp 0x41310f
dec ecx
push ecx
call sub.MSVCRT.dll_void___cdecl_operator_delete_void__
add esp, 4
mov ecx, dword [ebp - 0x18]
mov dword [ebp - 0x40], edi
cmp ecx, edi
mov dword [ebp - 0x3c], edi
mov dword [ebp - 0x38], edi
je 0x41313b
mov al, byte [ecx - 1]
test al, al
je 0x413131
cmp al, 0xff
je 0x413131
dec al
mov byte [ecx - 1], al
jmp 0x41313b
dec ecx
push ecx
call sub.MSVCRT.dll_void___cdecl_operator_delete_void__
add esp, 4
mov ecx, dword [ebp - 0xc]
lea esp, [ebp - 0xc94]
mov eax, esi
mov dword fs:[0], ecx
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret