joyce8/EMBER2024-capa huggingface dataset:
Function at 0x1401904c0
Capabilities:
Encrypt data using rc4 prga

Disassembly:
push rbx
sub rsp, 0x20
mov rbx, rcx
mov ecx, dword [rcx + 0x10]
mov r10d, ecx
and r10d, 7
je 0x1401904f4
cmp ecx, r10d
jge 0x1401904e2
mov rcx, rbx
call fcn.14018fcc0
mov eax, dword [rbx + 0x14]
mov ecx, r10d
shr eax, cl
sub dword [rbx + 0x10], r10d
mov ecx, dword [rbx + 0x10]
mov dword [rbx + 0x14], eax
xor r8d, r8d
mov eax, ecx
test ecx, ecx
jle 0x14019052e
mov ecx, dword [rbx + 0x14]
lea rdx, [rsp + 0x30]
movzx r9d, cl
nop dword [rax]
shr ecx, 8
inc r8d
mov byte [rdx], r9b
lea rdx, [rdx + 1]
sub eax, 8
mov dword [rbx + 0x14], ecx
movzx r9d, cl
test eax, eax
jg 0x140190510
mov dword [rbx + 0x10], eax
test eax, eax
jns 0x140190556
mov rax, qword gs:[0x58]
mov edx, 0x28
mov rcx, qword [rax]
lea rax, str.zlib_corrupt
mov qword [rdx + rcx], rax
xor eax, eax
add rsp, 0x20
pop rbx
ret
movsxd rcx, r8d
cmp rcx, 4
jge 0x140190585
mov r8, qword [rbx + 8]
mov rax, qword [rbx]
cmp rax, r8
jb 0x14019056f
xor dl, dl
jmp 0x140190578
movzx edx, byte [rax]
inc rax
mov qword [rbx], rax
mov byte [rsp + rcx + 0x30], dl
inc rcx
cmp rcx, 4
jl 0x140190566
movzx eax, byte [rsp + 0x30]
movzx r8d, byte [rsp + 0x31]
movzx ecx, byte [rsp + 0x33]
shl r8d, 8
add r8d, eax
shl ecx, 8
movzx eax, byte [rsp + 0x32]
add ecx, eax
mov eax, r8d
xor eax, 0xffff
cmp ecx, eax
jne 0x140190532
mov rcx, qword [rbx]
mov qword [rsp + 0x38], rdi
mov edi, r8d
add rcx, rdi
cmp rcx, qword [rbx + 8]
jbe 0x1401905ef
mov rax, qword gs:[0x58]
mov edx, 0x28
mov rcx, qword [rax]
lea rax, str.read_past_buffer
mov qword [rdx + rcx], rax
mov rdi, qword [rsp + 0x38]
xor eax, eax
add rsp, 0x20
pop rbx
ret
mov rdx, qword [rbx + 0x18]
lea rax, [r8 + rdx]
cmp rax, qword [rbx + 0x28]
jbe 0x140190609
mov rcx, rbx
call fcn.14018fe10
test eax, eax
je 0x1401905e2
mov rdx, qword [rbx]
mov r8, rdi
mov rcx, qword [rbx + 0x18]
call fcn.14045d390
add qword [rbx], rdi
mov eax, 1
add qword [rbx + 0x18], rdi
mov rdi, qword [rsp + 0x38]
add rsp, 0x20
pop rbx
ret
Function at 0x1401a63a0
Capabilities:
Initialize winsock library

Disassembly:
mov qword [rsp + 0x10], rbx
push rdi
sub rsp, 0x200
mov rax, qword [0x1405d3230]
xor rax, rsp
mov qword [rsp + 0x1f0], rax
movzx ebx, dl
mov rdi, rcx
mov eax, 1
lock xadd dword [0x1405dee90], eax
inc eax
cmp eax, 1
jne 0x1401a63ed
lea ecx, [rax + 1]
lea rdx, [rsp + 0x50]
call qword [sym.imp.WS2_32.dll_WSAStartup]
xchg dword [0x1405dee94], eax
test bl, bl
je 0x1401a6491
xor ebx, ebx
lock xadd dword [0x1405dee94], ebx
test ebx, ebx
je 0x1401a6491
movabs rcx, 0x4d54ee85da812030
mov qword [rsp + 0x210], rsi
add rcx, qword [0x1405d4098]
lea rsi, [0x1405d4090]
mov dword [rsp + 0x3c], 0
cmp rcx, 1
jbe 0x1401a6446
mov rax, qword [0x1405d4090]
mov edx, ebx
mov rcx, rsi
call qword [rax + 0x30]
jmp 0x1401a6448
mov al, 1
lea rcx, str.C:_vcpkginstalledx64_windows_staticinclude_boost_asiodetailimplwinsock_init.ipp
movzx eax, al
add rax, 2
mov qword [rsp + 0x20], rcx
mov qword [rsp + 0x40], rsi
lea rcx, str.throw_on_error
mov rsi, qword [rsp + 0x210]
mov qword [rsp + 0x28], rcx
mov qword [rsp + 0x48], rax
mov dword [rsp + 0x38], ebx
mov dword [rsp + 0x30], 0x48
mov dword [rsp + 0x34], 0x1a
test al, 1
jne 0x1401a64b5
mov rax, rdi
mov rcx, qword [rsp + 0x1f0]
xor rcx, rsp
call fcn.14045a250
mov rbx, qword [rsp + 0x218]
add rsp, 0x200
pop rdi
ret
lea r8, [rsp + 0x20]
lea rdx, str.winsock
lea rcx, [rsp + 0x38]
call fcn.140174540
int3
Function at 0x1401dae20
Capabilities:
Encode data using xor

Disassembly:
sub rsp, 0x18
mov rax, qword [0x1405d3230]
xor rax, rsp
mov qword [rsp + 8], rax
cmp qword [r8 + 0x18], 0x10
mov r10, r8
mov dword [rsp], r9d
jb 0x1401dae44
mov r10, qword [r8]
cmp qword [rdx + 0x18], 0x10
mov rax, qword [rdx + 0x10]
jb 0x1401dae57
add rax, qword [rdx]
mov rdx, qword [rdx]
jmp 0x1401dae5a
add rax, rdx
xor r8d, r8d
cmp rdx, rax
je 0x1401dae8a
sub r10, rdx
nop word [rax + rax]
movzx ecx, byte [rsp + r8]
xor cl, byte [rdx]
inc r8
mov byte [r10 + rdx], cl
and r8d, 3
inc rdx
cmp rdx, rax
jne 0x1401dae70
mov rcx, qword [rsp + 8]
xor rcx, rsp
call fcn.14045a250
add rsp, 0x18
ret

Function at 0x1401daea0
Capabilities:
Encode data using xor
Encrypt data using rc4 prga

Disassembly:
push rbx
push rbp
push rsi
push rdi
push r12
push r14
push r15
sub rsp, 0x40
cmp byte [rcx + 0x19], 0
mov r12, r9
mov rdi, r8
mov r10, rdx
mov rbp, rcx
jge 0x1401daf10
mov rax, qword [rcx + 0x80]
xor ecx, ecx
mov rdx, qword [rax + 0x10]
mov dword [rsp + 0x20], edx
test r8, r8
je 0x1401daefe
nop word [rax + rax]
mov rax, rcx
and eax, 3
movzx eax, byte [rsp + rax + 0x20]
xor byte [r10 + rcx], al
inc rcx
cmp rcx, rdi
jb 0x1401daee0
mov rax, qword [rbp + 0x80]
mov rcx, rdi
and ecx, 3
je 0x1401daf0c
shl cl, 3
ror rdx, cl
mov qword [rax + 0x10], rdx
mov rax, qword [rbp + 0x80]
mov rdx, r10
mov rbx, qword [rax]
add rbx, 0x50
mov r15, qword [rbx + 0x10]
lea r14, [rbx + 0x10]
mov rcx, rbx
call fcn.14014c930
mov r10, qword [rbp + 0x80]
mov rax, qword [r10]
cmp dword [rax + 0x70], 1
jne 0x1401dafca
cmp qword [rbx + 0x18], 0x10
jb 0x1401daf57
mov rdx, qword [rbx]
mov rbx, rdx
add rdx, qword [r14]
jmp 0x1401daf5d
mov rdx, qword [r14]
add rdx, rbx
lea rax, [r15 + rbx]
cmp rax, rdx
je 0x1401dafca
lea rbx, [0x14057bc90]
nop dword [rax]
cmp dword [r10 + 0x18], 0
movzx r8d, byte [rax]
mov r9d, r8d
movzx r11d, byte [r8 + rbx]
je 0x1401daf93
mov ecx, dword [r10 + 0x1c]
and r9d, 0x3f
shl ecx, 6
or r9d, ecx
jmp 0x1401dafa2
mov r8d, 0xff
mov ecx, r11d
sar r8d, cl
and r9d, r8d
mov dword [r10 + 0x1c], r9d
mov ecx, dword [r10 + 0x18]
add ecx, 0x10
shl ecx, 4
add ecx, r11d
movzx r8d, byte [rcx + rbx]
mov dword [r10 + 0x18], r8d
cmp r8d, 1
je 0x1401dafe0
inc rax
cmp rax, rdx
jne 0x1401daf70
sub qword [rbp + 0x30], rdi
mov rax, rdi
add rsp, 0x40
pop r15
pop r14
pop r12
pop rdi
pop rsi
pop rbp
pop rbx
ret
mov dword [rsp + 0x28], reloc.WS2_32.dll_recv
call fcn.14017e960
mov qword [rsp + 0x30], rax
xor eax, eax
movups xmm0, xmmword [rsp + 0x28]
movups xmmword [r12], xmm0
add rsp, 0x40
pop r15
pop r14
pop r12
pop rdi
pop rsi
pop rbp
pop rbx
ret
Function at 0x1401ffbe0
Capabilities:
Create directory

Disassembly:
mov qword [rsp + 8], rbx
mov qword [rsp + 0x18], rsi
push rdi
sub rsp, 0x50
mov rdi, r8
mov rax, rdx
mov rbx, rcx
test r8, r8
je 0x1401ffc19
xorps xmm0, xmm0
mov qword [rsp + 0x30], 0
movups xmmword [r8], xmm0
movsd xmm0, qword [rsp + 0x30]
movsd qword [r8 + 0x10], xmm0
test rax, rax
je 0x1401ffc43
mov rdx, rbx
cmp qword [rcx + 0x18], 8
jb 0x1401ffc2b
mov rdx, qword [rcx]
cmp qword [rax + 0x18], 8
jb 0x1401ffc35
mov rax, qword [rax]
xor r8d, r8d
mov rcx, rax
call qword [sym.imp.KERNEL32.dll_CreateDirectoryExW]
jmp 0x1401ffc55
cmp qword [rcx + 0x18], 8
jb 0x1401ffc4d
mov rcx, qword [rcx]
xor edx, edx
call qword [sym.imp.KERNEL32.dll_CreateDirectoryW]
test eax, eax
je 0x1401ffc6b
mov al, 1
mov rbx, qword [rsp + 0x60]
mov rsi, qword [rsp + 0x70]
add rsp, 0x50
pop rdi
ret
call qword [sym.imp.KERNEL32.dll_GetLastError]
mov esi, eax
xorps xmm0, xmm0
mov qword [rsp + 0x48], 0
movups xmmword [rsp + 0x20], xmm0
movsd xmm0, qword [rsp + 0x48]
movsd qword [rsp + 0x30], xmm0
lea r8, [rsp + 0x20]
mov rdx, rbx
lea rcx, [rsp + 0x68]
call fcn.140201b90
nop
cmp dword [rsp + 0x68], 3
je 0x1401ffcbe
lea r9, str.boost::filesystem::create_directory
mov r8, rdi
mov rdx, rbx
mov ecx, esi
call fcn.140204580
xor al, al
mov rbx, qword [rsp + 0x60]
mov rsi, qword [rsp + 0x70]
add rsp, 0x50
pop rdi
ret
Function at 0x1402014d0
Capabilities:
Delete directory
Delete file
Set file attributes

Disassembly:
mov qword [rsp + 8], rbx
mov qword [rsp + 0x10], rbp
mov qword [rsp + 0x18], rsi
push rdi
push r14
push r15
sub rsp, 0x20
mov edi, edx
movzx r14d, dl
shr edi, 4
mov r15, r8
and dil, 1
mov ebp, edx
mov rbx, rcx
and r14b, 1
je 0x14020156f
and edx, 0xfffffffe
cmp qword [rcx + 0x18], 8
jb 0x140201510
mov rcx, qword [rcx]
call qword [sym.imp.KERNEL32.dll_SetFileAttributesW]
test eax, eax
jne 0x14020156f
call qword [sym.imp.KERNEL32.dll_GetLastError]
movsxd r10, eax
cmp r10d, 0x35
ja 0x14020153d
movabs rax, 0x2000000020800c
bt rax, r10
jb 0x14020160b
lea eax, [r10 - 0x43]
cmp eax, 0x38
ja 0x14020155a
movabs rcx, 0x100000000100001
bt rcx, rax
jb 0x14020160b
cmp r10d, 0xa1
je 0x14020160b
mov ecx, r10d
jmp 0x1402015f9
mov rax, qword [rbx + 0x18]
mov rcx, rbx
test dil, dil
jne 0x14020158c
cmp rax, 8
jb 0x140201584
mov rcx, qword [rbx]
call qword [sym.imp.KERNEL32.dll_DeleteFileW]
jmp 0x14020159b
cmp rax, 8
jb 0x140201595
mov rcx, qword [rbx]
call qword [sym.imp.KERNEL32.dll_RemoveDirectoryW]
test eax, eax
jne 0x14020160f
call qword [sym.imp.KERNEL32.dll_GetLastError]
movsxd rdi, eax
cmp edi, 0x35
ja 0x1402015bd
movabs rax, 0x2000000020800c
bt rax, rdi
jb 0x14020160b
lea eax, [rdi - 0x43]
cmp eax, 0x38
ja 0x1402015d5
movabs rcx, 0x100000000100001
bt rcx, rax
jb 0x14020160b
cmp edi, 0xa1
je 0x14020160b
test r14b, r14b
je 0x1402015f7
cmp qword [rbx + 0x18], 8
mov rcx, rbx
jb 0x1402015ef
mov rcx, qword [rbx]
mov edx, ebp
call qword [sym.imp.KERNEL32.dll_SetFileAttributesW]
mov ecx, edi
lea r9, str.boost::filesystem::remove
mov r8, r15
mov rdx, rbx
call fcn.140204580
xor al, al
jmp 0x140201611
mov al, 1
mov rbx, qword [rsp + 0x40]
mov rbp, qword [rsp + 0x48]
mov rsi, qword [rsp + 0x50]
add rsp, 0x20
pop r15
pop r14
pop rdi
ret
Function at 0x140201d10
Capabilities:
Check if file exists
Get file attributes

Disassembly:
push rbx
push rbp
push rsi
push rdi
push r14
sub rsp, 0x70
mov rax, qword [0x1405d3230]
xor rax, rsp
mov qword [rsp + 0x68], rax
mov r14, r8
mov rdi, rdx
mov rsi, rcx
cmp qword [rdx + 0x18], 8
jb 0x140201d3d
mov rdx, qword [rdx]
xorps xmm0, xmm0
movups xmmword [rsp + 0x48], xmm0
xorps xmm1, xmm1
movdqu xmmword [rsp + 0x58], xmm1
mov r8, 0xffffffffffffffff
inc r8
cmp word [rdx + r8*2], 0
jne 0x140201d55
lea rcx, [rsp + 0x48]
call fcn.1401b5710
lea rcx, [rsp + 0x48]
cmp qword [rsp + 0x60], 8
cmovae rcx, qword [rsp + 0x48]
xor ebp, ebp
mov qword [rsp + 0x30], rbp
mov dword [rsp + 0x28], 0x2200000
mov dword [rsp + 0x20], 3
xor r9d, r9d
mov edx, 0x88
lea r8d, [rbp + 7]
call qword [sym.imp.KERNEL32.dll_CreateFileW]
mov rbx, rax
mov qword [rsp + 0x40], rax
mov rdx, qword [rsp + 0x60]
cmp rdx, 8
jb 0x140201dee
lea rdx, [rdx*2 + 2]
mov rcx, qword [rsp + 0x48]
mov rax, rcx
cmp rdx, 0x1000
jb 0x140201de9
add rdx, 0x27
mov rcx, qword [rcx - 8]
sub rax, rcx
add rax, 0xfffffffffffffff8
cmp rax, 0x1f
ja 0x140201e9f
call fcn.14045a270
movdqa xmm0, xmmword [0x1404a11f0]
movdqu xmmword [rsp + 0x58], xmm0
mov word [rsp + 0x48], bp
cmp rbx, 0xffffffffffffffff
jne 0x140201e69
call qword [sym.imp.KERNEL32.dll_GetLastError]
mov ebp, eax
cmp eax, 5
jne 0x140201e56
mov rcx, rdi
cmp qword [rdi + 0x18], 8
jb 0x140201e21
mov rcx, qword [rdi]
call qword [sym.imp.KERNEL32.dll_GetFileAttributesW]
mov ebx, eax
cmp eax, 0xffffffff
je 0x140201e4e
bt eax, 0xa
jb 0x140201e56
mov edx, eax
mov rcx, rdi
call fcn.140200230
and ebx, 0x10
or ebx, 0x20
shr ebx, 4
mov dword [rsi], ebx
mov dword [rsi + 4], eax
jmp 0x140201e84
call qword [sym.imp.KERNEL32.dll_GetLastError]
mov ebp, eax
mov r9, r14
mov r8, rdi
mov edx, ebp
mov rcx, rsi
call fcn.140200520
nop
jmp 0x140201e84
mov r9, r14
mov r8, rdi
mov rdx, rbx
mov rcx, rsi
call fcn.140201870
nop
mov rcx, rbx
call qword [sym.imp.KERNEL32.dll_CloseHandle]
mov rax, rsi
mov rcx, qword [rsp + 0x68]
xor rcx, rsp
call fcn.14045a250
add rsp, 0x70
pop r14
pop rdi
pop rsi
pop rbp
pop rbx
ret
call fcn.140470888
nop
int3
Function at 0x140206f30
Capabilities:
Generate random numbers via winapi

Disassembly:
push rbx
sub rsp, 0x20
mov rbx, qword [rcx]
lea r8, [rsp + 0x30]
mov edx, 4
mov rcx, qword [rbx]
call qword [sym.imp.ADVAPI32.dll_CryptGenRandom]
test eax, eax
je 0x140206f5a
mov eax, dword [rsp + 0x30]
add rsp, 0x20
pop rbx
ret
lea rdx, str.error_while_reading
mov rcx, rbx
call fcn.140206f70
int3

Function at 0x14020dde0
Capabilities:
Set thread local storage value

Disassembly:
mov eax, 0x28
call fcn.14045ae40
sub rsp, rax
mov ecx, dword [rcx]
call qword [sym.imp.KERNEL32.dll_TlsSetValue]
xor ecx, ecx
test eax, eax
setne cl
mov eax, ecx
add rsp, 0x28
ret
Function at 0x14021efb0
Capabilities:
Encode data using add xor sub operations

Disassembly:
xor eax, eax
mov r10, rcx
test rcx, rcx
je 0x14021f01c
movzx ecx, byte [rcx]
test cl, cl
je 0x14021f01c
mov r11d, 0x100
nop word [rax + rax]
movsx r9d, cl
lea r10, [r10 + 1]
or r9d, r11d
mov r8d, eax
mov edx, r9d
mov ecx, 0x20
shr edx, 2
add r11d, 0x100
xor edx, r9d
imul r9d, r9d
and edx, 0xf
sub ecx, edx
shr r8, cl
mov ecx, edx
mov edx, eax
mov eax, r8d
shl edx, cl
movzx ecx, byte [r10]
or eax, edx
xor eax, r9d
test cl, cl
jne 0x14021efd0
mov ecx, eax
shr ecx, 0x10
xor eax, ecx
ret

Function at 0x14021f020
Capabilities:
Encode data using add xor sub operations

Disassembly:
xor eax, eax
mov r10, rcx
test rcx, rcx
je 0x14021f090
movzx ecx, byte [rcx]
test cl, cl
je 0x14021f090
mov r11d, 0x100
nop word [rax + rax]
movsx r9d, cl
lea r10, [r10 + 1]
mov r8d, eax
and r9d, 0xffffffdf
or r9d, r11d
mov ecx, 0x20
mov edx, r9d
add r11d, 0x100
shr edx, 2
xor edx, r9d
imul r9d, r9d
and edx, 0xf
sub ecx, edx
shr r8, cl
mov ecx, edx
mov edx, eax
mov eax, r8d
shl edx, cl
movzx ecx, byte [r10]
or eax, edx
xor eax, r9d
test cl, cl
jne 0x14021f040
mov ecx, eax
shr ecx, 0x10
xor eax, ecx
ret

Function at 0x1402205e0
Capabilities:
Initialize winsock library

Disassembly:
mov eax, 0x28
call fcn.14045ae40
sub rsp, rax
cmp dword [0x1405db110], 0
jne 0x14022069a
xor edx, edx
mov dword [0x1405db110], 1
mov r8d, 0x198
lea rcx, [0x1405db120]
call fcn.14045da30
mov ecx, 0x202
lea rdx, [0x1405db120]
call qword [sym.imp.WS2_32.dll_WSAStartup]
test eax, eax
je 0x14022069a
call fcn.140217b60
lea r8, str.BIO_sock_init
mov edx, DllRegisterServer
lea rcx, str.crypto_bio_bio_sock.c
call fcn.140217c80
call qword [sym.imp.WS2_32.dll_WSAGetLastError]
lea r8, str.calling_wsastartup__
mov ecx, 2
mov edx, eax
call fcn.140217d80
call fcn.140217b60
lea r8, str.BIO_sock_init
mov edx, reloc.OLEAUT32.dll_DllRegisterServer
lea rcx, str.crypto_bio_bio_sock.c
call fcn.140217c80
xor r8d, r8d
lea edx, [r8 + 0x7a]
lea ecx, [rdx - 0x5a]
call fcn.140217d80
mov eax, 0xffffffff
add rsp, 0x28
ret
mov eax, 1
add rsp, 0x28
ret

Function at 0x1402206b0
Capabilities:
Set socket configuration

Disassembly:
push rbx
mov eax, 0x20
call fcn.14045ae40
sub rsp, rax
mov dword [rsp + 0x30], edx
lea r8, [rsp + 0x30]
mov edx, 0x8004667e
movsxd rcx, ecx
call qword [sym.imp.WS2_32.dll_ioctlsocket]
mov ebx, eax
test eax, eax
jns 0x140220712
call fcn.140217b60
lea r8, str.BIO_socket_ioctl
mov edx, 0xd1
lea rcx, str.crypto_bio_bio_sock.c
call fcn.140217c80
call qword [sym.imp.WS2_32.dll_WSAGetLastError]
lea r8, str.calling_ioctlsocket__
mov ecx, 2
mov edx, eax
call fcn.140217d80
xor eax, eax
test ebx, ebx
sete al
add rsp, 0x20
pop rbx
ret
Function at 0x140220720
Capabilities:
Get socket status

Disassembly:
push rbx
push rsi
push rdi
mov eax, 0x260
call fcn.14045ae40
sub rsp, rax
mov rax, qword [0x1405d3230]
xor rax, rsp
mov qword [rsp + 0x250], rax
mov edi, ecx
mov rbx, r8
mov esi, edx
cmp ecx, 0x3f
ja 0x1402207b2
test rbx, rbx
jne 0x14022075a
lea eax, [r8 + 1]
jmp 0x1402207b7
xor ecx, ecx
call fcn.140473f00
mov rcx, rax
cmp rbx, rax
jge 0x14022076d
xor eax, eax
jmp 0x1402207b7
xor eax, eax
mov qword [rsp + 0x48], rdi
sub ebx, ecx
mov dword [rsp + 0x34], eax
test esi, esi
mov dword [rsp + 0x40], 1
lea r8, [rsp + 0x40]
mov dword [rsp + 0x30], ebx
cmovne r8, rax
lea rdx, [rsp + 0x40]
cmove rdx, rax
lea ecx, [rdi + 1]
lea rax, [rsp + 0x30]
xor r9d, r9d
mov qword [rsp + 0x20], rax
call qword [sym.imp.WS2_32.dll_select]
jmp 0x1402207b7
mov eax, 0xffffffff
mov rcx, qword [rsp + 0x250]
xor rcx, rsp
call fcn.14045a250
add rsp, 0x260
pop rdi
pop rsi
pop rbx
ret
Function at 0x1402214e0
Capabilities:
Get common file path

Disassembly:
mov qword [rsp + 0x18], rbx
push rbp
mov eax, 0x280
call fcn.14045ae40
sub rsp, rax
mov rax, qword [0x1405d3230]
xor rax, rsp
mov qword [rsp + 0x270], rax
cmp dword [0x1405db2c0], 0
lea rax, [0x140220e60]
mov qword [rsp + 0x28], rax
lea rbx, [0x1404bd430]
lea rax, str.getnameinfo
movzx ebp, cx
mov qword [rsp + 0x30], rax
lea rax, [0x1402212a0]
mov qword [rsp + 0x38], rax
lea rax, [0x1404bd450]
mov qword [rsp + 0x40], rax
lea rax, [0x140220e00]
mov qword [rsp + 0x48], rax
mov qword [rsp + 0x20], rbx
jne 0x1402216b9
mov edx, 0x104
lea rcx, [rsp + 0x160]
call qword [sym.imp.KERNEL32.dll_GetSystemDirectoryA]
test eax, eax
je 0x1402216af
lea r8, [rsp + 0x160]
mov qword [rsp + 0x290], rsi
mov edx, 0x10c
lea rcx, [rsp + 0x50]
call fcn.140473c0c
lea r8, str.ws2_32
mov edx, 0x10c
lea rcx, [rsp + 0x50]
call fcn.140475098
lea rcx, [rsp + 0x50]
call qword [sym.imp.KERNEL32.dll_LoadLibraryA]
mov rsi, rax
test rax, rax
je 0x1402215da
mov rdx, rbx
mov rcx, rax
call qword [sym.imp.KERNEL32.dll_GetProcAddress]
test rax, rax
jne 0x14022163a
mov rcx, rsi
call qword [sym.imp.KERNEL32.dll_FreeLibrary]
lea r8, [rsp + 0x160]
mov edx, 0x10c
lea rcx, [rsp + 0x50]
call fcn.140473c0c
lea r8, str.wship6
mov edx, 0x10c
lea rcx, [rsp + 0x50]
call fcn.140475098
lea rcx, [rsp + 0x50]
call qword [sym.imp.KERNEL32.dll_LoadLibraryA]
mov rsi, rax
test rax, rax
je 0x1402216a7
mov rdx, rbx
mov rcx, rax
call qword [sym.imp.KERNEL32.dll_GetProcAddress]
test rax, rax
jne 0x14022163a
mov rcx, rsi
call qword [sym.imp.KERNEL32.dll_FreeLibrary]
jmp 0x1402216a7
mov qword [rsp + 0x298], rdi
lea rbx, [rsp + 0x28]
xor edi, edi
nop dword [rax]
mov rdx, qword [rbx - 8]
mov rcx, rsi
call qword [sym.imp.KERNEL32.dll_GetProcAddress]
mov qword [rbx], rax
test rax, rax
je 0x140221696
inc edi
add rbx, 0x10
cmp edi, 3
jl 0x140221650
mov rax, qword [rsp + 0x28]
mov qword [0x1405cb698], rax
mov rax, qword [rsp + 0x38]
mov qword [0x1405cb6a8], rax
mov rax, qword [rsp + 0x48]
mov qword [0x1405cb6b8], rax
jmp 0x14022169f
mov rcx, rsi
call qword [sym.imp.KERNEL32.dll_FreeLibrary]
mov rdi, qword [rsp + 0x298]
mov rsi, qword [rsp + 0x290]
mov dword [0x1405db2c0], 1
mov rax, rbp
lea rcx, [0x1405cb690]
add rax, rax
mov rax, qword [rcx + rax*8 + 8]
mov rcx, qword [rsp + 0x270]
xor rcx, rsp
call fcn.14045a250
mov rbx, qword [rsp + 0x2a0]
add rsp, 0x280
pop rbp
ret
Function at 0x1402216f0
Capabilities:
Resolve dns

Disassembly:
mov qword [rsp + 0x10], rbx
mov qword [rsp + 0x18], rbp
mov qword [rsp + 0x20], rsi
push rdi
push r12
push r13
push r14
push r15
mov eax, 0x870
call fcn.14045ae40
sub rsp, rax
mov rax, qword [0x1405d3230]
xor rax, rsp
mov qword [rsp + 0x860], rax
mov r13, qword [rsp + 0x8c8]
mov r14, rcx
mov dword [rsp + 0x24], r8d
xor ebp, ebp
mov dword [rsp + 0x28], edx
mov r8d, 0x400
mov qword [rsp + 0x38], rcx
xor edx, edx
lea rcx, [rsp + 0x41]
mov byte [rsp + 0x40], bpl
mov r12d, ebp
mov word [rsp + 0x20], r9w
call fcn.14045da30
xor edx, edx
mov byte [rsp + 0x450], bpl
mov r8d, 0x400
lea rcx, [rsp + 0x451]
call fcn.14045da30
mov r9d, 0x400
lea rbx, [rsp + 0x40]
mov r8, r14
mov qword [rsp + 0x30], rbx
lea rcx, [rsp + 0x40]
lea rdi, [rsp + 0x450]
lea edx, [r9 + 1]
call fcn.140475104
lea r15, [rbp - 1]
nop dword [rax]
mov rcx, r14
mov qword [r13], rbp
mov rsi, r13
mov byte [rdi], bpl
call qword [sym.imp.WS2_32.dll_gethostbyname]
mov r14, rax
test rax, rax
je 0x1402218fe
cmp word [rax + 0x10], 2
jne 0x140221827
cmp word [rax + 0x12], 4
jne 0x140221827
mov rbx, qword [rax + 0x18]
mov rax, qword [rbx]
test rax, rax
je 0x140221822
nop dword [rax]
mov r9d, dword [rax]
movzx r8d, word [rsp + 0x20]
mov edx, dword [rsp + 0x24]
mov ecx, dword [rsp + 0x28]
call fcn.140221960
mov qword [rsi], rax
test rax, rax
je 0x1402218f7
add rbx, 8
lea rsi, [rax + 0x28]
mov rax, qword [rbx]
test rax, rax
jne 0x1402217f0
mov rbx, qword [rsp + 0x30]
mov r8, qword [r14]
mov r9d, 0x400
mov rcx, rdi
lea edx, [r9 + 1]
call fcn.140475104
cmp qword [r13], rbp
jne 0x1402218a0
mov rax, r15
inc rax
cmp byte [rdi + rax], bpl
jne 0x140221845
test rax, rax
je 0x140221918
mov r8, rdi
mov rax, rbx
sub r8, rbx
movzx edx, byte [rax]
movzx ecx, byte [rax + r8]
sub edx, ecx
jne 0x140221873
inc rax
test ecx, ecx
jne 0x140221860
test edx, edx
je 0x140221918
inc r12d
cmp r12d, 0x10
je 0x140221918
mov r14, qword [rsp + 0x38]
mov rax, rbx
mov rbx, rdi
mov rdi, rax
mov qword [rsp + 0x30], rbx
jmp 0x1402217b0
cmp dword [rsp + 0x8c0], ebp
je 0x14022192b
nop dword [rax]
cmp byte [rdi + r15 + 1], bpl
lea r15, [r15 + 1]
jne 0x1402218b0
lea rdx, [r15 + 1]
mov ecx, 1
call fcn.1404714a8
mov rbx, rax
test rax, rax
jne 0x1402218d6
mov rbx, rbp
jmp 0x1402218e5
mov r8, rdi
lea rdx, [r15 + 1]
mov rcx, rax
call fcn.140473c0c
mov rax, qword [r13]
mov qword [rax + 0x18], rbx
mov rax, qword [r13]
cmp qword [rax + 0x18], rbp
jne 0x14022192b
mov ebp, 8
jmp 0x14022192b
call qword [sym.imp.WS2_32.dll_WSAGetLastError]
mov ecx, eax
sub ecx, 0x2af9
je 0x140221926
sub ecx, 1
je 0x14022191f
sub ecx, 1
jne 0x140221926
mov ebp, 0x2afb
jmp 0x14022192b
mov ebp, 0x2afa
jmp 0x14022192b
mov ebp, 0x2af9
mov eax, ebp
mov rcx, qword [rsp + 0x860]
xor rcx, rsp
call fcn.14045a250
lea r11, [rsp + 0x870]
mov rbx, qword [r11 + 0x38]
mov rbp, qword [r11 + 0x40]
mov rsi, qword [r11 + 0x48]
mov rsp, r11
pop r15
pop r14
pop r13
pop r12
pop rdi
ret
Function at 0x140223070
Capabilities:
Query environment variable

Disassembly:
mov eax, 0x28
call fcn.14045ae40
sub rsp, rax
cmp dword [0x1405db3c0], 0
jne 0x1402231f0
mov qword [rsp + 0x40], rsi
lea r8d, [rax + 8]
mov qword [rsp + 0x48], rdi
lea rcx, str.OPENSSL_ia32cap
mov qword [rsp + 0x30], rbx
lea rdi, [0x1405db360]
mov rdx, rdi
mov qword [rsp + 0x38], rbp
mov qword [rsp + 0x20], r14
mov dword [0x1405db3c0], 1
call qword [sym.imp.KERNEL32.dll_GetEnvironmentVariableW]
dec eax
cmp eax, 0x2e
ja 0x1402231b2
movzx ebx, word [0x1405db360]
xor ebp, ebp
cmp bx, 0x7e
mov ecx, ebp
mov r14d, 2
cmove ecx, r14d
add rcx, rdi
call fcn.140223200
mov rsi, rax
cmp bx, 0x7e
jne 0x140223131
lea rcx, [0x1405df630]
mov rbx, rax
call fcn.140001030
not rsi
movabs rcx, 0xedfff7fdffffffff
and rax, rsi
and ebx, 0x1000000
mov rsi, rax
and rsi, rcx
test rbx, rbx
cmove rsi, rax
jmp 0x14022314a
cmp word [0x1405db360], 0x3a
jne 0x14022314a
lea rcx, [0x1405df630]
call fcn.140001030
mov rsi, rax
movzx eax, word [0x1405db360]
test ax, ax
je 0x140223168
lea rdi, [rdi + 2]
cmp ax, 0x3a
je 0x140223171
movzx eax, word [rdi]
test ax, ax
jne 0x140223156
mov qword [0x1405df638], rbp
jmp 0x1402231c1
movzx ebx, word [rdi]
cmp bx, 0x7e
cmove rbp, r14
lea rcx, [rdi + rbp]
call fcn.140223200
mov rcx, rax
shr rcx, 0x20
cmp bx, 0x7e
jne 0x1402231a4
not eax
not ecx
and dword [0x1405df638], eax
and dword [0x1405df63c], ecx
jmp 0x1402231c1
mov dword [0x1405df638], eax
mov dword [0x1405df63c], ecx
jmp 0x1402231c1
lea rcx, [0x1405df630]
call fcn.140001030
mov rsi, rax
mov r14, qword [rsp + 0x20]
mov eax, esi
mov rdi, qword [rsp + 0x48]
bts eax, 0xa
mov rbp, qword [rsp + 0x38]
mov rbx, qword [rsp + 0x30]
shr rsi, 0x20
mov dword [0x1405df634], esi
mov rsi, qword [rsp + 0x40]
mov dword [0x1405df630], eax
add rsp, 0x28
ret

Function at 0x140227a80
Capabilities:
Get thread local storage value

Disassembly:
mov eax, 0x28
call fcn.14045ae40
sub rsp, rax
lea rcx, [0x1405db568]
add rsp, 0x28
jmp fcn.14020dc60