Function at 0x43a7d0
Capabilities:
Parse credit card information
Resolve function by parsing pe exports

Disassembly:
push 0xffffffffffffffff
push 0x461b60
mov eax, dword fs:[0]
push eax
mov dword fs:[0], esp
sub esp, 0xa4
mov edx, dword [esp + 0xb8]
push ebp
mov ebp, dword [esp + 0xb8]
xor ecx, ecx
push esi
push edi
mov eax, dword [ebp + 8]
mov dword [edx + 0xc], ecx
mov dword [edx + 4], eax
mov eax, dword [ebp + 8]
mov edi, dword [ebp + 0xc]
mov dword [esp + 0x1c], eax
add edi, eax
xor esi, esi
mov dword [esp + 0x10], ecx
mov dword [esp + 0x14], ecx
mov al, byte [edi]
mov dword [esp + 0xc], 0xffffffff
test al, al
mov dword [esp + 0x18], ecx
mov dword [esp + 0x20], esi
mov dword [esp + 0x28], ecx
mov dword [esp + 0x2c], ecx
mov dword [esp + 0x24], edi
jne 0x43a84e
mov dword [edx + 8], ecx
mov dword [edx], ecx
mov eax, 0xfffffffe
jmp 0x43b771
push ebx
movsx ebx, byte [edi]
cmp ebx, ecx
je 0x43b55e
cmp esi, ecx
je 0x43a91f
movsx ecx, bl
push ecx
push 0x475e08
call dword [sym.imp.MSVCRT.dll_strchr]
add esp, 8
test eax, eax
je 0x43a908
mov ecx, dword [esp + 0xc4]
mov edx, dword [esp + 0x10]
mov ebp, edi
mov eax, dword [ecx + 0xc]
sub ebp, eax
sub ebp, esi
test edx, edx
jne 0x43a89f
lea eax, [esi + ebp - 1]
mov dword [ecx], esi
mov dword [ecx + 4], eax
jmp 0x43a8ef
mov ecx, dword [esp + 0xc8]
push 1
add ecx, 0x10
push ebp
add esi, 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 0x43a8eb
mov edx, dword [esp + 0xc8]
mov ecx, ebp
mov edi, dword [edx + 0x14]
lea eax, [edx + 0x10]
mov edx, ecx
shr ecx, 2
rep movsd dword es:[edi], dword [esi]
mov ecx, edx
mov edx, dword [esp + 0x10]
and ecx, 3
rep movsb byte es:[edi], byte [esi]
mov edi, dword [esp + 0x28]
mov dword [eax + 8], ebp
mov eax, dword [eax + 4]
mov byte [eax + ebp], 0
add eax, ebp
jmp 0x43a8ef
mov edx, dword [esp + 0x10]
mov ebp, dword [esp + 0xc4]
xor esi, esi
mov dword [esp + 0x24], esi
mov dword [esp + 0x30], esi
mov dword [esp + 0x2c], esi
xor ecx, ecx
jmp 0x43a923
push edi
call dword [sym.imp.MSVCRT.dll__mbclen]
add edi, eax
add esp, 4
mov dword [esp + 0x28], edi
xor ecx, ecx
jmp 0x43a84f
mov edx, dword [esp + 0x10]
cmp dword [esp + 0x18], ecx
je 0x43ab56
cmp ebx, 0x3e
jne 0x43a9e9
mov ecx, dword [esp + 0x14]
test cl, 0xc0
jne 0x43aa04
mov ebx, dword [ebp + 0xc]
mov eax, edi
sub eax, ebx
mov ebx, dword [esp + 0x1c]
cmp ebx, 1
mov dword [esp + 0x20], eax
jne 0x43a99c
cmp edx, ebx
mov dword [esp + 0x18], 0
jne 0x43a9db
cmp dword [esp + 0x2c], 0x2f
jne 0x43a9db
mov eax, dword [esp + 0x30]
test eax, eax
je 0x43a98c
movsx eax, al
push eax
push 0x475e00
call dword [sym.imp.MSVCRT.dll_strchr]
mov ecx, dword [esp + 0x1c]
add esp, 8
test eax, eax
je 0x43a9db
mov eax, dword [esp + 0xc8]
or dword [eax + 0xc], 0x10000
jmp 0x43a9db
cmp eax, ebx
jle 0x43b060
mov ebp, dword [esp + 0x1c]
sub edi, ebp
dec ebp
test ebp, ebp
lea eax, [edi + 1]
je 0x43a9cf
mov edi, dword [esp + 0x18]
sub edi, eax
mov cl, byte [eax]
mov dl, byte [edi + eax]
inc eax
cmp cl, dl
jne 0x43a9c7
dec ebp
jne 0x43a9b8
jmp 0x43a9cf
test ebp, ebp
jne 0x43b05c
mov ecx, dword [esp + 0x14]
mov dword [esp + 0x18], 0
test cl, 0x20
je 0x43b74c
jmp 0x43b058
cmp ebx, 0x3c
jne 0x43aa00
cmp edx, 2
je 0x43b718
cmp edx, 0xffffffff
je 0x43b718
mov ecx, dword [esp + 0x14]
test dl, 1
je 0x43ab12
test cl, 0xc0
je 0x43aa65
cmp ebx, 0x22
jne 0x43aa3b
test cl, 0x80
je 0x43ab01
xor ecx, 0x80
mov dword [esp + 0x14], ecx
mov ecx, dword [esp + 0x2c]
mov dword [esp + 0x30], ecx
mov dword [esp + 0x2c], ebx
jmp 0x43b060
cmp ebx, 0x27
jne 0x43ab01
test cl, 0x40
je 0x43ab01
xor ecx, 0x40
mov dword [esp + 0x14], ecx
mov ecx, dword [esp + 0x2c]
mov dword [esp + 0x30], ecx
mov dword [esp + 0x2c], ebx
jmp 0x43b060
cmp ebx, 0x22
jne 0x43aa8e
test ch, 1
je 0x43ab01
xor ecx, 0x180
mov dword [esp + 0x14], ecx
mov ecx, dword [esp + 0x2c]
mov dword [esp + 0x30], ecx
mov dword [esp + 0x2c], ebx
jmp 0x43b060
cmp ebx, 0x27
jne 0x43aab3
test ch, 1
je 0x43ab01
xor ecx, 0x140
mov dword [esp + 0x14], ecx
mov ecx, dword [esp + 0x2c]
mov dword [esp + 0x30], ecx
mov dword [esp + 0x2c], ebx
jmp 0x43b060
cmp ebx, 0x3d
jne 0x43aade
mov eax, dword [esp + 0x2c]
cmp eax, ebx
je 0x43aade
test ch, 1
jne 0x43aae3
xor ecx, 0x100
mov dword [esp + 0x2c], ebx
mov dword [esp + 0x14], ecx
mov ecx, eax
mov dword [esp + 0x30], ecx
jmp 0x43b060
test ch, 1
je 0x43ab01
movsx eax, bl
push eax
push 0x475d28
call dword [sym.imp.MSVCRT.dll_strchr]
add esp, 8
test eax, eax
jne 0x43ab01
xor dword [esp + 0x14], 0x100
mov ecx, dword [esp + 0x2c]
mov dword [esp + 0x2c], ebx
mov dword [esp + 0x30], ecx
jmp 0x43b060
test dl, 0x40
je 0x43b060
cmp ebx, 0x22
jne 0x43ab38
test byte [esp + 0x14], 0x40
jne 0x43b060
xor dword [esp + 0x14], 0x80
jmp 0x43b060
cmp ebx, 0x27
jne 0x43b060
test byte [esp + 0x14], 0x80
jne 0x43b060
xor dword [esp + 0x14], 0x40
jmp 0x43b060
mov eax, dword [esp + 0x14]
cmp eax, ecx
je 0x43b51d
test al, 0x10
je 0x43abab
cmp ebx, 0x3c
je 0x43b722
movsx edx, bl
push edx
push 0x475d28
call dword [sym.imp.MSVCRT.dll_strchr]
add esp, 8
test eax, eax
jne 0x43b060
xor dword [esp + 0x14], 0x10
mov dword [esp + 0x18], 0x475dfc
mov dword [esp + 0x1c], 1
mov dword [esp + 0x10], 2
jmp 0x43b060
test al, 1
je 0x43ae06
mov edx, 1
xor eax, edx
cmp ebx, 0x60
mov dword [esp + 0x14], eax
ja 0x43ade6
cmp ebx, 0x40
jbe 0x43abd5
cmp ebx, 0x5b
jb 0x43ade6
cmp ebx, 0x5f
je 0x43ade6
cmp ebx, 0x3a
je 0x43ade6
cmp ebx, 0x2f
jne 0x43ac0d
mov dword [esp + 0x10], ecx
mov ecx, dword [ebp + 0xc]
mov esi, edi
mov dword [esp + 0x18], 0x475df8
sub esi, ecx
mov dword [esp + 0x1c], edx
inc esi
mov dword [esp + 0x24], esi
jmp 0x43b060
cmp ebx, 0x21
jne 0x43ac1d
or al, 2
mov dword [esp + 0x14], eax
jmp 0x43b060
cmp ebx, 0x3f
jne 0x43ac4b
mov ecx, dword [ebp + 0xc]
mov esi, edi
sub esi, ecx
mov dword [esp + 0x18], 0x475df4
inc esi
mov dword [esp + 0x1c], 2
mov dword [esp + 0x10], 0x10
mov dword [esp + 0x24], esi
jmp 0x43b060
mov eax, dword [esp + 0xc8]
mov edi, 0x475de8
or ecx, 0xffffffff
push 1
lea ebp, [eax + 0x10]
xor eax, eax
repne scasb al, byte es:[edi]
not ecx
dec ecx
mov dword [esp + 0x1c], 0x475df8
mov ebx, ecx
mov ecx, ebp
push ebx
mov dword [esp + 0x24], 1
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 0x43aca8
mov edi, dword [ebp + 4]
mov ecx, ebx
mov edx, ecx
mov esi, 0x475de8
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 + 4]
mov dword [ebp + 8], ebx
add eax, ebx
mov byte [eax], 0
mov edi, 0x475dd4
or ecx, 0xffffffff
xor eax, eax
mov edx, dword [ebp + 8]
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 0x43accf
call dword [sym.imp.MSVCP60.dll_void___cdecl_std::_Xlen_void_]
test esi, esi
jbe 0x43ad12
mov ecx, dword [ebp + 8]
mov ebx, esi
xor edi, edi
add ebx, ecx
push edi
push ebx
mov ecx, ebp
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 0x43ad14
mov edi, dword [ebp + 4]
mov ecx, dword [ebp + 8]
add edi, ecx
mov ecx, esi
mov edx, ecx
mov esi, 0x475dd4
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 + 4]
mov dword [ebp + 8], ebx
add eax, ebx
mov byte [eax], 0
xor edi, edi
mov eax, dword [esp + 0x20]
lea ecx, [esp + 0x94]
push eax
push ecx
call fcn.0043a3c0
push eax
lea edx, [esp + 0x80]
push str.SSD
push edx
mov dword [esp + 0xd0], 2
call sub.MSVCP60.dll_class_std::basic_string_char__struct_std::char_traits_char___class_std::allocator_char_____cdecl_std::operator_char_const___class_std::basic_string_char__struct_std::char_traits_char___class_std::allocator_char___const__
add esp, 0x14
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 [esp + 0xbc], 3
mov edx, dword [ecx]
mov ecx, ebp
push edx
push edi
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 [esp + 0x78]
cmp eax, edi
je 0x43ad87
lea ecx, [eax - 1]
mov al, byte [eax - 1]
test al, al
je 0x43ad7e
cmp al, 0xff
je 0x43ad7e
dec al
mov byte [ecx], al
jmp 0x43ad87
push ecx
call sub.MFC42.DLL_operatordelete
add esp, 4
mov eax, dword [esp + 0x98]
or esi, 0xffffffff
cmp eax, edi
mov dword [esp + 0x78], edi
mov dword [esp + 0x7c], edi
mov dword [esp + 0x80], edi
mov dword [esp + 0xbc], esi
je 0x43adc8
lea ecx, [eax - 1]
mov al, byte [eax - 1]
test al, al
je 0x43adbf
cmp al, 0xff
je 0x43adbf
dec al
mov byte [ecx], al
jmp 0x43adc8
push ecx
call sub.MFC42.DLL_operatordelete
add esp, 4
mov dword [esp + 0x98], edi
mov dword [esp + 0x9c], edi
mov dword [esp + 0xa0], edi
mov dword [esp + 0x10], esi
jmp 0x43b058
mov eax, dword [ebp + 0xc]
mov esi, edi
sub esi, eax
mov dword [esp + 0x18], 0x475df8
mov dword [esp + 0x1c], edx
mov dword [esp + 0x10], edx
mov dword [esp + 0x24], esi
jmp 0x43b060
test al, 2
je 0x43b07e
xor eax, 2
cmp ebx, 0x2d
mov dword [esp + 0x14], eax
jne 0x43ae25
or al, 4
mov dword [esp + 0x14], eax
jmp 0x43b060
cmp ebx, 0x5b
jne 0x43ae39
test al, 0x20
jne 0x43ae4d
or al, 8
mov dword [esp + 0x14], eax
jmp 0x43b060
cmp ebx, 0x44
jne 0x43ae4d
test al, 0x20
jne 0x43ae4d
or al, 0x20
mov dword [esp + 0x14], eax
jmp 0x43b060
movsx eax, bl
push eax
push 0x475dc4
call dword [sym.imp.MSVCRT.dll_strchr]
add esp, 8
mov dword [esp + 0x18], 0x475df8
test eax, eax
mov dword [esp + 0x1c], 1
je 0x43ae80
mov dword [esp + 0x10], 0x40
jmp 0x43b060
mov ecx, dword [esp + 0xc8]
mov edi, 0x475de8
xor eax, eax
push 1
lea ebp, [ecx + 0x10]
or ecx, 0xffffffff
repne scasb al, byte es:[edi]
not ecx
dec ecx
mov ebx, ecx
mov ecx, ebp
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 0x43aecd
mov edi, dword [ebp + 4]
mov ecx, ebx
mov edx, ecx
mov esi, 0x475de8
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 + 4]
mov dword [ebp + 8], ebx
add ebx, eax
mov byte [ebx], 0
mov edi, 0x475dbc
or ecx, 0xffffffff
xor eax, eax
mov edx, dword [ebp + 8]
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 edi, ecx
mov ecx, dword [eax]
sub ecx, edx
mov dword [esp + 0x10], edi
cmp ecx, edi
ja 0x43aef8
call dword [sym.imp.MSVCP60.dll_void___cdecl_std::_Xlen_void_]
xor esi, esi
cmp edi, esi
jbe 0x43af3d
mov ebx, dword [ebp + 8]
push esi
add ebx, edi
mov ecx, ebp
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 0x43af3d
mov edi, dword [ebp + 8]
mov ecx, dword [ebp + 4]
add edi, ecx
mov ecx, dword [esp + 0x10]
mov edx, ecx
mov esi, 0x475dbc
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 + 4]
mov dword [ebp + 8], ebx
add eax, ebx
xor esi, esi
mov byte [eax], 0
mov eax, dword [esp + 0x20]
lea ecx, [esp + 0x54]
push eax
push ecx
call fcn.0043a3c0
push eax
lea edx, [esp + 0x70]
push str.SSD
push edx
mov dword [esp + 0xd0], 4
call sub.MSVCP60.dll_class_std::basic_string_char__struct_std::char_traits_char___class_std::allocator_char_____cdecl_std::operator_char_const___class_std::basic_string_char__struct_std::char_traits_char___class_std::allocator_char___const__
mov ecx, eax
add esp, 0x14
mov dword [esp + 0x10], ecx
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 ecx, dword [ecx + 8]
mov byte [esp + 0xbc], 5
mov eax, dword [eax]
mov edi, eax
cmp ecx, edi
jae 0x43af8a
mov edi, ecx
sub eax, dword [ebp + 8]
cmp eax, edi
ja 0x43af97
call dword [sym.imp.MSVCP60.dll_void___cdecl_std::_Xlen_void_]
cmp edi, esi
jbe 0x43afe8
mov ecx, dword [ebp + 8]
mov ebx, edi
add ebx, ecx
push esi
push ebx
mov ecx, ebp
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 0x43afe8
mov ecx, dword [esp + 0x10]
mov eax, dword [ecx + 4]
cmp eax, esi
mov esi, 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]
je 0x43afc3
mov esi, eax
mov eax, dword [ebp + 4]
mov ecx, dword [ebp + 8]
add eax, ecx
mov ecx, edi
mov edx, ecx
mov edi, eax
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]
mov ecx, ebp
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_]
xor esi, esi
mov eax, dword [esp + 0x68]
cmp eax, esi
je 0x43b00d
lea ecx, [eax - 1]
mov al, byte [eax - 1]
test al, al
je 0x43b004
cmp al, 0xff
je 0x43b004
dec al
mov byte [ecx], al
jmp 0x43b00d
push ecx
call sub.MFC42.DLL_operatordelete
add esp, 4
mov eax, dword [esp + 0x58]
or edi, 0xffffffff
cmp eax, esi
mov dword [esp + 0x68], esi
mov dword [esp + 0x6c], esi
mov dword [esp + 0x70], esi
mov dword [esp + 0xbc], edi
je 0x43b048
lea ecx, [eax - 1]
mov al, byte [eax - 1]
test al, al
je 0x43b03f
cmp al, 0xff
je 0x43b03f
dec al
mov byte [ecx], al
jmp 0x43b048
push ecx
call sub.MFC42.DLL_operatordelete
add esp, 4
mov dword [esp + 0x58], esi
mov dword [esp + 0x5c], esi
mov dword [esp + 0x60], esi
mov dword [esp + 0x10], edi
mov esi, dword [esp + 0x24]
mov edi, dword [esp + 0x28]
push edi
call dword [sym.imp.MSVCRT.dll__mbclen]
mov ebp, dword [esp + 0xc8]
add edi, eax
add esp, 4
mov dword [esp + 0x28], edi
xor ecx, ecx
jmp 0x43a84f
test al, 4
je 0x43b2a4
xor eax, 4
cmp ebx, 0x2d
mov dword [esp + 0x14], eax
jne 0x43b0ac
mov dword [esp + 0x18], 0x475db8
mov dword [esp + 0x1c], 3
mov dword [esp + 0x10], 0x20
jmp 0x43b060
mov eax, dword [esp + 0xc8]
mov edi, 0x475de8
or ecx, 0xffffffff
push 1
lea ebp, [eax + 0x10]
xor eax, eax
repne scasb al, byte es:[edi]
not ecx
dec ecx
mov dword [esp + 0x1c], 0x475df8
mov ebx, ecx
mov ecx, ebp
push ebx
mov dword [esp + 0x24], 1
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 0x43b109
mov edi, dword [ebp + 4]
mov ecx, ebx
mov edx, ecx
mov esi, 0x475de8
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 + 4]
mov dword [ebp + 8], ebx
add ebx, eax
mov byte [ebx], 0
mov edi, 0x475dac
or ecx, 0xffffffff
xor eax, eax
mov edx, dword [ebp + 8]
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 edi, ecx
mov ecx, dword [eax]
sub ecx, edx
mov dword [esp + 0x10], edi
cmp ecx, edi
ja 0x43b134
call dword [sym.imp.MSVCP60.dll_void___cdecl_std::_Xlen_void_]
xor esi, esi
cmp edi, esi
jbe 0x43b179
mov ebx, dword [ebp + 8]
push esi
add ebx, edi
mov ecx, ebp
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 0x43b179
mov edi, dword [ebp + 8]
mov ecx, dword [ebp + 4]
add edi, ecx
mov ecx, dword [esp + 0x10]
mov edx, ecx
mov esi, 0x475dac
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 + 4]
mov dword [ebp + 8], ebx
add eax, ebx
xor esi, esi
mov byte [eax], 0
mov eax, dword [esp + 0x20]
lea ecx, [esp + 0x34]
push eax
push ecx
call fcn.0043a3c0
push eax
lea edx, [esp + 0x50]
push str.SSD
push edx
mov dword [esp + 0xd0], 6
call sub.MSVCP60.dll_class_std::basic_string_char__struct_std::char_traits_char___class_std::allocator_char_____cdecl_std::operator_char_const___class_std::basic_string_char__struct_std::char_traits_char___class_std::allocator_char___const__
mov ecx, eax
add esp, 0x14
mov dword [esp + 0x10], ecx
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 ecx, dword [ecx + 8]
mov byte [esp + 0xbc], 7
mov eax, dword [eax]
mov edi, eax
cmp ecx, edi
jae 0x43b1c6
mov edi, ecx
sub eax, dword [ebp + 8]
cmp eax, edi
ja 0x43b1d3
call dword [sym.imp.MSVCP60.dll_void___cdecl_std::_Xlen_void_]
cmp edi, esi
jbe 0x43b224
mov ecx, dword [ebp + 8]
mov ebx, edi
add ebx, ecx
push esi
push ebx
mov ecx, ebp
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 0x43b224
mov ecx, dword [esp + 0x10]
mov eax, dword [ecx + 4]
cmp eax, esi
mov esi, 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]
je 0x43b1ff
mov esi, eax
mov eax, dword [ebp + 4]
mov ecx, dword [ebp + 8]
add eax, ecx
mov ecx, edi
mov edx, ecx
mov edi, eax
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]
mov ecx, ebp
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_]
xor esi, esi
mov eax, dword [esp + 0x48]
cmp eax, esi
je 0x43b249
lea ecx, [eax - 1]
mov al, byte [eax - 1]
test al, al
je 0x43b240
cmp al, 0xff
je 0x43b240
dec al
mov byte [ecx], al
jmp 0x43b249
push ecx
call sub.MFC42.DLL_operatordelete
add esp, 4
mov eax, dword [esp + 0x38]
or edi, 0xffffffff
cmp eax, esi
mov dword [esp + 0x48], esi
mov dword [esp + 0x4c], esi
mov dword [esp + 0x50], esi
mov dword [esp + 0xbc], edi
je 0x43b293
lea ecx, [eax - 1]
mov al, byte [eax - 1]
test al, al
je 0x43b28a
cmp al, 0xff
je 0x43b28a
dec al
mov byte [ecx], al
mov dword [esp + 0x38], esi
mov dword [esp + 0x3c], esi
mov dword [esp + 0x40], esi
jmp 0x43b054
push ecx
call sub.MFC42.DLL_operatordelete
add esp, 4
mov dword [esp + 0x38], esi
mov dword [esp + 0x3c], esi
mov dword [esp + 0x40], esi
jmp 0x43b054
test al, 8
je 0x43b4f3
xor eax, 8
cmp ebx, 0x43
mov dword [esp + 0x14], eax
jne 0x43b2d5
mov dword [esp + 0x18], 0x475da8
mov dword [esp + 0x1c], 3
mov dword [esp + 0x10], 8
jmp 0x43b060
mov eax, dword [esp + 0xc8]
mov edi, 0x475de8
or ecx, 0xffffffff
push 1
lea ebp, [eax + 0x10]
xor eax, eax
repne scasb al, byte es:[edi]
not ecx
dec ecx
mov dword [esp + 0x1c], 0x475df8
mov ebx, ecx
mov ecx, ebp
push ebx
mov dword [esp + 0x24], 1
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 0x43b332
mov edi, dword [ebp + 4]
mov ecx, ebx
mov edx, ecx
mov esi, 0x475de8
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 + 4]
mov dword [ebp + 8], ebx
add ebx, eax
mov byte [ebx], 0
mov edi, 0x475da4
or ecx, 0xffffffff
xor eax, eax
mov edx, dword [ebp + 8]
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 edi, ecx
mov ecx, dword [eax]
sub ecx, edx
cmp ecx, edi
ja 0x43b359
call dword [sym.imp.MSVCP60.dll_void___cdecl_std::_Xlen_void_]
xor esi, esi
cmp edi, esi
jbe 0x43b3a0
mov ecx, dword [ebp + 8]
mov ebx, edi
add ebx, ecx
push esi
push ebx
mov ecx, ebp
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 0x43b3a0
mov eax, dword [ebp + 8]
mov ecx, dword [ebp + 4]
add eax, ecx
mov ecx, edi
mov edx, ecx
mov esi, 0x475da4
mov edi, eax
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 + 4]
mov dword [ebp + 8], ebx
add ebx, eax
xor esi, esi
mov byte [ebx], 0
mov eax, dword [esp + 0x20]
lea ecx, [esp + 0xa4]
push eax
push ecx
call fcn.0043a3c0
push eax
lea edx, [esp + 0x90]
push str.SSD
push edx
mov dword [esp + 0xd0], 8
call sub.MSVCP60.dll_class_std::basic_string_char__struct_std::char_traits_char___class_std::allocator_char_____cdecl_std::operator_char_const___class_std::basic_string_char__struct_std::char_traits_char___class_std::allocator_char___const__
add esp, 0x14
mov dword [esp + 0x10], eax
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 eax, dword [eax + 8]
mov byte [esp + 0xbc], 9
mov ecx, dword [ecx]
mov edi, ecx
cmp eax, edi
jae 0x43b3f2
mov edi, eax
sub ecx, dword [ebp + 8]
cmp ecx, edi
ja 0x43b3ff
call dword [sym.imp.MSVCP60.dll_void___cdecl_std::_Xlen_void_]
cmp edi, esi
jbe 0x43b452
mov ecx, dword [ebp + 8]
mov ebx, edi
add ebx, ecx
push esi
push ebx
mov ecx, ebp
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 0x43b452
mov edx, dword [esp + 0x10]
mov eax, dword [edx + 4]
cmp eax, esi
mov esi, 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]
je 0x43b42b
mov esi, eax
mov eax, dword [ebp + 8]
mov ecx, dword [ebp + 4]
add eax, ecx
mov ecx, edi
mov edi, 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]
mov eax, dword [ebp + 4]
mov dword [ebp + 8], ebx
add ebx, eax
xor esi, esi
mov byte [ebx], 0
mov eax, dword [esp + 0x88]
cmp eax, esi
je 0x43b47a
lea ecx, [eax - 1]
mov al, byte [eax - 1]
test al, al
je 0x43b471
cmp al, 0xff
je 0x43b471
dec al
mov byte [ecx], al
jmp 0x43b47a
push ecx
call sub.MFC42.DLL_operatordelete
add esp, 4
mov eax, dword [esp + 0xa8]
or edi, 0xffffffff
cmp eax, esi
mov dword [esp + 0x88], esi
mov dword [esp + 0x8c], esi
mov dword [esp + 0x90], esi
mov dword [esp + 0xbc], edi
je 0x43b4d9
lea ecx, [eax - 1]
mov al, byte [eax - 1]
test al, al
je 0x43b4d0
cmp al, 0xff
je 0x43b4d0
dec al
mov byte [ecx], al
mov dword [esp + 0xa8], esi
mov dword [esp + 0xac], esi
mov dword [esp + 0xb0], esi
jmp 0x43b054
push ecx
call sub.MFC42.DLL_operatordelete
add esp, 4
mov dword [esp + 0xa8], esi
mov dword [esp + 0xac], esi
mov dword [esp + 0xb0], esi
jmp 0x43b054
test al, 0x20
je 0x43b060
cmp ebx, 0x3c
jne 0x43b50f
mov eax, dword [esp + 0x14]
or al, 1
mov dword [esp + 0x14], eax
jmp 0x43b060
cmp ebx, 0x3e
je 0x43b736
jmp 0x43b060
cmp ebx, 0x3c
jne 0x43b52f
mov dword [esp + 0x14], 1
jmp 0x43b060
movsx ecx, bl
push ecx
push 0x475d28
mov dword [esp + 0x18], 4
call dword [sym.imp.MSVCRT.dll_strchr]
add esp, 8
test eax, eax
je 0x43ab8e
mov dword [esp + 0x14], 0x10
jmp 0x43b060
mov edx, dword [ebp + 0xc]
mov eax, dword [esp + 0x10]
sub edi, edx
dec edi
cmp eax, 4
mov dword [esp + 0x20], edi
je 0x43b74c
cmp eax, 2
je 0x43b74c
mov al, byte [esp + 0x14]
mov esi, 0x475da4
test al, 0x20
jne 0x43b5cf
mov eax, dword [esp + 0x10]
cmp eax, 0x40
je 0x43b5cf
cmp eax, 1
jne 0x43b5a0
mov esi, 0x475d98
jmp 0x43b5d4
test eax, eax
jne 0x43b5ab
mov esi, 0x475d88
jmp 0x43b5d4
cmp eax, 8
jne 0x43b5b7
mov esi, 0x475d78
jmp 0x43b5d4
cmp eax, 0x10
jne 0x43b5c3
mov esi, 0x475d60
jmp 0x43b5d4
cmp eax, 0x20
jne 0x43b5d4
mov esi, 0x475d58
jmp 0x43b5d4
mov esi, 0x475d50
or ecx, 0xffffffff
mov edi, esi
xor eax, eax
mov dword [esp + 0x10], ecx
repne scasb al, byte es:[edi]
mov edx, dword [esp + 0xc8]
push 1
not ecx
dec ecx
lea ebx, [edx + 0x10]
mov ebp, ecx
mov ecx, ebx
push ebp
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 0x43b61d
mov edi, dword [ebx + 4]
mov ecx, ebp
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 eax, dword [ebx + 4]
mov dword [ebx + 8], ebp
add eax, ebp
mov byte [eax], 0
mov ecx, dword [esp + 0xc8]
lea eax, [esp + 0x44]
mov edx, dword [ecx + 4]
push edx
push eax
call fcn.0043a3c0
push eax
lea ecx, [esp + 0x40]
push str.SSD
push ecx
mov dword [esp + 0xd0], 0
call sub.MSVCP60.dll_class_std::basic_string_char__struct_std::char_traits_char___class_std::allocator_char_____cdecl_std::operator_char_const___class_std::basic_string_char__struct_std::char_traits_char___class_std::allocator_char___const__
add esp, 0x14
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 [esp + 0xbc], 1
mov ecx, dword [edx]
push ecx
push 0
push eax
mov ecx, ebx
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, [esp + 0x38]
mov byte [esp + 0xc0], 0
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 eax, dword [esp + 0x48]
mov dword [esp + 0xbc], 0xffffffff
test eax, eax
je 0x43b6b0
lea ecx, [eax - 1]
mov al, byte [eax - 1]
test al, al
je 0x43b6a7
cmp al, 0xff
je 0x43b6a7
dec al
mov byte [ecx], al
jmp 0x43b6b0
push ecx
call sub.MFC42.DLL_operatordelete
add esp, 4
mov edi, 0x475d40
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 [ebx + 8]
not ecx
dec ecx
sub eax, edx
mov esi, ecx
cmp eax, esi
ja 0x43b6d8
call dword [sym.imp.MSVCP60.dll_void___cdecl_std::_Xlen_void_]
test esi, esi
jbe 0x43b74c
mov ebp, dword [ebx + 8]
push 0
add ebp, esi
mov ecx, ebx
push ebp
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 0x43b74c
mov edi, dword [ebx + 4]
mov edx, dword [ebx + 8]
mov ecx, esi
add edi, edx
mov edx, ecx
mov esi, 0x475d40
shr ecx, 2
rep movsd dword es:[edi], dword [esi]
mov ecx, edx
push ebp
and ecx, 3
rep movsb byte es:[edi], byte [esi]
mov ecx, ebx
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_]
jmp 0x43b74c
sub edi, dword [ebp + 0xc]
dec edi
mov dword [esp + 0x20], edi
jmp 0x43b74c
mov ecx, dword [ebp + 0xc]
mov dword [esp + 0x10], 4
sub edi, ecx
dec edi
mov dword [esp + 0x20], edi
jmp 0x43b74c
mov eax, dword [esp + 0xc4]
mov dword [esp + 0x10], 0x40
sub edi, dword [eax + 0xc]
mov dword [esp + 0x20], edi
mov ecx, dword [esp + 0x20]
mov edx, dword [esp + 0xc4]
pop ebx
lea eax, [ecx + 1]
mov ecx, dword [esp + 0xc4]
mov dword [edx + 8], eax
sub eax, dword [ecx + 4]
mov dword [ecx + 8], eax
mov eax, dword [esp + 0xc]
mov dword [ecx], eax
mov ecx, dword [esp + 0xb0]
pop edi
pop esi
pop ebp
mov dword fs:[0], ecx
add esp, 0xb0
ret