joyce8/EMBER2024-capa huggingface dataset:
Function at 0x46a510
Capabilities:
Query or enumerate registry key

Disassembly:
mov eax, dword fs:[0]
push 0xffffffffffffffff
push 0x4be323
push eax
mov dword fs:[0], esp
sub esp, 0x98
push ebx
push esi
mov esi, ecx
mov eax, dword [esi]
push edi
call dword [eax + 0x18]
mov eax, dword [esi + 4]
xor ebx, ebx
cmp eax, ebx
jne 0x46a55e
push 0xad4
push str.p4clients_rel_betaProjectsCommonMiscWin32Registry.cpp
push str.m_pRegKeyWeakReference
push str.NonNullRegKeyWeakReference
call fcn.00421210
mov ecx, eax
call fcn.00421040
mov ecx, dword [esi + 4]
cmp dword [ecx + 0x20], ebx
jne 0x46a586
push 0xad5
push str.p4clients_rel_betaProjectsCommonMiscWin32Registry.cpp
push str.m_pRegKeyWeakReference__m_hkey
push str.NonNullWin32KeyHandle
call fcn.00421210
mov ecx, eax
call fcn.00421040
push ebx
push ebx
lea edx, [esp + 0x14]
push edx
mov edx, dword [esi + 4]
lea eax, [esp + 0x1c]
push eax
lea ecx, [esp + 0x24]
push ecx
push ebx
push ebx
push ebx
push ebx
push ebx
mov dword [esp + 0x3c], ebx
mov dword [esp + 0x38], ebx
mov dword [esp + 0x34], ebx
mov eax, dword [edx + 0x20]
push ebx
push eax
call dword [sym.imp.ADVAPI32.dll_RegQueryInfoKeyA]
mov edi, eax
cmp edi, ebx
je 0x46a619
mov ecx, dword [esi + 4]
add ecx, 4
push ecx
lea edx, [esp + 0x1c]
push str.Failed_to_query_key
push edx
call fcn.00407fc0
push str._for_value_info
push eax
lea eax, [esp + 0x48]
push eax
mov dword [esp + 0xc4], ebx
call fcn.00415180
add esp, 0x18
push ebx
push edi
push 2
push eax
lea ecx, [esp + 0x60]
mov byte [esp + 0xbc], 1
call fcn.00431ee0
push 0x4f964c
lea ecx, [esp + 0x54]
push ecx
mov dword [esp + 0x58], vtable.common::CWin32RegistryException.0
call fcn.0049e394
mov edx, dword [esp + 0x14]
mov ecx, dword [esp + 0xc]
mov eax, dword [esp + 0x10]
mov dword [esi + 0xc], edx
mov edx, dword [esi]
inc eax
mov dword [esi + 0x14], ecx
mov ecx, esi
mov dword [esi + 0x10], eax
call dword [edx + 0x18]
mov ecx, dword [esp + 0xa4]
pop edi
pop esi
pop ebx
mov dword fs:[0], ecx
add esp, 0xa4
ret
Function at 0x46ab53
Capabilities:
Set registry value

Disassembly:
sub esp, 0x54
push esi
mov esi, ecx
push 0x503490
push esi
call fcn.0049ee33
add esp, 4
mov ecx, eax
call fcn.0049db6b
test eax, eax
jne 0x46ab9b
push 0x9a
push str.u:p4clients_rel_betaprojectscommonmiscWin32Registry.h
push str.typeid_this___typeid_CWin32RegistryException_
push esi
call fcn.0049ee33
add esp, 4
mov ecx, eax
call fcn.0049edb3
push eax
call fcn.00421210
mov ecx, eax
call fcn.00421040
push esi
lea ecx, [esp + 8]
call fcn.0046a6e0
push 0x4f964c
lea eax, [esp + 8]
push eax
call fcn.0049e394
pop esi
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
push 0xffffffffffffffff
push 0x4be3b1
mov eax, dword fs:[0]
push eax
mov dword fs:[0], esp
sub esp, 0xe8
push ebp
push esi
mov esi, ecx
lea eax, [esi + 0x38]
push edi
push eax
mov dword [esp + 0x10], eax
mov byte [esp + 0x14], 1
call dword [sym.imp.KERNEL32.dll_EnterCriticalSection]
mov eax, dword [esi]
xor edi, edi
mov ecx, esi
mov dword [esp + 0xfc], edi
call dword [eax + 0x60]
mov ebp, dword [esp + 0x104]
cmp dword [ebp + 0x14], edi
jne 0x46ac70
mov eax, str.NonNullValueName
mov dword [esp + 0x2c], 0xf
mov dword [esp + 0x28], edi
mov byte [esp + 0x18], 0
lea edx, [eax + 1]
mov cl, byte [eax]
inc eax
test cl, cl
jne 0x46ac28
sub eax, edx
push eax
push str.NonNullValueName
lea ecx, [esp + 0x1c]
call fcn.00406650
push edi
push edi
push edi
lea ecx, [esp + 0x20]
push ecx
lea ecx, [esp + 0x40]
mov byte [esp + 0x10c], 1
call fcn.00431ee0
push 0x4f0788
lea edx, [esp + 0x34]
push edx
mov dword [esp + 0x38], vtable.common::CRegistryException.0
call fcn.0049e394
push ebx
mov ebx, dword [esp + 0x10c]
mov ecx, dword [ebx + 0x18]
mov edx, dword [ebx + 0x14]
mov eax, 0x10
cmp ecx, eax
jb 0x46ac8c
mov ecx, dword [ebx + 4]
jmp 0x46ac8f
lea ecx, [ebx + 4]
cmp dword [ebp + 0x18], eax
jb 0x46ac99
mov eax, dword [ebp + 4]
jmp 0x46ac9c
lea eax, [ebp + 4]
inc edx
push edx
push ecx
push 1
push edi
push eax
mov eax, dword [esi + 0x20]
push eax
call dword [sym.imp.ADVAPI32.dll_RegSetValueExA]
mov edi, eax
test edi, edi
je 0x46ad5f
add esi, 4
push esi
lea ecx, [esp + 0x1c]
push str.Failed_to_set_String_value
push ecx
call fcn.00407fc0
push 0x4c6d54
push eax
lea edx, [esp + 0xf0]
push edx
mov byte [esp + 0x118], 2
call fcn.00415180
push ebp
push eax
lea eax, [esp + 0xa8]
push eax
mov byte [esp + 0x124], 3
call fcn.00414500
push str._to
push eax
lea ecx, [esp + 0xec]
push ecx
mov byte [esp + 0x130], 4
call fcn.00415180
push ebx
push eax
lea edx, [esp + 0xdc]
push edx
mov byte [esp + 0x13c], 5
call fcn.00414500
add esp, 0x3c
push 0
push edi
push 2
push eax
lea ecx, [esp + 0x44]
mov byte [esp + 0x110], 6
call fcn.00431ee0
push 0x4f964c
lea eax, [esp + 0x38]
push eax
mov dword [esp + 0x3c], vtable.common::CWin32RegistryException.0
call fcn.0049e394
mov ecx, esi
call fcn.0046a720
mov edx, dword [esi]
mov ecx, esi
call dword [edx + 0x60]
lea ecx, [esp + 0x10]
call fcn.004129c0
mov ecx, dword [esp + 0xf8]
pop ebx
pop edi
pop esi
pop ebp
mov dword fs:[0], ecx
add esp, 0xf4
ret 8
Function at 0x46adbd
Capabilities:
Set registry value

Disassembly:
push 0xffffffffffffffff
push 0x4be407
mov eax, dword fs:[0]
push eax
mov dword fs:[0], esp
sub esp, 0xb0
push ebx
push ebp
push esi
mov esi, ecx
lea eax, [esi + 0x38]
push eax
mov dword [esp + 0x2c], eax
mov byte [esp + 0x30], 1
call dword [sym.imp.KERNEL32.dll_EnterCriticalSection]
mov eax, dword [esi]
xor ebx, ebx
mov ecx, esi
mov dword [esp + 0xc4], ebx
call dword [eax + 0x60]
mov ebp, dword [esp + 0xcc]
cmp dword [ebp + 0x14], ebx
jne 0x46ae4f
mov eax, str.NonNullValueName
mov dword [esp + 0x24], 0xf
mov dword [esp + 0x20], ebx
mov byte [esp + 0x10], bl
lea edx, [eax + 1]
mov cl, byte [eax]
inc eax
cmp cl, bl
jne 0x46ae07
sub eax, edx
push eax
push str.NonNullValueName
lea ecx, [esp + 0x14]
call fcn.00406650
push ebx
push ebx
push ebx
lea ecx, [esp + 0x18]
push ecx
lea ecx, [esp + 0x40]
mov byte [esp + 0xd4], 1
call fcn.00431ee0
push 0x4f0788
lea edx, [esp + 0x34]
push edx
mov dword [esp + 0x38], vtable.common::CRegistryException.0
call fcn.0049e394
mov edx, dword [esp + 0xd0]
cmp edx, ebx
jne 0x46aeba
mov eax, str.NonNullCallerDataPtr
mov dword [esp + 0x24], 0xf
mov dword [esp + 0x20], ebx
mov byte [esp + 0x10], bl
lea edx, [eax + 1]
mov cl, byte [eax]
inc eax
cmp cl, bl
jne 0x46ae72
sub eax, edx
push eax
push str.NonNullCallerDataPtr
lea ecx, [esp + 0x14]
call fcn.00406650
push ebx
push ebx
push ebx
lea eax, [esp + 0x18]
push eax
lea ecx, [esp + 0x40]
mov byte [esp + 0xd4], 2
call fcn.00431ee0
push 0x4f0788
lea ecx, [esp + 0x34]
push ecx
mov dword [esp + 0x38], vtable.common::CRegistryException.0
call fcn.0049e394
mov ecx, dword [esp + 0xd4]
cmp ecx, ebx
jne 0x46af03
push str.PositiveLength
lea ecx, [esp + 0x10]
call fcn.00407a20
push ebx
push ebx
push ebx
lea edx, [esp + 0x18]
push edx
lea ecx, [esp + 0x40]
mov byte [esp + 0xd4], 3
call fcn.00431ee0
push 0x4f0788
lea eax, [esp + 0x34]
push eax
mov dword [esp + 0x38], vtable.common::CRegistryException.0
call fcn.0049e394
cmp dword [ebp + 0x18], 0x10
jb 0x46af0e
mov eax, dword [ebp + 4]
jmp 0x46af11
lea eax, [ebp + 4]
push edi
push ecx
mov ecx, dword [esi + 0x20]
push edx
push 3
push ebx
push eax
push ecx
call dword [sym.imp.ADVAPI32.dll_RegSetValueExA]
mov edi, eax
cmp edi, ebx
je 0x46af92
add esi, 4
push esi
lea edx, [esp + 0x14]
push str.Failed_to_set_Binary_value
push edx
call fcn.00407fc0
push 0x4c6d54
push eax
lea eax, [esp + 0x9c]
push eax
mov byte [esp + 0xe0], 4
call fcn.00415180
push ebp
push eax
lea ecx, [esp + 0xc4]
push ecx
mov byte [esp + 0xec], 5
call fcn.00414500
add esp, 0x24
push eax
push edi
lea ecx, [esp + 0x3c]
mov byte [esp + 0xd0], 6
call fcn.00468320
push 0x4f964c
lea edx, [esp + 0x38]
push edx
call fcn.0049e394
mov ecx, esi
call fcn.0046a720
mov eax, dword [esi]
mov ecx, esi
call dword [eax + 0x60]
lea ecx, [esp + 0x2c]
call fcn.004129c0
mov ecx, dword [esp + 0xc0]
pop edi
pop esi
pop ebp
pop ebx
mov dword fs:[0], ecx
add esp, 0xbc
ret 0xc
Function at 0x46afec
Capabilities:
Delete registry value

Disassembly:
push 0xffffffffffffffff
push 0x4be451
mov eax, dword fs:[0]
push eax
mov dword fs:[0], esp
sub esp, 0xb0
push ebp
push esi
mov esi, ecx
lea eax, [esi + 0x38]
push eax
mov dword [esp + 0xc], eax
mov byte [esp + 0x10], 1
call dword [sym.imp.KERNEL32.dll_EnterCriticalSection]
mov eax, dword [esi]
mov ecx, esi
mov dword [esp + 0xc0], 0
call dword [eax + 0x60]
mov ebp, dword [esp + 0xc8]
mov eax, dword [ebp + 0x14]
test eax, eax
jne 0x46b08b
mov eax, str.NonNullValueName
mov dword [esp + 0x28], 0xf
mov dword [esp + 0x24], 0
mov byte [esp + 0x14], 0
lea edx, [eax + 1]
nop
mov cl, byte [eax]
inc eax
test cl, cl
jne 0x46b040
sub eax, edx
push eax
push str.NonNullValueName
lea ecx, [esp + 0x18]
call fcn.00406650
push 0
push 0
push 0
lea ecx, [esp + 0x1c]
push ecx
lea ecx, [esp + 0x3c]
mov byte [esp + 0xd0], 1
call fcn.00431ee0
push 0x4f0788
lea edx, [esp + 0x30]
push edx
mov dword [esp + 0x34], vtable.common::CRegistryException.0
call fcn.0049e394
cmp dword [ebp + 0x18], 0x10
jb 0x46b096
mov eax, dword [ebp + 4]
jmp 0x46b099
lea eax, [ebp + 4]
push edi
push eax
mov eax, dword [esi + 0x20]
push eax
call dword [sym.imp.ADVAPI32.dll_RegDeleteValueA]
mov edi, eax
test edi, edi
je 0x46b121
add esi, 4
push esi
lea ecx, [esp + 0x18]
push str.Failed_to_delete_value
push ecx
call fcn.00407fc0
push 0x4c6d54
push eax
lea edx, [esp + 0x98]
push edx
mov byte [esp + 0xdc], 2
call fcn.00415180
push ebp
push eax
lea eax, [esp + 0xc0]
push eax
mov byte [esp + 0xe8], 3
call fcn.00414500
add esp, 0x24
push 0
push edi
push 2
push eax
lea ecx, [esp + 0x40]
mov byte [esp + 0xd4], 4
call fcn.00431ee0
push 0x4f964c
lea ecx, [esp + 0x34]
push ecx
mov dword [esp + 0x38], vtable.common::CWin32RegistryException.0
call fcn.0049e394
mov ecx, esi
call fcn.0046a720
mov edx, dword [esi]
mov ecx, esi
call dword [edx + 0x60]
lea ecx, [esp + 0xc]
call fcn.004129c0
mov ecx, dword [esp + 0xbc]
pop edi
pop esi
pop ebp
mov dword fs:[0], ecx
add esp, 0xbc
ret 4

Function at 0x46b178
Capabilities:
Delete registry value

Disassembly:
push 0xffffffffffffffff
push 0x4bdf38
mov eax, dword fs:[0]
push eax
mov dword fs:[0], esp
sub esp, 8
push esi
mov esi, ecx
lea eax, [esi + 0x38]
push eax
mov dword [esp + 8], eax
mov byte [esp + 0xc], 1
call dword [sym.imp.KERNEL32.dll_EnterCriticalSection]
mov eax, dword [esi]
mov ecx, esi
mov dword [esp + 0x14], 0
call dword [eax + 0x60]
mov eax, dword [esp + 0x1c]
cmp dword [eax + 0x18], 0x10
jb 0x46b1ac
mov eax, dword [eax + 4]
jmp 0x46b1af
add eax, 4
mov ecx, dword [esi + 0x20]
push eax
push ecx
call dword [sym.imp.ADVAPI32.dll_RegDeleteValueA]
mov ecx, esi
call fcn.0046a720
mov edx, dword [esi]
mov ecx, esi
call dword [edx + 0x60]
lea ecx, [esp + 4]
call fcn.004129c0
mov ecx, dword [esp + 0xc]
pop esi
mov dword fs:[0], ecx
add esp, 0x14
ret 4
Function at 0x46b48c
Capabilities:
Set registry value

Disassembly:
push 0xffffffffffffffff
push 0x4be4cc
mov eax, dword fs:[0]
push eax
mov dword fs:[0], esp
sub esp, 0x104
push ebx
push esi
mov esi, ecx
lea eax, [esi + 0x38]
push edi
push eax
mov dword [esp + 0x10], eax
mov byte [esp + 0x14], 1
call dword [sym.imp.KERNEL32.dll_EnterCriticalSection]
mov eax, dword [esi]
xor edi, edi
mov ecx, esi
mov dword [esp + 0x118], edi
call dword [eax + 0x60]
mov ebx, dword [esp + 0x120]
cmp dword [ebx + 0x14], edi
jne 0x46b520
mov eax, str.NonNullValueName
mov dword [esp + 0x2c], 0xf
mov dword [esp + 0x28], edi
mov byte [esp + 0x18], 0
lea edx, [eax + 1]
mov cl, byte [eax]
inc eax
test cl, cl
jne 0x46b4d8
sub eax, edx
push eax
push str.NonNullValueName
lea ecx, [esp + 0x1c]
call fcn.00406650
push edi
push edi
push edi
lea ecx, [esp + 0x20]
push ecx
lea ecx, [esp + 0x40]
mov byte [esp + 0x128], 1
call fcn.00431ee0
push 0x4f0788
lea edx, [esp + 0x34]
push edx
mov dword [esp + 0x38], vtable.common::CRegistryException.0
call fcn.0049e394
cmp dword [ebx + 0x18], 0x10
jb 0x46b52b
mov eax, dword [ebx + 4]
jmp 0x46b52e
lea eax, [ebx + 4]
mov edx, dword [esi + 0x20]
push ebp
push 4
lea ecx, [esp + 0x12c]
push ecx
push 4
push edi
push eax
push edx
call dword [sym.imp.ADVAPI32.dll_RegSetValueExA]
mov ebp, eax
cmp ebp, edi
je 0x46b618
mov eax, dword [esp + 0x128]
push eax
lea ecx, [esp + 0x1c]
push ecx
call fcn.0040deb0
mov edi, eax
add esi, 4
push esi
lea edx, [esp + 0x104]
push str.Failed_to_set_UnsignedNumber_value
push edx
mov byte [esp + 0x130], 2
call fcn.00407fc0
push 0x4c6d54
push eax
lea eax, [esp + 0xa4]
push eax
mov byte [esp + 0x13c], 3
call fcn.00415180
push ebx
push eax
lea ecx, [esp + 0x104]
push ecx
mov byte [esp + 0x148], 4
call fcn.00414500
push str._to
push eax
lea edx, [esp + 0xd8]
push edx
mov byte [esp + 0x154], 5
call fcn.00415180
push edi
push eax
lea eax, [esp + 0x100]
push eax
mov byte [esp + 0x160], 6
call fcn.00414500
add esp, 0x44
push 0
push ebp
push 2
push eax
lea ecx, [esp + 0x44]
mov byte [esp + 0x12c], 7
call fcn.00431ee0
push 0x4f964c
lea ecx, [esp + 0x38]
push ecx
mov dword [esp + 0x3c], vtable.common::CWin32RegistryException.0
call fcn.0049e394
mov ecx, esi
call fcn.0046a720
mov edx, dword [esi]
mov ecx, esi
call dword [edx + 0x60]
lea ecx, [esp + 0x10]
call fcn.004129c0
mov ecx, dword [esp + 0x114]
pop ebp
pop edi
pop esi
pop ebx
mov dword fs:[0], ecx
add esp, 0x110
ret 8
Function at 0x46b650
Capabilities:
Access peb ldr_data

Disassembly:
push 0xffffffffffffffff
push 0x4be4e8
mov eax, dword fs:[0]
push eax
mov dword fs:[0], esp
sub esp, 0x28
mov eax, dword [esp + 0x38]
push ebx
push esi
xor ebx, ebx
push 0xffffffffffffffff
push ebx
mov esi, ecx
push eax
lea ecx, [esp + 0x1c]
mov dword [esp + 0x34], 0xf
mov dword [esp + 0x30], ebx
mov byte [esp + 0x20], bl
call fcn.00405f50
mov dword [esp + 0x2c], ebx
lea ecx, [esp + 0x10]
push ecx
lea edx, [esp + 0xc]
push edx
mov ecx, esi
mov dword [esp + 0x40], ebx
call fcn.0046b310
mov esi, dword [eax]
cmp dword [esp + 0x28], 0x10
jb 0x46b6be
mov eax, dword [esp + 0x14]
push eax
call fcn.0049db86
add esp, 4
mov ecx, dword [esp + 0x30]
lea eax, [esi + 0x28]
pop esi
pop ebx
mov dword fs:[0], ecx
add esp, 0x34
ret 4
Function at 0x46dc40
Capabilities:
Send data
Send data on socket

Disassembly:
mov eax, dword fs:[0]
push 0xffffffffffffffff
push 0x4be9ab
push eax
mov dword fs:[0], esp
sub esp, 0xc8
push ebp
mov ebp, dword [sym.imp.WS2_32.dll_WSASend]
push esi
mov esi, dword [esp + 0xe4]
push edi
mov edi, dword [esp + 0xe4]
mov ecx, esi
call fcn.00402360
cmp dword [esi], 1
je 0x46dc9e
push 0x73a
push str..._.._.._Common_NetworkWinSockHelperFunctions.h
push str.m_eState__eConfiguredForSend
push str.Allowed_to_send
call fcn.00421210
mov ecx, eax
call fcn.00421040
mov eax, dword [esi + 0x28]
cmp eax, dword [esi + 0x24]
jbe 0x46dcc6
push 0x73b
push str..._.._.._Common_NetworkWinSockHelperFunctions.h
push str.m_uNextIncompleteSendOrReceiveWSABUFIdx___m_uCurrentOrFinalPreparedWSABUFIdx
push str.Valid_m_uNextIncompleteSendOrReceiveWSABUFIdx
call fcn.00421210
mov ecx, eax
call fcn.00421040
mov edx, dword [esi + 0x24]
mov eax, dword [esi + 0x28]
push 0
push 0
push 0
lea ecx, [esp + 0x18]
sub edx, eax
push ecx
inc edx
push edx
mov ecx, esi
call fcn.0046d530
push eax
push edi
call ebp
cmp eax, 0xffffffff
je 0x46dd1b
mov eax, dword [esp + 0xc]
test eax, eax
je 0x46dd54
push eax
mov ecx, esi
call fcn.0046d640
test al, al
je 0x46dc72
mov ecx, dword [esp + 0xd4]
pop edi
pop esi
pop ebp
mov dword fs:[0], ecx
add esp, 0xd4
ret
call dword [sym.imp.WS2_32.dll_WSAGetLastError]
cmp eax, 0x2746
lea ecx, [esp + 0x2c]
jne 0x46dd40
call fcn.0046da00
push 0x4fa258
lea eax, [esp + 0x30]
push eax
call fcn.0049e394
call fcn.0046da90
push 0x4fa248
lea ecx, [esp + 0x30]
push ecx
call fcn.0049e394
mov eax, str.DoBlockingSend___:_send___succeeded_but_transferred_0_bytes.
mov dword [esp + 0x28], 0xf
mov dword [esp + 0x24], 0
mov byte [esp + 0x14], 0
lea edx, [eax + 1]
mov cl, byte [eax]
inc eax
test cl, cl
jne 0x46dd71
sub eax, edx
push eax
push str.DoBlockingSend___:_send___succeeded_but_transferred_0_bytes.
lea ecx, [esp + 0x18]
call fcn.00406650
lea edx, [esp + 0x10]
push edx
lea ecx, [esp + 0x84]
mov dword [esp + 0xe0], 0
call fcn.00451990
push 0x4f32cc
lea eax, [esp + 0x84]
push eax
call fcn.0049e394
int3
Function at 0x46ddc0
Capabilities:
Get socket status

Disassembly:
push 0xffffffffffffffff
push 0x4be9cb
mov eax, dword fs:[0]
push eax
mov dword fs:[0], esp
sub esp, 0x2d4
push ebx
push esi
mov esi, dword [esp + 0x2ec]
lea ecx, [esp + 8]
push ecx
lea edx, [esp + 0x1dc]
push edx
lea ecx, [esp + 0xdc]
xor ebx, ebx
push ecx
mov eax, 1
push ebx
push eax
mov dword [esp + 0xec], esi
mov dword [esp + 0xe8], eax
mov dword [esp + 0x1f0], esi
mov dword [esp + 0x1ec], eax
mov dword [esp + 0x1c], ebx
mov dword [esp + 0x20], ebx
call dword [sym.imp.WS2_32.dll_select]
cmp eax, 0xffffffff
jne 0x46de90
mov eax, str.select_failed:
mov dword [esp + 0x28], 0xf
mov dword [esp + 0x24], ebx
mov byte [esp + 0x14], bl
lea edx, [eax + 1]
lea esp, [esp]
mov cl, byte [eax]
inc eax
cmp cl, bl
jne 0x46de50
sub eax, edx
push eax
push str.select_failed:
lea ecx, [esp + 0x18]
call fcn.00406650
push ebx
push ebx
push 2
lea edx, [esp + 0x1c]
push edx
lea ecx, [esp + 0x3c]
mov dword [esp + 0x2f4], ebx
call fcn.00431ee0
push 0x4ef4e0
lea eax, [esp + 0x30]
push eax
call fcn.0049e394
lea ecx, [esp + 0xd4]
push ecx
push esi
call sub.WS2_32.dll___WSAFDIsSet
test eax, eax
je 0x46debb
pop esi
mov al, 1
pop ebx
mov ecx, dword [esp + 0x2d4]
mov dword fs:[0], ecx
add esp, 0x2e0
ret
lea edx, [esp + 0x1d8]
push edx
push esi
call sub.WS2_32.dll___WSAFDIsSet
test eax, eax
je 0x46def6
push 0x274d
call dword [sym.imp.WS2_32.dll_WSASetLastError]
lea ecx, [esp + 0x80]
call fcn.0046d970
push 0x4fa2c4
lea eax, [esp + 0x84]
push eax
call fcn.0049e394
mov ecx, dword [esp + 0x2dc]
pop esi
xor al, al
pop ebx
mov dword fs:[0], ecx
add esp, 0x2e0
ret
Function at 0x46df10
Capabilities:
Send data
Send data on socket

Disassembly:
sub esp, 0x54
push ebx
push ebp
push esi
push edi
mov edi, dword [esp + 0x70]
test edi, edi
jne 0x46df3f
push 0x474
push str.p4clients_rel_betaProjectsCommonNetworkWinSockHelperFunctions.cpp
push str.pCommandStatusControl
push str.NonNullCallerCommandStatusControlPtr
call fcn.00421210
mov ecx, eax
call fcn.00421040
cmp byte [edi], 0
jne 0x46e003
mov esi, dword [esp + 0x6c]
mov ebp, dword [esp + 0x68]
mov ebx, dword [sym.imp.WS2_32.dll_WSASend]
mov ecx, esi
call fcn.00402360
cmp dword [esi], 1
je 0x46df82
push 0x73a
push str..._.._.._Common_NetworkWinSockHelperFunctions.h
push str.m_eState__eConfiguredForSend
push str.Allowed_to_send
call fcn.00421210
mov ecx, eax
call fcn.00421040
mov eax, dword [esi + 0x28]
cmp eax, dword [esi + 0x24]
jbe 0x46dfaa
push 0x73b
push str..._.._.._Common_NetworkWinSockHelperFunctions.h
push str.m_uNextIncompleteSendOrReceiveWSABUFIdx___m_uCurrentOrFinalPreparedWSABUFIdx
push str.Valid_m_uNextIncompleteSendOrReceiveWSABUFIdx
call fcn.00421210
mov ecx, eax
call fcn.00421040
mov edx, dword [esi + 0x24]
mov eax, dword [esi + 0x28]
push 0
push 0
push 0
lea ecx, [esp + 0x7c]
sub edx, eax
push ecx
inc edx
push edx
mov ecx, esi
call fcn.0046d530
push eax
push ebp
call ebx
cmp eax, 0xffffffff
jne 0x46dfe6
call fcn.0046d380
test al, al
je 0x46e00d
push 0
mov byte [edi + 1], 1
call dword [sym.imp.KERNEL32.dll_Sleep]
jmp 0x46dffa
mov eax, dword [esp + 0x70]
push eax
mov ecx, esi
mov byte [edi + 1], 0
call fcn.0046d640
test al, al
jne 0x46e046
cmp byte [edi], 0
je 0x46df56
pop edi
pop esi
pop ebp
xor al, al
pop ebx
add esp, 0x54
ret
call dword [sym.imp.WS2_32.dll_WSAGetLastError]
cmp eax, 0x2746
lea ecx, [esp + 0x10]
jne 0x46e032
call fcn.0046da00
push 0x4fa258
lea ecx, [esp + 0x14]
push ecx
call fcn.0049e394
call fcn.0046da90
push 0x4fa248
lea edx, [esp + 0x14]
push edx
call fcn.0049e394
pop edi
pop esi
pop ebp
mov al, 1
pop ebx
add esp, 0x54
ret
Function at 0x46e6b0
Capabilities:
Act as tcp client
Connect socket
Connect tcp socket
Connect udp socket
Create tcp socket
Create udp socket

Disassembly:
push 0xffffffffffffffff
push 0x4bea81
mov eax, dword fs:[0]
push eax
mov dword fs:[0], esp
sub esp, 0xf4
mov eax, dword [0x509334]
xor eax, dword [esp + 0x100]
push esi
push 0
push 1
push 2
mov dword [esp + 0x100], eax
call dword [sym.imp.WS2_32.dll_socket]
mov esi, eax
cmp esi, 0xffffffff
jne 0x46e750
mov eax, str.socket___failed_to_create_session_socket
mov dword [esp + 0x1c], 0xf
mov dword [esp + 0x18], 0
mov byte [esp + 8], 0
lea edx, [eax + 1]
nop
mov cl, byte [eax]
inc eax
test cl, cl
jne 0x46e710
sub eax, edx
push eax
push str.socket___failed_to_create_session_socket
lea ecx, [esp + 0xc]
call fcn.00406650
lea eax, [esp + 4]
push eax
lea ecx, [esp + 0x50]
mov dword [esp + 0x104], 0
call fcn.00451990
push 0x4f32cc
lea ecx, [esp + 0x50]
push ecx
call fcn.0049e394
mov edx, dword [sym.imp.WS2_32.dll_closesocket]
push edi
push esi
push edx
lea eax, [esp + 0x10]
push eax
call fcn.00404300
add esp, 0xc
mov edi, dword [esp + 0x10c]
lea ecx, [esp + 0x24]
push ecx
mov ecx, edi
mov dword [esp + 0x108], 1
call fcn.0046d410
push 0x10
lea edx, [esp + 0x28]
push edx
push esi
call dword [sym.imp.WS2_32.dll_connect]
cmp eax, 0xffffffff
jne 0x46e7cc
push 0x3a
lea eax, [esp + 0x38]
push eax
mov ecx, edi
call fcn.0046e180
push eax
lea ecx, [esp + 0xa8]
mov byte [esp + 0x108], 2
call fcn.0046e1b0
push 0x4fa2c4
lea ecx, [esp + 0xa8]
push ecx
call fcn.0049e394
lea ecx, [esp + 8]
mov byte [esp + 0xc], 1
mov dword [esp + 8], vtable.ScopeGuardImpl1_int____stdcall___unsigned_int___unsigned_int_.0
call fcn.00401d40
mov ecx, dword [esp + 0xfc]
mov dword fs:[0], ecx
mov ecx, dword [esp + 0xf8]
xor ecx, dword [esp + 0x108]
pop edi
mov eax, esi
pop esi
add esp, 0x100
jmp fcn.0049e993
Function at 0x46e810
Capabilities:
Act as tcp client
Connect socket
Connect tcp socket
Connect udp socket
Create tcp socket
Create udp socket
Set socket configuration

Disassembly:
push 0xffffffffffffffff
push 0x4beabc
mov eax, dword fs:[0]
push eax
mov dword fs:[0], esp
sub esp, 0xf8
mov eax, dword [0x509334]
xor eax, dword [esp + 0x104]
push ebx
push esi
xor ebx, ebx
push ebx
push 1
push 2
mov dword [esp + 0x108], eax
call dword [sym.imp.WS2_32.dll_socket]
mov esi, eax
cmp esi, 0xffffffff
jne 0x46e8ac
mov eax, str.WSASocket___failed_to_create_session_socket
mov dword [esp + 0x24], 0xf
mov dword [esp + 0x20], ebx
mov byte [esp + 0x10], bl
lea edx, [eax + 1]
lea esp, [esp]
mov cl, byte [eax]
inc eax
cmp cl, bl
jne 0x46e870
sub eax, edx
push eax
push str.WSASocket___failed_to_create_session_socket
lea ecx, [esp + 0x14]
call fcn.00406650
lea eax, [esp + 0xc]
push eax
lea ecx, [esp + 0x58]
mov dword [esp + 0x10c], ebx
call fcn.00451990
push 0x4f32cc
lea ecx, [esp + 0x58]
push ecx
call fcn.0049e394
mov edx, dword [sym.imp.WS2_32.dll_closesocket]
push edi
push esi
push edx
lea eax, [esp + 0x18]
push eax
call fcn.00404300
add esp, 0xc
mov edi, dword [esp + 0x114]
lea ecx, [esp + 0x48]
push ecx
mov ecx, edi
mov dword [esp + 0x110], 1
call fcn.0046d410
lea edx, [esp + 0xc]
push edx
push 0x8004667e
push esi
mov dword [esp + 0x18], 1
call dword [sym.imp.WS2_32.dll_ioctlsocket]
cmp eax, 0xffffffff
jne 0x46e953
mov eax, str.Failed_to_set_socket_to_non_blocking
mov dword [esp + 0x44], 0xf
mov dword [esp + 0x40], ebx
mov byte [esp + 0x30], bl
lea edx, [eax + 1]
mov cl, byte [eax]
inc eax
cmp cl, bl
jne 0x46e916
sub eax, edx
push eax
push str.Failed_to_set_socket_to_non_blocking
lea ecx, [esp + 0x34]
call fcn.00406650
lea eax, [esp + 0x2c]
push eax
lea ecx, [esp + 0x5c]
mov byte [esp + 0x110], 2
call fcn.00451990
push 0x4f32cc
lea ecx, [esp + 0x5c]
push ecx
call fcn.0049e394
push 0x10
lea edx, [esp + 0x4c]
push edx
push esi
call dword [sym.imp.WS2_32.dll_connect]
cmp eax, 0xffffffff
jne 0x46e9a4
call fcn.0046d380
test al, al
jne 0x46e9a4
push 0x3a
lea eax, [esp + 0x30]
push eax
mov ecx, edi
call fcn.0046e180
push eax
lea ecx, [esp + 0xb0]
mov byte [esp + 0x110], 3
call fcn.0046e1b0
push 0x4fa2c4
lea ecx, [esp + 0xb0]
push ecx
call fcn.0049e394
lea ecx, [esp + 0x10]
mov byte [esp + 0x14], 1
mov dword [esp + 0x10], vtable.ScopeGuardImpl1_int____stdcall___unsigned_int___unsigned_int_.0
call fcn.00401d40
mov ecx, dword [esp + 0x104]
pop edi
mov dword fs:[0], ecx
mov ecx, dword [esp + 0xfc]
xor ecx, dword [esp + 0x10c]
mov eax, esi
pop esi
pop ebx
add esp, 0x104
jmp fcn.0049e993