joyce8/EMBER2024-capa huggingface dataset:
Function at 0x14013e170
Capabilities:
Get local ipv4 addresses
Get socket information
Set socket configuration

Disassembly:
push r12
push rbp
push rdi
push rsi
push rbx
sub rsp, 0xb0
mov rsi, qword [rcx + 0x18]
mov rdi, qword [rsi + 0x1c0]
lea r12, [rsp + 0x20]
lea rbp, [rsp + 0x30]
mov rbx, rcx
mov qword [rsp + 0x28], 0xffffffffffffffff
mov dword [rsp + 0x20], pe_nt_image_headers64
mov r8, r12
mov rdx, rbp
mov rcx, rdi
call qword [sym.imp.WS2_32.dll_getsockname]
test eax, eax
je 0x14013e280
mov rax, qword [rsp + 0x28]
cmp rax, 0xffffffffffffffff
je 0x14013e2a6
lea rdx, str.Connection_accepted_from_server
mov rcx, rbx
call fcn.140123250
lea r8, [rsp + 0x24]
mov edx, 0x8004667e
and byte [rsi + 0x361], 0xdf
mov dword [rsp + 0x24], 1
mov rcx, qword [rsp + 0x28]
call qword [sym.imp.WS2_32.dll_ioctlsocket]
lea r8, [rsp + 0x28]
mov rdx, rsi
mov rcx, rbx
call fcn.14027aba0
mov edi, eax
test eax, eax
jne 0x14013e26b
mov rax, qword [rbx + 0x270]
test rax, rax
je 0x14013e26b
mov rdx, qword [rbx + 0xd8]
test rdx, rdx
je 0x14013e2d0
mov byte [rdx + 0x18b], 1
mov rdx, qword [rsp + 0x28]
mov rcx, qword [rbx + 0x278]
mov r8d, 1
call rax
mov rdx, qword [rbx + 0xd8]
test rdx, rdx
je 0x14013e2e8
mov byte [rdx + 0x18b], 0
test eax, eax
jne 0x14013e300
mov eax, edi
add rsp, 0xb0
pop rbx
pop rsi
pop rdi
pop rbp
pop r12
ret
mov dword [rsp + 0x20], pe_nt_image_headers64
mov r8, r12
mov rdx, rbp
mov rcx, rdi
call qword [sym.imp.WS2_32.dll_accept]
mov qword [rsp + 0x28], rax
cmp rax, 0xffffffffffffffff
jne 0x14013e1cc
lea rdx, str.Error_accept__ing_server_connect
mov rcx, rbx
mov edi, 0x1e
call fcn.1401234a0
mov eax, edi
add rsp, 0xb0
pop rbx
pop rsi
pop rdi
pop rbp
pop r12
ret
mov rdx, qword [rbx + 0xd0]
test rdx, rdx
jne 0x14013e231
jmp 0x14013e238
mov rdx, qword [rbx + 0xd0]
test rdx, rdx
jne 0x14013e25c
jmp 0x14013e263
mov rax, qword [rbx + 0x18]
mov rcx, qword [rax + 0x208]
test rcx, rcx
je 0x14013e319
mov rax, qword [rcx]
mov rdx, rbx
call qword [rax + 0x28]
mov rdi, qword [rsi + 0x208]
test rdi, rdi
je 0x14013e35e
mov qword [rsi + 0x208], 0
mov rbp, qword [0x14048b5b0]
nop word [rax + rax]
mov rsi, rdi
mov rdi, qword [rdi + 8]
mov rdx, rbx
mov rax, qword [rsi]
mov rcx, rsi
call qword [rax + 0x10]
mov rcx, rsi
call qword [rbp]
test rdi, rdi
jne 0x14013e340
mov edi, 0x2a
jmp 0x14013e26b
Function at 0x140141ad0
Capabilities:
Get local ipv4 addresses
Get socket information

Disassembly:
push r12
push rbp
push rdi
push rsi
push rbx
sub rsp, 0x1b0
xor eax, eax
lea rbx, [rsp + 0x30]
mov r10, rdx
mov r12, rcx
mov ecx, 0x10
mov rdi, rbx
mov rsi, r8
mov rbp, r9
mov rdx, rbx
rep stosq qword [rdi], rax
mov dword [rsp + 0x2c], pe_nt_image_headers64
lea r8, [rsp + 0x2c]
mov rcx, r10
call qword [sym.imp.WS2_32.dll_getsockname]
test eax, eax
jne 0x140141b40
mov edx, dword [rsp + 0x2c]
mov r9, rbp
mov r8, rsi
mov rcx, rbx
call fcn.14013c800
test al, al
je 0x140141b88
add rsp, 0x1b0
pop rbx
pop rsi
pop rdi
pop rbp
pop r12
ret
call qword [sym.imp.WS2_32.dll_WSAGetLastError]
lea rdx, [rsp + 0xb0]
mov r8d, 0x100
mov ecx, eax
mov ebx, eax
call fcn.140127c70
mov r8d, ebx
lea rdx, str.getsockname___failed_with_errno__d:__s
mov rcx, r12
mov r9, rax
call fcn.1401234a0
nop
add rsp, 0x1b0
pop rbx
pop rsi
pop rdi
pop rbp
pop r12
ret
mov rsi, qword [sym.imp.msvcrt.dll__errno]
call rsi
lea rdx, [rsp + 0xb0]
mov r8d, 0x100
mov ecx, dword [rax]
call fcn.140127c70
mov rbx, rax
call rsi
mov r9, rbx
lea rdx, str.ssloc_inet_ntop___failed_with_errno__d:__s
mov rcx, r12
mov r8d, dword [rax]
call fcn.1401234a0
nop
add rsp, 0x1b0
pop rbx
pop rsi
pop rdi
pop rbp
pop r12
ret

Function at 0x140142730
Capabilities:
Convert ip address from string
Encode data using xor
Hash data using djb2

Disassembly:
push rsi
push rbx
sub rsp, 0x48
mov rbx, rcx
test rcx, rcx
je 0x140142758
mov rdx, rcx
mov rsi, qword [sym.imp.WS2_32.dll_inet_pton]
lea r8, [rsp + 0x2c]
mov ecx, 2
call rsi
test eax, eax
jle 0x140142768
xor eax, eax
add rsp, 0x48
pop rbx
pop rsi
ret
lea r8, [rsp + 0x30]
mov rdx, rbx
mov ecx, 0x17
call rsi
test eax, eax
jg 0x140142758
mov rcx, rbx
call sub.msvcrt.dll_strlen
mov r8, rax
mov rcx, rax
mov eax, 5
test r8, r8
je 0x14014275a
lea rdx, [rbx + r8 - 1]
cmp rdx, rbx
jae 0x1401427a9
jmp 0x1401427e1
sub rdx, 1
cmp rdx, rbx
jb 0x1401427e1
cmp byte [rdx], 0x2e
jne 0x1401427a0
sub rdx, rbx
je 0x1401427e1
lea rdx, [rbx + rdx - 1]
cmp rdx, rbx
jae 0x1401427c9
jmp 0x1401427e1
sub rdx, 1
cmp rdx, rbx
jb 0x1401427e1
cmp byte [rdx], 0x2e
jne 0x1401427c0
add rdx, 1
mov rcx, r8
mov rax, rdx
sub rax, rbx
mov rbx, rdx
sub rcx, rax
add rcx, rbx
cmp rbx, rcx
jae 0x140142821
mov r8, qword [0x14048f880]
mov eax, 0x1505
nop dword [rax]
mov rdx, rax
add rbx, 1
shl rdx, 5
add rax, rdx
movzx edx, byte [rbx - 1]
movsx rdx, byte [r8 + rdx]
xor rax, rdx
cmp rcx, rbx
jne 0x1401427f8
movzx eax, al
add rsp, 0x48
pop rbx
pop rsi
ret
mov eax, 5
jmp 0x14014275a
Function at 0x140143990
Capabilities:
Query environment variable

Disassembly:
push r13
push r12
push rbp
push rdi
push rsi
push rbx
sub rsp, 0x28
mov rbp, qword [0x14048b5f0]
mov esi, 1
xor ebx, ebx
mov r12, qword [sym.imp.KERNEL32.dll_GetEnvironmentVariableA]
mov rdi, rcx
jmp 0x1401439e1
mov rdx, rax
mov r8d, esi
mov rcx, rdi
call r12
lea edx, [rax - 1]
cmp edx, 0x7fff
ja 0x140143a18
cmp esi, eax
je 0x140143a18
cmp eax, esi
jb 0x140143a02
mov esi, eax
mov rcx, rbx
mov edx, esi
mov r13, rbx
call qword [rbp]
mov rbx, rax
test rax, rax
jne 0x1401439c0
mov rax, qword [0x14048b5b0]
mov rcx, r13
xor ebx, ebx
call qword [rax]
mov rax, rbx
add rsp, 0x28
pop rbx
pop rsi
pop rdi
pop rbp
pop r12
pop r13
ret
mov rax, qword [0x14048b5b0]
mov rcx, rbx
xor ebx, ebx
call qword [rax]
jmp 0x140143a02
Function at 0x140145460
Capabilities:
Check http status code
Get local ipv4 addresses
Get socket information

Disassembly:
sub rsp, 0x38
mov rax, qword [rcx + 0x1b0]
mov rdx, qword [rcx + 0x18]
mov eax, dword [rax + 0x10]
test eax, eax
jne 0x1401454f0
movzx eax, byte [rcx + 0xae1]
test al, 8
jne 0x1401454e0
test al, 0x40
je 0x140145530
mov r9, qword [rdx + 0x4d0]
add rdx, 0x440
test r9, r9
je 0x140145540
test byte [rcx + 0xae3], 8
jne 0x140145510
lea r8, str.PRET_RETR__s
mov qword [rsp + 0x28], rcx
call fcn.1401593a0
mov rcx, qword [rsp + 0x28]
test eax, eax
jne 0x1401454d1
mov rdx, qword [rcx + 0x18]
mov dword [rdx + 0x510], 0x1d
add rsp, 0x38
ret
xor edx, edx
add rsp, 0x38
jmp fcn.140144bc0
mov dword [rdx + 0x510], 0xd
mov r8d, 0xd
mov edx, 1
add rsp, 0x38
jmp fcn.1401459b0
lea r8, str.PRET_STOR__s
mov qword [rsp + 0x28], rcx
call fcn.1401593a0
mov rcx, qword [rsp + 0x28]
jmp 0x1401454bf
add rsp, 0x38
jmp fcn.14013e4c0
mov r9, qword [rcx + 0x798]
test r9, r9
je 0x140145570
lea r8, str.PRET__s
mov qword [rsp + 0x28], rcx
call fcn.1401593a0
mov rcx, qword [rsp + 0x28]
jmp 0x1401454bf
test byte [rcx + 0x133a], 1
lea r9, [0x1403f3cd6]
lea rax, str.NLST
cmovne r9, rax
jmp 0x14014554c

Function at 0x140145590
Capabilities:
Check http status code
Get local ipv4 addresses
Get socket information

Disassembly:
push rbx
sub rsp, 0x20
mov rax, qword [rcx + 0x1b0]
mov eax, dword [rax + 0x10]
mov rbx, rcx
cmp eax, 1
jne 0x1401455e0
mov r9, qword [rdx + 0x4d0]
test r9, r9
je 0x1401455e4
add rdx, 0x440
lea r8, str.SIZE__s
call fcn.1401593a0
test eax, eax
jne 0x1401455da
mov rax, qword [rbx + 0x18]
mov dword [rax + 0x510], 0x17
xor eax, eax
add rsp, 0x20
pop rbx
ret
test eax, eax
jne 0x1401455f8
mov rcx, rbx
add rsp, 0x20
pop rbx
jmp fcn.140145460
cmp qword [rdx + 0x4d0], 0
je 0x1401455e4
add rdx, 0x440
xor r9d, r9d
lea r8, str.REST__d
call fcn.1401593a0
test eax, eax
jne 0x1401455da
mov rax, qword [rbx + 0x18]
mov dword [rax + 0x510], 0x1a
xor eax, eax
jmp 0x1401455da
Function at 0x140145630
Capabilities:
Check http status code
Get local ipv4 addresses
Get socket information

Disassembly:
push r12
push rbp
push rdi
push rsi
push rbx
sub rsp, 0x50
mov rdi, qword [rcx + 0x18]
lea eax, [rdx - 0xc8]
mov rbx, rcx
mov esi, r8d
cmp eax, 0x63
ja 0x140145778
cmp edx, 0xc8
jne 0x140145688
cmp esi, 0x13
je 0x14014569c
cmp esi, 0x14
je 0x1401456d8
mov r8d, 0xd
cmp esi, 0x15
je 0x1401456be
cmp esi, 0x16
je 0x1401456b8
xor eax, eax
add rsp, 0x50
pop rbx
pop rsi
pop rdi
pop rbp
pop r12
ret
mov r8d, edx
lea rdx, str.Got_a__03d_response_code_instead_of_the_assumed_200
call fcn.140123250
cmp esi, 0x13
jne 0x140145660
mov rdx, rdi
mov rcx, rbx
add rsp, 0x50
pop rbx
pop rsi
pop rdi
pop rbp
pop r12
jmp fcn.140145590
mov r8d, 0xe
mov edx, 1
mov rcx, rbx
add rsp, 0x50
pop rbx
pop rsi
pop rdi
pop rbp
pop r12
jmp fcn.1401459b0
cmp byte [rbx + 0x730], 2
mov rax, qword [rbx + 0x1b0]
mov rbp, qword [rbx + 0x18]
mov rdi, qword [0x14048b5b0]
je 0x140145798
lea r9, [0x1403f39ae]
xor r12d, r12d
mov r8, r9
mov rdx, qword [rbx + 0x798]
test rdx, rdx
je 0x140145808
lea rcx, [0x1403f3d5c]
call fcn.14011ff20
mov rcx, r12
mov rsi, rax
call qword [rdi]
test rsi, rsi
je 0x140145830
lea rdx, [rbp + 0x440]
mov r9, rsi
lea r8, [0x1403f2f8c]
mov rcx, rbx
call fcn.1401593a0
mov rcx, rsi
mov dword [rsp + 0x3c], eax
call qword [rdi]
mov eax, dword [rsp + 0x3c]
test eax, eax
jne 0x140145677
mov rax, qword [rbx + 0x18]
mov dword [rax + 0x510], 0x1f
jmp 0x140145675
lea rdx, str.Couldnt_set_desired_mode
call fcn.1401234a0
mov eax, 0x11
add rsp, 0x50
pop rbx
pop rsi
pop rdi
pop rbp
pop r12
ret
mov rcx, qword [rax]
test rcx, rcx
je 0x1401456f7
mov dword [rsp + 0x20], 3
xor r9d, r9d
xor edx, edx
lea r8, [rsp + 0x48]
mov qword [rsp + 0x48], 0
call fcn.140143280
test eax, eax
jne 0x140145677
mov r12, qword [rsp + 0x48]
mov edx, 0x2f
mov rcx, r12
call sub.msvcrt.dll_strrchr
test rax, rax
je 0x14014583a
sub rax, r12
mov edx, 1
mov r9, r12
cmove rax, rdx
lea r8, [0x1403f3d05]
mov byte [r12 + rax], 0
jmp 0x140145704
test byte [rbx + 0x133a], 1
lea rdx, [0x1403f3cd6]
lea rax, str.NLST
cmovne rdx, rax
jmp 0x140145714
mov eax, 0x1b
jmp 0x140145677
mov rcx, r12
call qword [rdi]
jmp 0x1401456f7

Function at 0x140145850
Capabilities:
Check http status code
Get local ipv4 addresses
Get socket information

Disassembly:
push rbp
push rdi
push rsi
push rbx
sub rsp, 0x28
cmp r8b, 1
mov rdi, rcx
mov rsi, rdx
mov ebp, r9d
sbb ebx, ebx
and ebx, 8
add ebx, 0x41
cmp byte [rdx + 0x500], bl
je 0x1401458b0
lea rdx, [rdx + 0x440]
movsx r9d, bl
lea r8, str.TYPE__c
call fcn.1401593a0
test eax, eax
jne 0x1401458a0
mov rdx, qword [rdi + 0x18]
mov dword [rdx + 0x510], ebp
mov byte [rsi + 0x500], bl
add rsp, 0x28
pop rbx
pop rsi
pop rdi
pop rbp
ret
mov rax, qword [rcx + 0x18]
mov r8d, r9d
mov edx, 0xc8
mov dword [rax + 0x510], r9d
add rsp, 0x28
pop rbx
pop rsi
pop rdi
pop rbp
jmp fcn.140145630
Function at 0x1401458d0
Capabilities:
Check http status code
Get local ipv4 addresses
Get socket information

Disassembly:
mov r9, qword [rcx + 0x1b0]
mov rdx, qword [rcx + 0x18]
test byte [rcx + 0x1c5], 4
je 0x140145930
cmp qword [rdx + 0x4d0], 0
je 0x140145930
movzx r8d, byte [rcx + 0x1339]
movsx r10d, byte [rdx + 0x500]
shr r8b, 7
cmp r8b, 1
sbb eax, eax
and eax, 8
add eax, 0x41
cmp r10d, eax
je 0x140145930
mov dword [r9 + 0x10], 1
and r8d, 1
mov r9d, 0x13
jmp fcn.140145850
jmp fcn.140145590

Function at 0x140145940
Capabilities:
Check http status code
Get local ipv4 addresses
Get socket information

Disassembly:
push rbx
sub rsp, 0x20
mov rdx, qword [rcx + 0x18]
mov rbx, rcx
test byte [rcx + 0xae0], 0x40
jne 0x14014595e
cmp byte [rcx + 0x548], 0
je 0x1401459a0
mov r9, qword [rdx + 0x4d0]
test r9, r9
je 0x1401459a0
add rdx, 0x440
lea r8, str.MDTM__s
mov rcx, rbx
call fcn.1401593a0
test eax, eax
jne 0x140145992
mov rdx, qword [rbx + 0x18]
mov dword [rdx + 0x510], 0x12
add rsp, 0x20
pop rbx
ret
mov rcx, rbx
add rsp, 0x20
pop rbx
jmp fcn.1401458d0
Function at 0x140156c50
Capabilities:
Encrypt data using rc4 prga

Disassembly:
push rbp
push rdi
push rsi
push rbx
sub rsp, 0x38
movabs rax, 0x5d2a25207b2928
mov qword [rsp + 0x28], rax
mov rbx, rcx
mov ebp, edx
mov r10d, edx
test rcx, rcx
je 0x140156de0
movzx eax, byte [rcx]
test al, al
je 0x140156dc0
mov rdx, rcx
xor edi, edi
xor ecx, ecx
xor esi, esi
jmp 0x140156cad
cmp al, 0x22
je 0x140156d30
test r10b, r10b
je 0x140156d40
movzx eax, byte [rdx + 1]
add rdx, 1
test al, al
je 0x140156cc1
cmp al, 0x5c
jne 0x140156c90
movzx eax, byte [rdx + 1]
add rdx, 1
add rsi, 1
test al, al
jne 0x140156cad
mov rax, rsi
or rax, rdi
jne 0x140156cd1
test cl, cl
je 0x140156dc0
mov rcx, rbx
add rsi, rdi
call sub.msvcrt.dll_strlen
mov rdx, rax
mov eax, ebp
xor eax, 1
movzx eax, al
lea rsi, [rsi + rax*2]
mov rax, qword [0x14048b5c0]
add rsi, rdx
lea rcx, [rsi + 1]
call qword [rax]
test rax, rax
je 0x140156de0
mov rdx, rax
test bpl, bpl
jne 0x140156d95
mov byte [rax], 0x22
lea rdx, [rax + 1]
mov byte [rax + rsi - 1], 0x22
movzx ecx, byte [rbx]
test cl, cl
jne 0x140156d9c
mov byte [rax + rsi], 0
add rsp, 0x38
pop rbx
pop rsi
pop rdi
pop rbp
ret
add rdi, 1
jmp 0x140156ca1
test cl, cl
jne 0x140156ca1
lea r8, [rsp + 0x28]
mov ecx, 0x28
jmp 0x140156d5d
cmp al, r9b
je 0x140156db0
add r8, 1
mov r9d, ecx
movzx ecx, byte [r8]
test cl, cl
jne 0x140156d58
cmp al, r9b
sete cl
jmp 0x140156ca1
mov byte [rdx], 0x5c
add rdx, 1
movzx ecx, byte [rbx]
add rdx, 1
add rbx, 1
mov byte [rdx - 1], cl
movzx ecx, byte [rbx]
test cl, cl
je 0x140156d23
cmp cl, 0x5c
je 0x140156d80
cmp cl, 0x22
jne 0x140156d87
mov byte [rdx], 0x5c
add rdx, 1
jmp 0x140156d87
mov ecx, 1
jmp 0x140156ca1
mov rax, qword [0x14048b600]
mov rcx, rbx
mov rax, qword [rax]
add rsp, 0x38
pop rbx
pop rsi
pop rdi
pop rbp
jmp rax
xor eax, eax
add rsp, 0x38
pop rbx
pop rsi
pop rdi
pop rbp
ret
Function at 0x14015d760
Capabilities:
Send data
Send data on socket

Disassembly:
push rdi
push rsi
push rbx
sub rsp, 0x30
xor r9d, r9d
mov rax, qword [rcx + 0x18]
mov byte [rsp + 0x2e], dl
mov rbx, rcx
mov edi, edx
mov esi, r8d
mov byte [rsp + 0x2f], r8b
lea rdx, [rsp + 0x2d]
mov rcx, qword [rax + 0x1b8]
mov r8d, 3
mov byte [rsp + 0x2d], 0xff
call qword [sym.imp.WS2_32.dll_send]
test eax, eax
js 0x14015d7d0
test byte [rbx + 0xae3], 0x10
je 0x14015d7bf
mov r9d, esi
mov r8d, edi
lea rdx, str.SENT
mov rcx, rbx
call fcn.14015d190
nop
add rsp, 0x30
pop rbx
pop rsi
pop rdi
ret
call qword [sym.imp.WS2_32.dll_WSAGetLastError]
lea rdx, str.Sending_data_failed___d_
mov rcx, rbx
mov r8d, eax
call fcn.1401234a0
jmp 0x14015d7a0

Function at 0x14015d970
Capabilities:
Send data
Send data on socket

Disassembly:
push r15
push r14
push r13
push r12
push rbp
push rdi
push rsi
push rbx
sub rsp, 0x28
mov rbx, qword [rcx + 0x1b0]
mov r12, qword [rcx + 0x18]
mov rsi, rcx
cmp edx, 0x1f
je 0x14015d9a8
add rsp, 0x28
pop rbx
pop rsi
pop rdi
pop rbp
pop r12
pop r13
pop r14
pop r15
ret
lea rbp, [rbx + 0x1cb8]
lea rdi, [rbx + 0x1eb8]
cmp rbp, rdi
jb 0x14015db48
mov qword [rbx + 0x1eb8], rbp
lea r13, [rbx + 0x1cbb]
movzx ecx, word [rbx + 0x1ca8]
mov r15, qword [sym.imp.WS2_32.dll_htons]
call r15
movzx ecx, word [rbx + 0x1caa]
mov r14d, eax
call r15
mov rdx, qword [rbx + 0x1eb8]
cmp rdx, rdi
jae 0x14015da92
lea rcx, [rdx + 1]
mov qword [rbx + 0x1eb8], rcx
mov byte [rdx], r14b
mov rdx, qword [rbx + 0x1eb8]
cmp rdx, rdi
jae 0x14015da92
lea rcx, [rdx + 1]
mov qword [rbx + 0x1eb8], rcx
mov ecx, r14d
mov byte [rdx], ch
mov rdx, qword [rbx + 0x1eb8]
cmp rdx, rdi
jae 0x14015da92
lea rcx, [rdx + 1]
mov qword [rbx + 0x1eb8], rcx
mov byte [rdx], al
mov rdx, qword [rbx + 0x1eb8]
cmp rdx, rdi
jae 0x14015da92
lea rcx, [rdx + 1]
mov qword [rbx + 0x1eb8], rcx
mov byte [rdx], ah
mov rdx, qword [rbx + 0x1eb8]
cmp rdx, rdi
jae 0x14015da92
lea rax, [rdx + 1]
mov qword [rbx + 0x1eb8], rax
mov byte [rdx], 0xff
mov rdx, qword [rbx + 0x1eb8]
cmp rdx, rdi
jae 0x14015da92
lea rax, [rdx + 1]
mov qword [rbx + 0x1eb8], rax
mov byte [rdx], 0xf0
mov rdx, qword [rbx + 0x1eb8]
mov qword [rbx + 0x1ec0], rdx
mov qword [rbx + 0x1eb8], rbp
test byte [rsi + 0xae3], 0x10
je 0x14015dac4
sub rdx, rbp
lea r8, [rbx + 0x1cba]
mov rcx, rsi
lea r9, [rdx - 2]
mov edx, 0x3e
call fcn.14015d2b0
xor r9d, r9d
mov rdi, qword [sym.imp.WS2_32.dll_send]
mov r8d, 3
mov rdx, rbp
mov rcx, qword [r12 + 0x1b8]
call rdi
test eax, eax
js 0x14015db70
mov r8d, 4
mov rdx, r13
mov rcx, rsi
call fcn.14015d7f0
xor r9d, r9d
mov rcx, qword [r12 + 0x1b8]
lea rdx, [rbx + 0x1cbf]
mov r8d, 2
call rdi
test eax, eax
jns 0x14015d993
call qword [sym.imp.WS2_32.dll_WSAGetLastError]
lea rdx, str.Sending_data_failed___d_
mov rcx, rsi
mov r8d, eax
add rsp, 0x28
pop rbx
pop rsi
pop rdi
pop rbp
pop r12
pop r13
pop r14
pop r15
jmp fcn.1401234a0
lea r13, [rbx + 0x1cbb]
mov eax, 0xfffffaff
mov byte [rbx + 0x1cba], 0x1f
mov qword [rbx + 0x1eb8], r13
mov word [rbx + 0x1cb8], ax
jmp 0x14015d9cd
call qword [sym.imp.WS2_32.dll_WSAGetLastError]
lea rdx, str.Sending_data_failed___d_
mov rcx, rsi
mov r8d, eax
call fcn.1401234a0
jmp 0x14015dae9
Function at 0x14016acf0
Capabilities:
Authenticate hmac
Encode data using xor

Disassembly:
push r13
push r12
push rbp
push rdi
push rsi
push rbx
sub rsp, 0x38
mov eax, dword [rcx + 0x18]
mov rsi, rdx
lea edx, [rax + rax]
mov eax, dword [rcx + 0x20]
mov rbx, rcx
mov r12d, r8d
lea rcx, [rdx + rax + 0x18]
mov rax, qword [0x14048b5c0]
call qword [rax]
mov rdi, rax
test rax, rax
je 0x14016adec
lea rcx, [rax + 0x18]
mov qword [rax], rbx
mov qword [rax + 8], rcx
mov eax, dword [rbx + 0x18]
add rax, rcx
mov qword [rdi + 0x10], rax
cmp dword [rbx + 0x1c], r12d
jb 0x14016ae00
call qword [rbx]
mov ebp, r12d
mov rcx, qword [rdi + 0x10]
call qword [rbx]
test r12d, r12d
je 0x14016ae30
lea r13, [rsi + rbp]
lea r12, [rsp + 0x2f]
nop dword [rax]
movzx eax, byte [rsi]
add rsi, 1
mov rcx, qword [rdi + 8]
mov rdx, r12
mov r8d, 1
xor eax, 0x36
mov byte [rsp + 0x2f], al
call qword [rbx + 8]
movzx eax, byte [rsi - 1]
mov rcx, qword [rdi + 0x10]
mov rdx, r12
mov r8d, 1
xor eax, 0x5c
mov byte [rsp + 0x2f], al
call qword [rbx + 8]
cmp rsi, r13
jne 0x14016ad68
mov eax, dword [rbx + 0x1c]
cmp rbp, rax
jae 0x14016adec
lea r12, [0x1403fb0b5]
lea rsi, str.6Bad_label
nop dword [rax]
mov rcx, qword [rdi + 8]
mov r8d, 1
mov rdx, r12
add rbp, 1
call qword [rbx + 8]
mov rcx, qword [rdi + 0x10]
mov r8d, 1
mov rdx, rsi
call qword [rbx + 8]
mov eax, dword [rbx + 0x1c]
cmp rbp, rax
jb 0x14016adc0
mov rax, rdi
add rsp, 0x38
pop rbx
pop rsi
pop rdi
pop rbp
pop r12
pop r13
ret
call qword [rbx]
mov r8d, r12d
mov rdx, rsi
mov rcx, qword [rdi + 8]
call qword [rbx + 8]
mov esi, dword [rbx + 0x18]
add rsi, qword [rdi + 0x10]
mov rcx, rsi
mov rdx, qword [rdi + 8]
call qword [rbx + 0x10]
mov r12d, dword [rbx + 0x20]
mov rcx, qword [rdi + 8]
jmp 0x14016ad47
xor ebp, ebp
jmp 0x14016ada6
Function at 0x14016c0d0
Capabilities:
Convert ip address from string

Disassembly:
push r15
push r14
push r13
push r12
push rbp
push rdi
push rsi
push rbx
sub rsp, 0x58
cmp byte [rcx + rdx - 1], 0x2e
lea rbp, [rdx - 1]
lea rsi, [r9 - 1]
mov rbx, r8
mov rdi, rcx
cmovne rbp, rdx
cmp byte [r8 + r9 - 1], 0x2e
mov edx, 0x2a
mov rcx, rbx
cmovne rsi, r9
mov r8, rsi
call sub.msvcrt.dll_memchr
mov r12, rax
test rax, rax
je 0x14016c1a8
mov r13, qword [sym.imp.WS2_32.dll_inet_pton]
lea r8, [rsp + 0x3c]
mov rdx, rdi
mov ecx, 2
call r13
test eax, eax
jle 0x14016c150
xor esi, esi
mov eax, esi
add rsp, 0x58
pop rbx
pop rsi
pop rdi
pop rbp
pop r12
pop r13
pop r14
pop r15
ret
lea r8, [rsp + 0x40]
mov rdx, rdi
mov ecx, 0x17
call r13
test eax, eax
jg 0x14016c138
mov r8, rsi
mov edx, 0x2e
mov rcx, rbx
call sub.msvcrt.dll_memchr
mov r13, rax
test rax, rax
je 0x14016c1a8
test rsi, rsi
je 0x14016c1d0
lea rax, [rbx + rsi - 1]
cmp rax, rbx
jae 0x14016c199
jmp 0x14016c1d0
sub rax, 1
cmp rax, rbx
jb 0x14016c1d0
cmp byte [rax], 0x2e
jne 0x14016c190
cmp r13, rax
jne 0x14016c1d0
nop dword [rax + rax]
cmp rbp, rsi
jne 0x14016c138
xor esi, esi
test rdi, rdi
je 0x14016c13a
mov r8, rbp
mov rdx, rbx
mov rcx, rdi
call fcn.140124300
test eax, eax
setne sil
jmp 0x14016c13a
movzx eax, byte [rbx]
test al, al
je 0x14016c238
mov r10, qword [0x14048f880]
mov r9, rbx
lea rcx, [0x1403fa118]
mov r8d, 4
jmp 0x14016c215
test r8, r8
je 0x14016c1a8
movzx edx, byte [r10 + rdx]
cmp byte [r10 + rax], dl
jne 0x14016c238
movzx eax, byte [r9 + 1]
add r9, 1
sub r8, 1
add rcx, 1
test al, al
je 0x14016c21c
movzx edx, byte [rcx]
test dl, dl
jne 0x14016c1f0
test r8, r8
je 0x14016c1a8
mov rdx, qword [0x14048f880]
movzx ecx, byte [rcx]
movzx ecx, byte [rdx + rcx]
cmp byte [rdx + rax], cl
je 0x14016c1a8
mov r8, rbp
mov edx, 0x2e
mov rcx, rdi
call sub.msvcrt.dll_memchr
mov r14, rax
test rax, rax
je 0x14016c138
mov r9, rax
mov r15, r13
sub r9, rdi
sub r15, rbx
sub rbp, r9
sub rsi, r15
cmp rsi, rbp
jne 0x14016c138
mov r8, rsi
mov rdx, r13
mov rcx, rax
mov qword [rsp + 0x28], r9
call fcn.140124300
mov r9, qword [rsp + 0x28]
cmp r9, r15
setl sil
test eax, eax
sete al
or sil, al
jne 0x14016c138
mov r8, r12
mov rdx, rdi
mov rcx, rbx
sub r8, rbx
call fcn.140124300
test eax, eax
je 0x14016c13a
lea rcx, [r12 + 1]
mov r8, r13
mov rdx, r14
sub r8, rcx
sub rdx, r8
call fcn.140124300
test eax, eax
setne sil
jmp 0x14016c13a
Function at 0x140182170
Capabilities:
Encode data using xor

Disassembly:
push r15
push r14
push r13
push r12
push rbp
push rdi
push rsi
push rbx
sub rsp, 0xa8
mov eax, 0x40
mov r13, qword [rdx + 0x10]
cmp r13, rax
cmovbe rax, r13
mov rbp, rdx
mov rsi, rcx
mov rbx, r8
xor edx, edx
cmp rax, r8
jae 0x1401821c0
mov eax, edx
add rsp, 0xa8
pop rbx
pop rsi
pop rdi
pop rbp
pop r12
pop r13
pop r14
pop r15
ret
lea rcx, [rsp + 0x20]
mov rdx, r13
mov rdi, qword [rbp + 8]
mov rax, rcx
sub rdx, r8
neg rax
and eax, 0x3f
add rcx, rax
lea rax, [r8 + 0x100]
lea r8, [rdx - 0x100]
cmp rax, r13
mov eax, 0
cmovb rax, r8
mov r8, rbx
xor edx, edx
mov r14, rax
call fcn.14034f288
mov rcx, rax
cmp r14, r13
jae 0x140182328
sub r14, rdi
mov r12, rdi
mov r11, r13
xor edx, edx
mov r8, r14
mov r14, qword [rbp + 0x20]
sub r12, rbx
sub r11, rdi
xor eax, eax
xor r9d, r9d
add r14, rdi
mov rbp, r14
nop dword [rax]
lea r14, [rdi + r8]
mov r13, r12
mov r15, rdi
xor r13, r14
xor r15, r8
mov r10, r13
sub r13, 1
not r10
and r10, r13
mov r13, rdi
xor r13, r14
sar r10, 0x3f
or r13, r15
or r9, r10
and r10, rax
xor r13, r14
or rdx, r10
lea r10, [rax + 1]
sar r13, 0x3f
and r9, r13
movzx r13d, byte [rbp + r8]
add r8, 1
and r13d, r9d
or byte [rcx + rax], r13b
mov rax, r10
mov r13, rbx
sub rax, rbx
xor r13, r10
xor rax, rbx
or rax, r13
xor rax, r10
sar rax, 0x3f
and rax, r10
cmp r8, r11
jne 0x140182238
lea r8, [rsi + rbx]
test rbx, rbx
je 0x140182317
nop dword [rax]
mov eax, edx
mov r9, rdx
and eax, 0x20
cmp eax, 1
sbb eax, eax
and r9, 0xffffffffffffffdf
add rsi, 1
movzx r9d, byte [rcx + r9]
movzx eax, al
mov r10d, eax
not eax
and r9d, r10d
mov r10, rdx
add rdx, 1
or r10, 0x20
movzx r10d, byte [rcx + r10]
and eax, r10d
or eax, r9d
mov r9, rbx
mov byte [rsi - 1], al
mov rax, rdx
xor r9, rdx
sub rax, rbx
xor rax, rbx
or rax, r9
xor rax, rdx
sar rax, 0x3f
and rdx, rax
cmp rsi, r8
jne 0x1401822b8
mov edx, 1
jmp 0x1401821a3
xor edx, edx
jmp 0x1401822ab