Function at 0x10053c20
Capabilities:
Check os version
Resolve function by parsing pe exports

Disassembly:
push 0xffffffffffffffff
push 0x1011b251
mov eax, dword fs:[0]
push eax
sub esp, 0x124
mov eax, dword [0x1014d0cc]
xor eax, esp
mov dword [esp + 0x120], eax
push ebx
push ebp
push esi
push edi
mov eax, dword [0x1014d0cc]
xor eax, esp
push eax
lea eax, [esp + 0x138]
mov dword fs:[0], eax
mov ebp, dword [esp + 0x14c]
mov edi, ecx
lea eax, [esp + 0x28]
mov dword [esp + 0x30], edi
mov dword [esp + 0x44], ebp
call fcn.100ed8f0
xor ebx, ebx
mov dword [esp + 0x140], ebx
cmp dword [esp + 0x28], ebx
je 0x10053e50
push str.interval
mov eax, ebp
call fcn.1005d8c0
cmp eax, ebx
je 0x10053cba
mov ecx, dword [eax + 0x10]
and ecx, 0xe0000000
cmp ecx, 0x80000000
jne 0x10053cba
mov edx, eax
call fcn.1005d4f0
mov dword [esp + 0x5c], eax
mov dword [esp + 0x60], edx
jmp 0x10053cc2
mov dword [esp + 0x5c], ebx
mov dword [esp + 0x60], ebx
push str.min_interval
mov eax, ebp
call fcn.1005d8c0
cmp eax, ebx
je 0x10053cf4
mov edx, dword [eax + 0x10]
and edx, 0xe0000000
cmp edx, 0x80000000
jne 0x10053cf4
mov edx, eax
call fcn.1005d4f0
mov dword [esp + 0x3c], eax
mov dword [esp + 0x40], edx
jmp 0x10053d00
mov dword [esp + 0x3c], 0x1e
mov dword [esp + 0x40], ebx
push str.pure_bt_speed
mov eax, ebp
call fcn.1005d8c0
cmp eax, ebx
je 0x10053d38
mov ecx, dword [eax + 0x10]
and ecx, 0xe0000000
cmp ecx, 0x80000000
jne 0x10053d38
mov edx, eax
call fcn.1005d4f0
mov dword [esp + 0x84], eax
mov dword [esp + 0x88], edx
jmp 0x10053d4a
mov dword [esp + 0x84], 0xc8
mov dword [esp + 0x88], ebx
lea ecx, [esp + 0x118]
call dword [sym.imp.MSVCP80.dll_public:_void___thiscall_std::basic_string_char__struct_std::char_traits_char___class_std::allocator_char__::constructor_void_]
push str.tracker_id
mov eax, ebp
mov byte [esp + 0x144], 1
call fcn.1005d8c0
cmp eax, ebx
je 0x10053db2
mov edx, dword [eax + 0x10]
and edx, 0xe0000000
cmp edx, 0x60000000
jne 0x10053db2
lea esi, [esp + 0xfc]
call fcn.10036560
push eax
lea ecx, [esp + 0x11c]
mov byte [esp + 0x144], 2
call dword [0x1012717c]
mov ecx, esi
mov byte [esp + 0x140], 1
call dword [sym.imp.MSVCP80.dll_public:_void___thiscall_std::basic_string_char__struct_std::char_traits_char___class_std::allocator_char__::destructor_void_]
push str.failure_reason
mov eax, ebp
call fcn.1005d8c0
cmp eax, ebx
je 0x10053e9e
mov ecx, dword [eax + 0x10]
and ecx, 0xe0000000
cmp ecx, 0x60000000
jne 0x10053e9e
lea esi, [esp + 0xfc]
call fcn.10036560
mov byte [esp + 0x140], 3
cmp dword [eax + 0x18], 0x10
jb 0x10053dfa
mov eax, dword [eax + 4]
jmp 0x10053dfd
add eax, 4
mov edx, dword [esp + 0x3c]
mov ecx, dword [esp + 0x5c]
push edx
mov edx, dword [esp + 0x14c]
push ecx
push eax
push edx
push 0xad
lea esi, [esp + 0x48]
call fcn.10034120
push eax
mov ecx, edi
call fcn.100ed910
lea ecx, [esp + 0xfc]
mov byte [esp + 0x140], 1
call dword [sym.imp.MSVCP80.dll_public:_void___thiscall_std::basic_string_char__struct_std::char_traits_char___class_std::allocator_char__::destructor_void_]
lea ecx, [esp + 0x118]
mov byte [esp + 0x140], 0
call dword [sym.imp.MSVCP80.dll_public:_void___thiscall_std::basic_string_char__struct_std::char_traits_char___class_std::allocator_char__::destructor_void_]
mov dword [esp + 0x140], 0xffffffff
mov esi, dword [esp + 0x2c]
cmp esi, ebx
je 0x10054832
lea eax, [esi + 4]
or ecx, 0xffffffff
lock xadd dword [eax], ecx
jne 0x10054832
mov edx, dword [esi]
mov eax, dword [edx + 4]
mov ecx, esi
call eax
lea ecx, [esi + 8]
or edx, 0xffffffff
lock xadd dword [ecx], edx
jne 0x10054832
mov eax, dword [esi]
mov edx, dword [eax + 8]
mov ecx, esi
call edx
jmp 0x10054832
push str.warning_message
mov eax, ebp
call fcn.1005d8c0
cmp eax, ebx
je 0x10053ef6
mov ecx, dword [eax + 0x10]
and ecx, 0xe0000000
cmp ecx, 0x60000000
jne 0x10053ef6
lea esi, [esp + 0xfc]
call fcn.10036560
mov byte [esp + 0x140], 4
mov ecx, dword [esp + 0x28]
mov edx, dword [ecx]
mov edx, dword [edx + 4]
push eax
lea eax, [edi + 0x80]
push eax
call edx
mov ecx, esi
mov byte [esp + 0x140], 1
call dword [sym.imp.MSVCP80.dll_public:_void___thiscall_std::basic_string_char__struct_std::char_traits_char___class_std::allocator_char__::destructor_void_]
mov dword [esp + 0x50], ebx
mov dword [esp + 0x54], ebx
mov dword [esp + 0x58], ebx
lea eax, [edi + 0x80]
mov byte [esp + 0x140], 5
cmp dword [eax], 1
mov dword [esp + 0x80], eax
jne 0x10054075
lea eax, [edi + 0x84]
lea esi, [esp + 0xfc]
call fcn.10001820
push str.files
mov eax, ebp
mov byte [esp + 0x144], 6
call fcn.1005d8c0
cmp eax, ebx
je 0x10053f5b
mov ecx, dword [eax + 0x10]
and ecx, 0xe0000000
cmp ecx, 0x20000000
je 0x10053fd6
mov edx, dword [esp + 0x3c]
mov eax, dword [esp + 0x5c]
push edx
push eax
push 0x10129600
push 0xffffffffffffffff
push 0xae
lea esi, [esp + 0x48]
call fcn.10034120
push eax
mov ecx, edi
call fcn.100ed910
lea ecx, [esp + 0xfc]
mov byte [esp + 0x140], 5
call dword [sym.imp.MSVCP80.dll_public:_void___thiscall_std::basic_string_char__struct_std::char_traits_char___class_std::allocator_char__::destructor_void_]
lea ebx, [esp + 0x4c]
mov byte [esp + 0x140], 1
call fcn.10054a80
lea ecx, [esp + 0x118]
mov byte [esp + 0x140], 0
call dword [sym.imp.MSVCP80.dll_public:_void___thiscall_std::basic_string_char__struct_std::char_traits_char___class_std::allocator_char__::destructor_void_]
lea eax, [esp + 0x28]
mov dword [esp + 0x140], 0xffffffff
call fcn.10086b50
jmp 0x10054832
cmp dword [esp + 0x114], 0x10
mov ecx, dword [esp + 0x100]
jae 0x10053fee
lea ecx, [esp + 0x100]
push eax
mov eax, ecx
call fcn.1005d860
mov esi, eax
cmp esi, ebx
jne 0x10054017
mov ecx, dword [esp + 0x3c]
mov edx, dword [esp + 0x5c]
push ecx
push edx
push 0x10129600
push 0xffffffffffffffff
push 0xaf
jmp 0x10053f71
push 0xffffffffffffffff
push 0xffffffffffffffff
push esi
mov eax, str.complete
call fcn.1005d820
push 0xffffffffffffffff
push 0xffffffffffffffff
mov edi, eax
push esi
mov eax, str.incomplete
call fcn.1005d820
push 0xffffffffffffffff
push 0xffffffffffffffff
mov ebp, eax
push esi
mov eax, str.downloaded
call fcn.1005d820
push 0xffffffffffffffff
push 0xffffffffffffffff
mov ebx, eax
push esi
mov eax, str.downloaders
call fcn.1005d820
mov ecx, dword [esp + 0x28]
mov edx, dword [ecx]
mov edx, dword [edx + 8]
push eax
mov eax, dword [esp + 0x84]
push ebx
push ebp
push edi
push eax
call edx
jmp 0x10053f82
push str.peers
mov eax, ebp
call fcn.1005d8c0
mov ecx, eax
cmp ecx, ebx
mov dword [esp + 0x7c], ecx
je 0x100542a1
mov eax, dword [ecx + 0x10]
shr eax, 0x1d
cmp eax, 3
jne 0x100541f2
mov ebp, dword [ecx + 0xc]
mov eax, dword [ecx]
xor edi, edi
cmp ebp, ebx
mov dword [esp + 0x1c], eax
jle 0x100542a5
mov dword [esp + 0x18], ebp
mov bl, 7
jmp 0x100540c0
cmp dword [esp + 0x18], 6
jl 0x100542a5
lea ecx, [esp + 0xac]
call dword [sym.imp.MSVCP80.dll_public:_void___thiscall_std::basic_string_char__struct_std::char_traits_char___class_std::allocator_char__::constructor_void_]
xor eax, eax
mov dword [esp + 0xcc], eax
mov dword [esp + 0xd0], eax
mov dword [esp + 0xd4], eax
mov dword [esp + 0xd8], eax
mov dword [esp + 0xdc], eax
mov byte [esp + 0x140], bl
mov dword [esp + 0xcc], eax
mov dword [esp + 0xd0], eax
mov dword [esp + 0xd4], eax
mov dword [esp + 0xd8], eax
mov dword [esp + 0xdc], eax
mov dword [esp + 0x20], eax
call fcn.1010d600
mov dword [esp + 0x24], eax
lea eax, [esp + 0x1c]
lea esi, [esp + 0x90]
call fcn.10062fa0
lea ecx, [esp + 0x20]
lea edx, [esp + 0xfc]
call fcn.10014d50
push eax
lea ecx, [esp + 0xb0]
mov byte [esp + 0x144], 8
call dword [0x1012717c]
lea ecx, [esp + 0xfc]
mov byte [esp + 0x140], bl
call dword [sym.imp.MSVCP80.dll_public:_void___thiscall_std::basic_string_char__struct_std::char_traits_char___class_std::allocator_char__::destructor_void_]
mov esi, dword [esp + 0x1c]
xor eax, eax
lea ecx, [eax + 2]
xor edx, edx
mov dh, al
add esi, 1
sub ecx, 1
mov dl, byte [esi - 1]
movzx eax, dx
jne 0x10054187
mov ecx, dword [esp + 0x20]
neg ecx
movzx eax, ax
sbb ecx, ecx
test ecx, fcn.1009bff0
mov dword [esp + 0x1c], esi
mov dword [esp + 0xc8], eax
jne 0x100541c8
lea edx, [esp + 0xac]
push edx
lea esi, [esp + 0x50]
call fcn.100548f0
lea ecx, [esp + 0xac]
mov byte [esp + 0x140], 5
call dword [sym.imp.MSVCP80.dll_public:_void___thiscall_std::basic_string_char__struct_std::char_traits_char___class_std::allocator_char__::destructor_void_]
sub dword [esp + 0x18], 6
add edi, 6
cmp edi, ebp
jl 0x100540c0
jmp 0x100542a5
cmp eax, 2
jne 0x100542a1
mov eax, dword [ecx + 0xc]
cmp eax, ebx
mov dword [esp + 0x20], eax
mov dword [esp + 0x18], ebx
jle 0x100542a5
mov ebx, dword [esp + 0x30]
xor ebp, ebp
lea ecx, [esp + 0xac]
call dword [sym.imp.MSVCP80.dll_public:_void___thiscall_std::basic_string_char__struct_std::char_traits_char___class_std::allocator_char__::constructor_void_]
xor eax, eax
mov dword [esp + 0xcc], eax
mov dword [esp + 0xd0], eax
mov dword [esp + 0xd4], eax
mov dword [esp + 0xd8], eax
mov dword [esp + 0xdc], eax
mov eax, dword [esp + 0x7c]
mov byte [esp + 0x140], 9
mov eax, dword [eax]
add eax, ebp
push eax
lea edi, [esp + 0xb0]
call fcn.10053a30
test al, al
mov ecx, edi
je 0x10053f89
push ecx
lea esi, [esp + 0x50]
call fcn.100548f0
mov ecx, edi
mov byte [esp + 0x140], 5
call dword [sym.imp.MSVCP80.dll_public:_void___thiscall_std::basic_string_char__struct_std::char_traits_char___class_std::allocator_char__::destructor_void_]
mov eax, dword [esp + 0x18]
add eax, 1
add ebp, 0x14
cmp eax, dword [esp + 0x20]
mov dword [esp + 0x18], eax
jl 0x10054214
jmp 0x100542a5
mov dword [esp + 0x7c], ebx
mov eax, dword [esp + 0x44]
push str.peers6
call fcn.1005d8c0
xor ebp, ebp
cmp eax, ebp
je 0x1005442a
mov edx, dword [eax + 0x10]
and edx, 0xe0000000
cmp edx, 0x60000000
jne 0x1005442a
mov ecx, dword [eax]
mov dword [esp + 0x20], eax
mov eax, dword [eax + 0xc]
cmp eax, ebp
mov dword [esp + 0x18], ecx
mov dword [esp + 0x74], eax
jle 0x1005442e
mov edx, eax
mov dword [esp + 0x1c], edx
mov bl, 0xa
cmp dword [esp + 0x1c], 0x12
jl 0x1005442e
lea ecx, [esp + 0xac]
call dword [sym.imp.MSVCP80.dll_public:_void___thiscall_std::basic_string_char__struct_std::char_traits_char___class_std::allocator_char__::constructor_void_]
xor eax, eax
mov dword [esp + 0xcc], eax
mov dword [esp + 0xd0], eax
mov dword [esp + 0xd4], eax
mov dword [esp + 0xd8], eax
mov dword [esp + 0xdc], eax
mov byte [esp + 0x140], bl
mov dword [esp + 0xcc], eax
mov dword [esp + 0xd0], eax
mov dword [esp + 0xd4], eax
mov dword [esp + 0xd8], eax
mov dword [esp + 0xdc], eax
mov dword [esp + 0x34], eax
call fcn.1010d600
lea esi, [esp + 0x18]
lea edi, [esp + 0x90]
mov dword [esp + 0x38], eax
call fcn.10023a20
lea ecx, [esp + 0x34]
lea edx, [esp + 0xfc]
call fcn.10014d50
push eax
lea ecx, [esp + 0xb0]
mov byte [esp + 0x144], 0xb
call dword [0x1012717c]
lea ecx, [esp + 0xfc]
mov byte [esp + 0x140], bl
call dword [sym.imp.MSVCP80.dll_public:_void___thiscall_std::basic_string_char__struct_std::char_traits_char___class_std::allocator_char__::destructor_void_]
mov esi, dword [esp + 0x18]
xor eax, eax
lea ecx, [eax + 2]
lea ebx, [ebx]
xor edx, edx
mov dh, al
add esi, 1
sub ecx, 1
mov dl, byte [esi - 1]
movzx eax, dx
jne 0x100543c0
mov ecx, dword [esp + 0x34]
neg ecx
movzx eax, ax
sbb ecx, ecx
test ecx, fcn.1009bff0
mov dword [esp + 0x18], esi
mov dword [esp + 0xc8], eax
jne 0x10054401
lea edx, [esp + 0xac]
push edx
lea esi, [esp + 0x50]
call fcn.100548f0
lea ecx, [esp + 0xac]
mov byte [esp + 0x140], 5
call dword [sym.imp.MSVCP80.dll_public:_void___thiscall_std::basic_string_char__struct_std::char_traits_char___class_std::allocator_char__::destructor_void_]
sub dword [esp + 0x1c], 0x12
add ebp, 0x12
cmp ebp, dword [esp + 0x74]
jl 0x100542f3
jmp 0x1005442e
mov dword [esp + 0x20], ebp
xor ebp, ebp
cmp dword [esp + 0x7c], ebp
jne 0x10054475
cmp dword [esp + 0x20], ebp
jne 0x10054475
mov edi, dword [esp + 0x30]
cmp dword [edi + 0xdc], 3
je 0x10054475
mov eax, dword [esp + 0x3c]
mov ecx, dword [esp + 0x5c]
push eax
push ecx
push 0x10129600
push 0xffffffffffffffff
push 0xb0
lea esi, [esp + 0x48]
call fcn.10034120
push eax
mov ecx, edi
call fcn.100ed910
jmp 0x10053f97
mov edi, dword [esp + 0x44]
xor eax, eax
mov dword [esp + 0xe8], eax
mov dword [esp + 0xec], eax
mov dword [esp + 0xf0], eax
mov dword [esp + 0xf4], eax
push str.external_ip
mov eax, edi
mov dword [esp + 0xe4], ebp
mov dword [esp + 0xe8], ebp
mov dword [esp + 0xfc], ebp
call fcn.1005d8c0
cmp eax, ebp
je 0x1005459a
mov edx, dword [eax + 0x10]
and edx, 0xe0000000
cmp edx, 0x60000000
jne 0x1005459a
mov ecx, dword [eax]
mov eax, dword [eax + 0xc]
cmp eax, 4
mov dword [esp + 0x20], ecx
jne 0x1005453a
lea eax, [esp + 0x20]
lea esi, [esp + 0x90]
call fcn.10062fa0
mov edx, dword [eax]
mov dword [esp + 0xe0], edx
mov ecx, dword [eax + 4]
mov dword [esp + 0xe4], ecx
mov edx, dword [eax + 8]
mov dword [esp + 0xe8], edx
mov ecx, dword [eax + 0xc]
mov dword [esp + 0xec], ecx
mov edx, dword [eax + 0x10]
mov dword [esp + 0xf0], edx
mov ecx, dword [eax + 0x14]
mov dword [esp + 0xf4], ecx
mov edx, dword [eax + 0x18]
mov dword [esp + 0xf8], edx
jmp 0x1005459a
cmp eax, 0x10
jne 0x1005459a
lea esi, [esp + 0x20]
lea edi, [esp + 0x90]
call fcn.10023a20
mov ecx, dword [eax]
mov edi, dword [esp + 0x44]
mov dword [esp + 0xe0], ecx
mov edx, dword [eax + 4]
mov dword [esp + 0xe4], edx
mov ecx, dword [eax + 8]
mov dword [esp + 0xe8], ecx
mov edx, dword [eax + 0xc]
mov dword [esp + 0xec], edx
mov ecx, dword [eax + 0x10]
mov dword [esp + 0xf0], ecx
mov edx, dword [eax + 0x14]
mov dword [esp + 0xf4], edx
mov eax, dword [eax + 0x18]
mov dword [esp + 0xf8], eax
xor ebp, ebp
push str.complete
mov eax, edi
call fcn.1005d8c0
or ebx, 0xffffffff
cmp eax, ebp
je 0x100545cf
mov ecx, dword [eax + 0x10]
and ecx, 0xe0000000
cmp ecx, 0x80000000
jne 0x100545cf
mov edx, eax
call fcn.1005d4f0
mov dword [esp + 0x44], eax
mov dword [esp + 0x48], edx
jmp 0x100545d7
mov dword [esp + 0x44], ebx
mov dword [esp + 0x48], ebx
push str.incomplete
mov eax, edi
call fcn.1005d8c0
cmp eax, ebp
je 0x10054609
mov edx, dword [eax + 0x10]
and edx, 0xe0000000
cmp edx, 0x80000000
jne 0x10054609
mov edx, eax
call fcn.1005d4f0
mov dword [esp + 0x74], eax
mov dword [esp + 0x78], edx
jmp 0x10054611
mov dword [esp + 0x74], ebx
mov dword [esp + 0x78], ebx
call fcn.10054b00
mov dword [esp + 0x6c], eax
mov dword [esp + 0x70], ebp
mov eax, dword [esp + 0x30]
mov byte [esp + 0x140], 0xc
cmp dword [eax + 0x17c], ebp
je 0x10054702
xor ebp, ebp
mov dword [esp + 0x34], ebp
call fcn.1010d600
mov ebx, dword [esp + 0x30]
mov dword [esp + 0x38], eax
mov eax, dword [ebx + 0x17c]
lea ecx, [eax + 0x38]
lea eax, [esp + 0x34]
lea esi, [esp + 0x90]
call fcn.100a8b40
push eax
lea esi, [esp + 0x100]
call fcn.10015480
mov eax, dword [esp + 0x6c]
mov ecx, dword [eax + 4]
lea edi, [eax + 4]
push ecx
push eax
call fcn.10054e60
lea ecx, [esp + 0x68]
mov esi, eax
call fcn.10045ac0
mov dword [edi], esi
mov eax, dword [esi + 4]
mov dword [eax], esi
mov ebx, dword [ebx + 0x17c]
mov eax, dword [ebx + 0x358]
mov edi, dword [eax]
mov dword [esp + 0x20], eax
cmp edi, eax
je 0x10054706
cmp edi, dword [ebx + 0x358]
jne 0x100546b6
call dword [sym.imp.MSVCR80.dll__invalid_parameter_noinfo]
lea edx, [edi + 8]
push edx
lea esi, [esp + 0x100]
call fcn.10015480
mov eax, dword [esp + 0x6c]
mov ecx, dword [eax + 4]
lea ebp, [eax + 4]
push ecx
push eax
call fcn.10054e60
lea ecx, [esp + 0x68]
mov esi, eax
call fcn.10045ac0
mov dword [ebp], esi
mov edx, dword [esi + 4]
mov dword [edx], esi
cmp edi, dword [ebx + 0x358]
jne 0x100546f8
call dword [sym.imp.MSVCR80.dll__invalid_parameter_noinfo]
mov edi, dword [edi]
mov eax, dword [esp + 0x20]
xor ebp, ebp
jmp 0x100546a4
xor ebp, ebp
jmp 0x10054709
or ebx, 0xffffffff
mov edx, dword [esp + 0x84]
push edx
mov ecx, dword [esp + 0x2c]
mov eax, dword [ecx]
lea edx, [esp + 0x11c]
push edx
mov eax, dword [eax + 0xc]
lea edx, [esp + 0xe8]
push edx
mov edx, dword [esp + 0x80]
push edx
mov edx, dword [esp + 0x54]
push edx
mov edx, dword [esp + 0x50]
push edx
mov edx, dword [esp + 0x74]
push edx
lea edx, [esp + 0x68]
push edx
lea edx, [esp + 0x88]
push edx
mov edx, dword [esp + 0x54]
add edx, 0x188
push edx
mov edx, dword [esp + 0xa8]
push edx
call eax
mov ecx, dword [esp + 0x6c]
mov eax, dword [ecx]
mov dword [ecx], ecx
mov ecx, dword [esp + 0x6c]
mov dword [ecx + 4], ecx
mov ecx, dword [esp + 0x6c]
cmp eax, ecx
mov dword [esp + 0x70], ebp
je 0x10054795
mov edi, edi
mov esi, dword [eax]
push eax
call sub.MSVCR80.dll_void___cdecl_operator_delete_void__
mov ecx, dword [esp + 0x70]
add esp, 4
cmp esi, ecx
mov eax, esi
jne 0x10054780
push ecx
call sub.MSVCR80.dll_void___cdecl_operator_delete_void__
mov byte [esp + 0x144], 1
mov esi, dword [esp + 0x54]
add esp, 4
cmp esi, ebp
mov dword [esp + 0x6c], ebp
je 0x100547dc
mov edi, dword [esp + 0x54]
cmp esi, edi
je 0x100547d3
lea ebx, [ebx]
mov ecx, esi
call dword [sym.imp.MSVCP80.dll_public:_void___thiscall_std::basic_string_char__struct_std::char_traits_char___class_std::allocator_char__::destructor_void_]
add esi, 0x34
cmp esi, edi
jne 0x100547c0
mov esi, dword [esp + 0x50]
push esi
call sub.MSVCR80.dll_void___cdecl_operator_delete_void__
add esp, 4
lea ecx, [esp + 0x118]
mov dword [esp + 0x50], ebp
mov dword [esp + 0x54], ebp
mov dword [esp + 0x58], ebp
mov byte [esp + 0x140], 0
call dword [sym.imp.MSVCP80.dll_public:_void___thiscall_std::basic_string_char__struct_std::char_traits_char___class_std::allocator_char__::destructor_void_]
mov dword [esp + 0x140], ebx
mov esi, dword [esp + 0x2c]
cmp esi, ebp
je 0x10054832
lea ecx, [esi + 4]
mov edx, ebx
lock xadd dword [ecx], edx
jne 0x10054832
mov eax, dword [esi]
mov edx, dword [eax + 4]
mov ecx, esi
call edx
lea eax, [esi + 8]
lock xadd dword [eax], ebx
jne 0x10054832
mov edx, dword [esi]
mov eax, dword [edx + 8]
mov ecx, esi
call eax
mov ecx, dword [esp + 0x138]
mov dword fs:[0], ecx
pop ecx
pop edi
pop esi
pop ebp
pop ebx
mov ecx, dword [esp + 0x120]
xor ecx, esp
call fcn.1010defb
add esp, 0x130
ret 8