joyce8/EMBER2024-capa huggingface dataset:
Function at 0x1401e0690
Capabilities:
Get hostname

Disassembly:
mov qword [rsp + 0x20], rbx
push rsi
sub rsp, 0x250
mov rax, qword [0x14041f010]
xor rax, rsp
mov qword [rsp + 0x240], rax
movsxd rbx, edx
mov rsi, rcx
lea rdx, [rsp + 0x20]
mov dword [rsp + 0x20], 0x101
lea rcx, [rsp + 0x30]
call qword [sym.imp.KERNEL32.dll_GetComputerNameW]
test eax, eax
je 0x1401e071a
xor edx, edx
mov qword [rsp + 0x270], rdi
lea rcx, [rsp + 0x30]
call fcn.140321f80
mov rdi, rax
test rax, rax
je 0x1401e0712
lea r8, [rbx - 1]
mov rdx, rax
mov rcx, rsi
call fcn.140013650
cmp dword [0x14045b3f8], 0
mov byte [rsi + rbx - 1], 0
jne 0x1401e0712
mov rcx, rdi
call fcn.140005660
mov rdi, qword [rsp + 0x270]
mov rcx, qword [rsp + 0x240]
xor rcx, rsp
call fcn.140001200
mov rbx, qword [rsp + 0x278]
add rsp, 0x250
pop rsi
ret

Function at 0x1401e0900
Capabilities:
Get common file path
Set current directory

Disassembly:
push rbx
sub rsp, 0x830
mov rax, qword [0x14041f010]
xor rax, rsp
mov qword [rsp + 0x820], rax
cmp dword [0x14045b9ac], 0
mov rbx, rcx
jne 0x1401e097d
cmp qword [0x140462248], 0
jne 0x1401e0940
call fcn.1401def90
cmp qword [0x140462248], 0
je 0x1401e097d
lea rdx, [rsp + 0x20]
mov ecx, 0x400
call qword [sym.imp.KERNEL32.dll_GetCurrentDirectoryW]
test eax, eax
je 0x1401e097d
mov rcx, qword [0x140462248]
call qword [sym.imp.KERNEL32.dll_SetCurrentDirectoryW]
mov rcx, rbx
call qword [sym.imp.KERNEL32.dll_LoadLibraryA]
lea rcx, [rsp + 0x20]
mov rbx, rax
call qword [sym.imp.KERNEL32.dll_SetCurrentDirectoryW]
mov rax, rbx
jmp 0x1401e097f
xor eax, eax
mov rcx, qword [rsp + 0x820]
xor rcx, rsp
call fcn.140001200
add rsp, 0x830
pop rbx
ret

Function at 0x1401e09a0
Capabilities:
Get common file path

Disassembly:
mov qword [rsp + 0x18], rbx
push rbp
push rsi
push rdi
sub rsp, 0x450
mov rax, qword [0x14041f010]
xor rax, rsp
mov qword [rsp + 0x440], rax
movsxd rbp, edx
mov rsi, rcx
lea rdx, [rsp + 0x20]
mov ecx, 0x104
call qword [sym.imp.KERNEL32.dll_GetCurrentDirectoryW]
test eax, eax
je 0x1401e0a8e
mov r8d, 0x104
lea rdx, [rsp + 0x230]
lea rcx, [rsp + 0x20]
call qword [sym.imp.KERNEL32.dll_GetLongPathNameW]
test eax, eax
je 0x1401e0a4b
xor edx, edx
lea rcx, [rsp + 0x230]
call fcn.140321f80
mov rdi, rax
mov rbx, rbp
mov rax, 0xffffffffffffffff
nop dword [rax + rax]
inc rax
cmp byte [rdi + rax], 0
jne 0x1401e0a20
cmp rax, rbx
jb 0x1401e0a46
test rdi, rdi
je 0x1401e0a4b
cmp dword [0x14045b3f8], 0
jne 0x1401e0a4b
mov rcx, rdi
call fcn.140005660
jmp 0x1401e0a4b
test rdi, rdi
jne 0x1401e0a62
xor edx, edx
lea rcx, [rsp + 0x20]
call fcn.140321f80
mov rdi, rax
test rax, rax
je 0x1401e0a8e
mov rbx, rbp
lea r8, [rbx - 1]
mov rdx, rdi
mov rcx, rsi
call fcn.140013650
cmp dword [0x14045b3f8], 0
mov byte [rsi + rbx - 1], 0
jne 0x1401e0a87
mov rcx, rdi
call fcn.140005660
mov eax, 1
jmp 0x1401e0a90
xor eax, eax
mov rcx, qword [rsp + 0x440]
xor rcx, rsp
call fcn.140001200
mov rbx, qword [rsp + 0x480]
add rsp, 0x450
pop rdi
pop rsi
pop rbp
ret
Function at 0x1401e0e60
Capabilities:
Set file attributes

Disassembly:
mov qword [rsp + 8], rbx
mov qword [rsp + 0x10], rsi
push rdi
sub rsp, 0x20
mov esi, edx
mov rdi, rcx
xor edx, edx
call fcn.140321bb0
mov rbx, rax
test rax, rax
je 0x1401e0efa
mov edx, esi
mov rcx, rax
call fcn.14001a5d8
cmp dword [0x14045b3f8], 0
mov esi, eax
jne 0x1401e0ea0
mov rcx, rbx
call fcn.140005660
cmp esi, 0xffffffff
je 0x1401e0efa
mov rcx, rdi
call fcn.1401d9990
mov ebx, eax
cmp eax, 0xffffffff
je 0x1401e0ee5
xor edx, edx
mov rcx, rdi
call fcn.140321bb0
mov rdi, rax
test rax, rax
je 0x1401e0ee5
or ebx, 0x20
mov rcx, rax
mov edx, ebx
call qword [sym.imp.KERNEL32.dll_SetFileAttributesW]
cmp dword [0x14045b3f8], 0
jne 0x1401e0ee5
mov rcx, rdi
call fcn.140005660
mov eax, 1
mov rbx, qword [rsp + 0x30]
mov rsi, qword [rsp + 0x38]
add rsp, 0x20
pop rdi
ret
mov rbx, qword [rsp + 0x30]
xor eax, eax
mov rsi, qword [rsp + 0x38]
add rsp, 0x20
pop rdi
ret

Function at 0x1401e0f20
Capabilities:
Delete file
Get file attributes
Set file attributes

Disassembly:
mov qword [rsp + 8], rbx
mov qword [rsp + 0x18], rsi
push rdi
sub rsp, 0x20
xor edx, edx
mov rdi, rcx
call fcn.140321bb0
mov rsi, rax
test rax, rax
je 0x1401e0f8e
mov rcx, rax
call qword [sym.imp.KERNEL32.dll_GetFileAttributesW]
cmp dword [0x14045b3f8], 0
mov ebx, eax
jne 0x1401e0f5d
mov rcx, rsi
call fcn.140005660
cmp ebx, 0xffffffff
je 0x1401e0f8e
shr ebx, 4
bt ebx, 0
jae 0x1401e0f8e
mov rcx, rdi
call fcn.1401e1160
test eax, eax
je 0x1401e0f8e
mov rcx, rdi
mov rbx, qword [rsp + 0x30]
mov rsi, qword [rsp + 0x40]
add rsp, 0x20
pop rdi
jmp fcn.1401e0180
xor edx, edx
mov rcx, rdi
call fcn.140321bb0
mov rbx, rax
test rax, rax
je 0x1401e0fbf
mov edx, 0x80
mov rcx, rax
call qword [sym.imp.KERNEL32.dll_SetFileAttributesW]
cmp dword [0x14045b3f8], 0
jne 0x1401e0fbf
mov rcx, rbx
call fcn.140005660
xor edx, edx
mov rcx, rdi
call fcn.140321bb0
mov rdi, rax
test rax, rax
jne 0x1401e0fe4
lea eax, [rdi - 1]
mov rbx, qword [rsp + 0x30]
mov rsi, qword [rsp + 0x40]
add rsp, 0x20
pop rdi
ret
mov rcx, rdi
call qword [sym.imp.KERNEL32.dll_DeleteFileW]
neg eax
sbb ebx, ebx
neg ebx
cmp dword [0x14045b3f8], 0
jne 0x1401e1004
mov rcx, rdi
call fcn.140005660
mov rsi, qword [rsp + 0x40]
lea eax, [rbx - 1]
mov rbx, qword [rsp + 0x30]
add rsp, 0x20
pop rdi
ret

Function at 0x1401e1020
Capabilities:
Get file attributes

Disassembly:
mov qword [rsp + 8], rbx
push rdi
sub rsp, 0x20
xor edx, edx
call fcn.140321bb0
mov rdi, rax
test rax, rax
je 0x1401e106d
mov rcx, rax
call qword [sym.imp.KERNEL32.dll_GetFileAttributesW]
cmp dword [0x14045b3f8], 0
mov ebx, eax
jne 0x1401e1055
mov rcx, rdi
call fcn.140005660
cmp ebx, 0xffffffff
je 0x1401e106d
shr ebx, 4
and ebx, 1
mov eax, ebx
mov rbx, qword [rsp + 0x30]
add rsp, 0x20
pop rdi
ret
mov rbx, qword [rsp + 0x30]
xor eax, eax
add rsp, 0x20
pop rdi
ret
Function at 0x140237300
Capabilities:
Open clipboard
Write clipboard data

Disassembly:
push rbx
sub rsp, 0x20
mov dword [0x140463664], 0
mov rbx, rdx
test ecx, ecx
je 0x14023731c
cmp ecx, 0x22
jne 0x140237328
mov rax, qword [0x140463670]
test rax, rax
jne 0x14023738d
lea eax, [rcx - 0x30]
cmp eax, 0xa
jb 0x14023737d
lea eax, [rcx - 0x61]
cmp eax, 0x1a
jae 0x14023733d
lea eax, [rcx - 0x57]
jmp 0x14023737d
lea eax, [rcx - 0x41]
cmp eax, 0x1a
jae 0x140237354
lea eax, [rcx - 0x37]
mov dword [0x140463664], 1
jmp 0x14023737d
cmp ecx, 0x2d
jne 0x14023735e
lea eax, [rcx - 9]
jmp 0x14023737d
cmp dword [0x140469ca0], 0
je 0x14023737b
cmp ecx, 0x2a
jne 0x140237371
lea eax, [rcx - 5]
jmp 0x14023737d
cmp ecx, 0x2b
jne 0x14023737b
lea eax, [rcx - 6]
jmp 0x14023737d
xor eax, eax
cdqe
lea rcx, [0x140463690]
shl rax, 5
add rax, rcx
mov ecx, dword [rax + 8]
mov qword [0x140463668], rax
call fcn.140236150
cmp dword [0x14045b3f8], 0
mov rax, qword [0x140463668]
movups xmm0, xmmword [rbx]
movups xmmword [rax], xmm0
movups xmm1, xmmword [rbx + 0x10]
movups xmmword [rax + 0x10], xmm1
jne 0x1402373c9
mov rcx, rbx
call fcn.140005660
mov rax, qword [0x140463668]
lea rcx, [0x140463b30]
cmp rax, rcx
jne 0x140237429
cmp dword [0x140469ca0], 0
je 0x140237429
cmp dword [0x140469ca4], 0
jne 0x1402373f1
mov dword [0x140469ca4], 0
cmp dword [0x1404334f0], 0
jne 0x140237418
mov eax, dword [0x14045b5c8]
test al, 2
jne 0x140237408
test al, 1
je 0x140237418
mov dword [0x14045eb68], 1
add rsp, 0x20
pop rbx
ret
lea rcx, [0x140469ca0]
add rsp, 0x20
pop rbx
jmp fcn.1403221f0
add rsp, 0x20
pop rbx
ret
Function at 0x14032d580
Capabilities:
Check for time delay via gettickcount

Disassembly:
sub rsp, 0x28
mov edx, dword [0x14045b40c]
test edx, edx
jne 0x14032d677
xor eax, eax
cmp dword [0x14045b4d8], eax
setne al
test eax, eax
jne 0x14032d677
mov r10, qword [0x14046a608]
cmp qword [r10], 0
jne 0x14032d5dc
cmp ecx, 1
jle 0x14032d6b8
cmp dword [0x14045b404], eax
jne 0x14032d6b8
xor ecx, ecx
call fcn.140122f90
mov ecx, 0x40
add rsp, 0x28
jmp fcn.14018aca0
test ecx, ecx
jne 0x14032d605
mov rax, qword [0x14046a5f0]
mov r9, qword [rax]
test r9, r9
cmove r9, r10
mov edx, 1
mov rcx, r9
mov r8d, edx
add rsp, 0x28
jmp fcn.140331460
jns 0x14032d63e
mov rdx, qword [0x14046a5f0]
neg ecx
mov r8d, ecx
mov rax, qword [r10]
mov r9, r10
cmp rax, rdx
je 0x14032d633
nop
test rax, rax
je 0x14032d633
mov rcx, qword [rax]
mov r9, rax
mov rax, rcx
cmp rcx, rdx
jne 0x14032d620
mov rdx, r9
sub r8, 1
jne 0x14032d613
jmp 0x14032d5f1
cmp ecx, 0x270f
jne 0x14032d661
mov rcx, qword [r10]
mov r9, r10
test rcx, rcx
je 0x14032d5f1
mov rax, qword [rcx]
mov r9, rcx
mov rcx, rax
test rax, rax
jne 0x14032d651
jmp 0x14032d5f1
call fcn.14032d540
mov r9, rax
test rax, rax
jne 0x14032d5f1
add rsp, 0x28
jmp fcn.14018aac0
test edx, edx
mov qword [rsp + 0x20], rbx
lea rax, str.E565:_Not_allowed_to_change_text_or_change_window
lea rcx, str.E11:_Invalid_in_command_line_window__:q_CR__closes_the_window
cmove rcx, rax
call qword [case.0x1400407ae.0]
mov rbx, rax
call fcn.140182a30
test eax, eax
jne 0x14032d6b3
mov rcx, rbx
mov rbx, qword [rsp + 0x20]
add rsp, 0x28
jmp fcn.140182400
mov rbx, qword [rsp + 0x20]
add rsp, 0x28
ret
Function at 0x1403307f0
Capabilities:
Check for time delay via gettickcount

Disassembly:
mov qword [rsp + 0x10], rbx
push rdi
sub rsp, 0x20
mov rbx, qword [0x14046a618]
mov rdi, rcx
cmp dword [rbx + 0x160], 0
je 0x140330816
lea rcx, str.E994:_Not_allowed_in_a_popup_window
jmp 0x140330826
cmp dword [rcx + 0x160], 0
je 0x14033084e
lea rcx, str.E366:_Not_allowed_to_enter_a_popup_window
call qword [case.0x1400407ae.0]
mov rbx, rax
call fcn.140182a30
test eax, eax
jne 0x1403309ec
mov rcx, rbx
mov rbx, qword [rsp + 0x38]
add rsp, 0x20
pop rdi
jmp fcn.140182400
call fcn.1400fffc0
test eax, eax
je 0x14033087f
cmp dword [0x14045b404], 0
jne 0x1403309ec
xor ecx, ecx
call fcn.140122f90
mov ecx, 0x40
mov rbx, qword [rsp + 0x38]
add rsp, 0x20
pop rdi
jmp fcn.14018aca0
mov rax, qword [0x14045b410]
mov qword [rsp + 0x30], rsi
xor esi, esi
cmp qword [rdi + 8], rax
je 0x1403308c1
cmp dword [0x14045b480], esi
je 0x1403308b9
call fcn.1401a8940
mov rcx, qword [0x14045b410]
lea edx, [rsi + 0x14]
mov dword [reloc.WSOCK32.dll_closesocket], 3
call fcn.140089e80
mov dword [0x14046a2c0], esi
jmp 0x1403308e0
cmp dword [0x14045b480], esi
je 0x1403308e0
mov rax, qword [0x14046a618]
movsd xmm0, qword [rax + 0x38]
movsd qword [rdi + 0x38], xmm0
mov eax, dword [rax + 0x40]
mov dword [rdi + 0x40], eax
mov edx, 0x19
mov rcx, rdi
call fcn.140325390
mov edx, dword [0x14046a300]
test rbx, rbx
je 0x1403309c9
mov rax, qword [0x14046a5e8]
test rax, rax
je 0x140330916
cmp rax, rbx
je 0x140330959
mov rax, qword [rax + 0x18]
test rax, rax
jne 0x140330908
mov rax, qword [0x140469978]
test rax, rax
je 0x140330930
cmp rax, rbx
je 0x140330950
mov rax, qword [rax + 0x18]
test rax, rax
jne 0x140330922
mov rax, qword [0x14046a5f0]
mov rcx, qword [rax + 0x30]
test rcx, rcx
je 0x140330955
cmp rcx, rbx
je 0x140330950
mov rcx, qword [rcx + 0x18]
test rcx, rcx
jne 0x140330940
jmp 0x140330955
mov esi, 1
test esi, esi
je 0x1403309c9
cmp dword [rbx + 0x4c0], 0
jle 0x1403309c9
test edx, edx
jne 0x1403309c9
mov ecx, dword [rbx + 0x344]
mov eax, dword [rbx + 0x38]
test ecx, ecx
je 0x140330977
cmp ecx, eax
jle 0x14033097d
mov dword [rbx + 0x344], eax
mov ecx, dword [rbx + 0x348]
test ecx, ecx
je 0x14033098b
cmp ecx, eax
jge 0x140330991
mov dword [rbx + 0x348], eax
cmp dword [0x14045b548], 0
jne 0x1403309c9
cmp dword [0x14045b4f4], 0
jne 0x1403309c9
cmp dword [rbx + 0x33c], 0xa
jge 0x1403309c9
cmp dword [0x14045b4d4], 0xa
mov dword [rbx + 0x33c], 0xa
jge 0x1403309c9
mov dword [0x14045b4d4], 0xa
mov rax, qword [0x14046a618]
mov rsi, qword [rsp + 0x30]
cmp dword [rax + 0x4c0], 0
jle 0x1403309ec
test edx, edx
jne 0x1403309ec
mov dword [0x14045b6c8], 1
mov rbx, qword [rsp + 0x38]
add rsp, 0x20
pop rdi
ret
Function at 0x1403315a0
Capabilities:
Resolve function by parsing pe exports

Disassembly:
mov qword [rsp + 8], rbx
push rdi
sub rsp, 0x20
mov rax, qword [0x14046a618]
mov ebx, edx
mov edi, ecx
cmp dword [rax + 0x160], 0
je 0x1403315ec
lea rcx, str.E994:_Not_allowed_in_a_popup_window
call qword [case.0x1400407ae.0]
mov rbx, rax
call fcn.140182a30
test eax, eax
jne 0x1403315df
mov rcx, rbx
call fcn.140182400
xor eax, eax
mov rbx, qword [rsp + 0x30]
add rsp, 0x20
pop rdi
ret
call fcn.140329410
test eax, eax
je 0x1403315df
mov ecx, dword [0x14046a508]
test ecx, ecx
cmove ecx, dword [0x14045b820]
test ecx, ecx
je 0x14033162b
xor eax, eax
mov dword [0x14046a508], eax
mov dword [0x14045b820], eax
call fcn.14032c060
cmp eax, 1
jne 0x14033162b
mov rbx, qword [rsp + 0x30]
add rsp, 0x20
pop rdi
ret
or ebx, dword [0x14046a504]
mov eax, ebx
and eax, 0x18
cmp al, 0x18
jne 0x140331643
lea rcx, str.E442:_Cant_split_topleft_and_botright_at_the_same_time
jmp 0x1403315c5
test bl, 0x20
je 0x140331668
xor ecx, ecx
call fcn.140330600
xor r9d, r9d
xor r8d, r8d
mov edx, ebx
mov ecx, edi
mov rbx, qword [rsp + 0x30]
add rsp, 0x20
pop rdi
jmp fcn.14032e900
mov rcx, qword [0x14046a5f0]
xor edx, edx
call fcn.140322ec0
xor r9d, r9d
xor r8d, r8d
mov edx, ebx
mov ecx, edi
mov rbx, qword [rsp + 0x30]
add rsp, 0x20
pop rdi
jmp fcn.14032e900

Function at 0x140335780
Capabilities:
Encrypt data using rc4 prga

Disassembly:
sub rsp, 0x38
mov rax, qword [0x14041f010]
xor rax, rsp
mov qword [rsp + 0x20], rax
movzx eax, byte [rsp + 0x1e]
test edx, edx
mov r11, rcx
mov byte [rsp + 0x1f], 0
mov r8, rcx
mov r9d, edx
mov ecx, 0x2d
cmovs eax, ecx
lea rcx, [rsp + 0x1f]
mov byte [rsp + 0x1e], al
mov eax, edx
cdq
mov r10d, eax
lea rax, [rsp + 0x1e]
xor r10d, edx
test r9d, r9d
cmovs rcx, rax
sub r10d, edx
je 0x140335817
lea r9, str.0123456789
nop word [rax + rax]
lea rax, [rsp]
cmp rcx, rax
jbe 0x140335817
mov eax, 0x66666667
dec rcx
imul r10d
sar edx, 2
mov eax, edx
shr eax, 0x1f
add edx, eax
lea eax, [rdx + rdx*4]
add eax, eax
sub r10d, eax
movsxd rax, r10d
mov r10d, edx
movzx eax, byte [rax + r9]
mov byte [rcx], al
test edx, edx
jne 0x1403357e0
movzx eax, byte [rcx]
test al, al
je 0x140335832
sub rcx, r11
mov byte [r8], al
inc r8
movzx eax, byte [rcx + r8]
test al, al
jne 0x140335821
jmp 0x14033583a
mov byte [r11], 0x30
lea r8, [r11 + 1]
mov byte [r8], 0
sub r8d, r11d
mov eax, r8d
mov rcx, qword [rsp + 0x20]
xor rcx, rsp
call fcn.140001200
add rsp, 0x38
ret
Function at 0x140335d90
Capabilities:
Encode data using xor
Hash data using djb2

Disassembly:
mov qword [rsp + 0x18], rsi
push rdi
push r12
push r13
push r14
push r15
sub rsp, 0x20
mov rdi, qword [rcx]
mov r12d, r8d
mov r15d, r8d
mov r14, rdx
mov r13, rcx
mov esi, 0x1505
and r12d, 0x1e
je 0x140335eb6
cmp rdi, rdx
jae 0x140335e09
mov qword [rsp + 0x50], rbx
mov qword [rsp + 0x58], rbp
nop
movzx eax, byte [rdi]
cmp al, 0xa
je 0x140335dff
cmp r12d, 0x10
jne 0x140335e1d
cmp al, 0xd
jne 0x140335def
lea rax, [rdi + 1]
cmp rax, r14
jae 0x140335def
cmp byte [rax], 0xa
je 0x140335df7
movsx eax, byte [rdi]
imul esi, esi, 0x21
xor esi, eax
inc rdi
cmp rdi, r14
jb 0x140335dd0
mov rbx, qword [rsp + 0x50]
mov rbp, qword [rsp + 0x58]
cmp rdi, r14
lea rcx, [rdi + 1]
cmovae rcx, rdi
mov qword [r13], rcx
jmp 0x140335ee2
mov ecx, eax
call fcn.140012a60
test eax, eax
je 0x140335def
lea rbx, [rdi + 1]
mov rbp, rdi
cmp rbx, r14
jae 0x140335e50
movzx ecx, byte [rbx]
call fcn.140012a60
test eax, eax
je 0x140335e50
cmp byte [rbx], 0xa
je 0x140335e50
inc rdi
inc rbx
cmp rbx, r14
jb 0x140335e34
lea rcx, [rdi + 1]
cmp r14, rcx
jbe 0x140335e62
cmp byte [rcx], 0xa
je 0x140335e62
xor eax, eax
jmp 0x140335e67
mov eax, 1
test r15b, 2
jne 0x140335df7
test r15b, 4
je 0x140335e82
test eax, eax
jne 0x140335e82
imul esi, esi, 0x21
xor esi, 0x20
jmp 0x140335df7
test r15b, 8
je 0x140335df7
test eax, eax
jne 0x140335df7
cmp rbp, rcx
je 0x140335df7
nop dword [rax]
movsx eax, byte [rbp]
inc rbp
imul esi, esi, 0x21
xor esi, eax
cmp rbp, rcx
jne 0x140335ea0
jmp 0x140335df7
cmp rdi, r14
jae 0x140335ed4
nop dword [rax + rax]
movsx eax, byte [rdi]
cmp al, 0xa
je 0x140335ed4
imul esi, esi, 0x21
inc rdi
xor esi, eax
cmp rdi, r14
jb 0x140335ec0
cmp rdi, r14
lea rax, [rdi + 1]
cmovae rax, rdi
mov qword [rcx], rax
mov eax, esi
mov rsi, qword [rsp + 0x60]
add rsp, 0x20
pop r15
pop r14
pop r13
pop r12
pop rdi
ret
Function at 0x140377bd0
Capabilities:
Set console window title

Disassembly:
sub rsp, 0x38
mov qword [rsp + 0x40], rbx
mov ebx, edx
mov qword [rsp + 0x30], rdi
mov rdi, rcx
mov qword [rsp + 0x20], r15
mov dword [rcx + 0x24], edx
call fcn.14018a010
xor r15d, r15d
test ebx, ebx
jne 0x140377d4a
cmp dword [rdi + 0x150], r15d
je 0x140377d4a
lea rdx, str.Moving_postponed_scrollback_to_scrollback
mov qword [rsp + 0x48], rbp
xor ecx, ecx
call fcn.1401522a0
mov rcx, rdi
call fcn.1403786f0
mov ebp, r15d
cmp dword [rdi + 0x150], r15d
jle 0x140377d08
mov qword [rsp + 0x28], r14
lea rbx, [rdi + 0x130]
mov r14d, r15d
mov qword [rsp + 0x50], rsi
nop word [rax + rax]
mov eax, dword [rbx + 4]
sub eax, dword [rbx]
cmp eax, 1
jge 0x140377c6f
mov edx, 1
mov rcx, rbx
call fcn.1400326e0
test eax, eax
je 0x140377cfe
mov rsi, qword [rdi + 0x160]
lea rdx, [0x1403b051f]
add rsi, r14
mov r8, 0xffffffffffffffff
mov rax, qword [rsi + 0x20]
test rax, rax
cmovne rdx, rax
inc r8
cmp byte [rdx + r8], r15b
jne 0x140377c92
mov rcx, rdi
call fcn.140378940
mov rcx, qword [rsi + 0x20]
test rcx, rcx
je 0x140377cba
cmp dword [0x14045b3f8], r15d
jne 0x140377cba
call fcn.140005660
movsxd rax, dword [rbx]
inc ebp
add r14, 0x28
lea rcx, [rax + rax*4]
mov rax, qword [rdi + 0x140]
lea rdx, [rax + rcx*8]
mov eax, dword [rsi]
mov dword [rdx], eax
mov rax, qword [rsi + 8]
mov qword [rdx + 8], rax
movups xmm0, xmmword [rsi + 0x10]
mov qword [rdx + 0x20], r15
movups xmmword [rdx + 0x10], xmm0
inc dword [rdi + 0x148]
inc dword [rbx]
cmp ebp, dword [rdi + 0x150]
jl 0x140377c50
mov rsi, qword [rsp + 0x50]
mov r14, qword [rsp + 0x28]
mov rcx, qword [rdi + 0x160]
mov rbp, qword [rsp + 0x48]
test rcx, rcx
je 0x140377d27
cmp dword [0x14045b3f8], r15d
jne 0x140377d27
call fcn.140005660
lea rdx, [rdi + 0x130]
mov qword [rdi + 0x160], r15
mov r8d, 1
mov qword [rdi + 0x150], r15
mov rcx, rdi
call fcn.140376250
mov rcx, qword [rdi + 0x108]
mov rbx, qword [rsp + 0x40]
test rcx, rcx
je 0x140377d70
cmp dword [0x14045b3f8], r15d
jne 0x140377d69
call fcn.140005660
mov qword [rdi + 0x108], r15
mov rax, qword [0x14045b410]
cmp qword [rdi + 0x18], rax
mov rdi, qword [rsp + 0x30]
mov r15, qword [rsp + 0x20]
jne 0x140377d90
add rsp, 0x38
jmp fcn.14004c9d0
add rsp, 0x38
ret
Function at 0x140393d90
Capabilities:
Read file on windows
Receive data
Receive data on socket

Disassembly:
mov qword [rsp + 0x18], rbx
mov qword [rsp + 0x20], rsi
push rdi
push r12
push r13
push r14
push r15
sub rsp, 0x30
xor r13d, r13d
movsxd r15, edx
mov r12, r8
mov rsi, rcx
mov ebx, r13d
mov r14d, r13d
lea rax, [r15 + r15*8]
shl rax, 5
mov rdi, qword [rax + rcx + 0x18]
cmp rdi, 0xffffffffffffffff
jne 0x140393de8
lea rax, str.sock
mov r8, qword [rax + r15*8]
lea rdx, str.channel_read___called_while__s_part_is_closed
call fcn.140151b80
jmp 0x140393ed7
cmp qword [0x140468018], rbx
mov qword [rsp + 0x60], rbp
mov rbp, qword [rcx + 0x18]
jne 0x140393e19
mov edx, 1
mov ecx, 0x1000
call fcn.140032b90
mov qword [0x140468018], rax
test rax, rax
je 0x140393ed2
xor r8d, r8d
mov rdx, rdi
mov rcx, rsi
call fcn.140394040
test eax, eax
jne 0x140393eb5
nop
mov rdx, qword [0x140468018]
mov r8d, 0x1000
mov rcx, rdi
cmp rdi, rbp
jne 0x140393e52
xor r9d, r9d
call qword [sym.imp.WSOCK32.dll_recv]
mov ebx, eax
jmp 0x140393e6a
lea r9, [rsp + 0x68]
mov qword [rsp + 0x20], r13
call qword [sym.imp.KERNEL32.dll_ReadFile]
test eax, eax
je 0x140393eab
mov ebx, dword [rsp + 0x68]
test ebx, ebx
jle 0x140393eb0
mov r8, qword [0x140468018]
lea rax, str.RECV
mov qword [rsp + 0x28], rax
mov r9d, ebx
mov edx, r15d
mov dword [rsp + 0x20], r13d
mov rcx, rsi
call fcn.1403985b0
xor r8d, r8d
mov rdx, rdi
mov rcx, rsi
add r14d, ebx
call fcn.140394040
test eax, eax
je 0x140393e30
jmp 0x140393eb0
mov ebx, 0xffffffff
test r14d, r14d
jg 0x140393ed2
cmp dword [rsi + 0x4fc], r13d
jne 0x140393ed2
shr ebx, 0x1f
mov r9, r12
mov r8d, ebx
mov edx, r15d
mov rcx, rsi
call fcn.140393f40
mov rbp, qword [rsp + 0x60]
mov rbx, qword [rsp + 0x70]
mov rsi, qword [rsp + 0x78]
add rsp, 0x30
pop r15
pop r14
pop r13
pop r12
pop rdi
ret
Function at 0x14039bbd0
Capabilities:
Check for time delay via gettickcount

Disassembly:
push r12
push r13
push r14
sub rsp, 0x30
inc dword [0x140468008]
xor r12d, r12d
inc dword [0x140468028]
mov r14d, r12d
mov qword [rsp + 0x50], rbx
mov rbx, qword [0x140468020]
mov qword [rsp + 0x28], rdi
mov edi, r12d
mov qword [rsp + 0x20], r15
call qword [sym.imp.KERNEL32.dll_GetTickCount]
mov r13d, 1
mov r15d, eax
test byte [0x14045b8cc], r13b
jne 0x14039bc32
lea rdx, str.looking_for_messages_on_channels
xor ecx, ecx
call fcn.1401522a0
mov dword [0x14045b8cc], r13d
test rbx, rbx
je 0x14039bcf6
mov qword [rsp + 0x60], rsi
mov rsi, r12
mov qword [rsp + 0x58], rbp
nop dword [rax + rax]
cmp dword [0x140468008], r13d
jne 0x14039bdb0
cmp dword [rbx + 0x4ac], r12d
jne 0x14039bc9a
lea rdx, str.Closing_channel_because_all_readable_fds_are_closed
mov dword [rbx + 0x4ac], 0x10
mov rcx, rbx
call fcn.1401522a0
mov rax, qword [rbx + 0x4b8]
test rax, rax
je 0x14039bc8d
call rax
mov edx, r13d
mov rcx, rbx
call fcn.140394810
jmp 0x14039bcdc
cmp dword [rbx + 0x4b0], r12d
jne 0x14039bd39
cmp dword [rbx + 0x518], r12d
jne 0x14039bd39
cmp dword [rbx + 0x51c], r12d
jne 0x14039bdb0
mov rcx, rbx
call fcn.14039a840
test eax, eax
jne 0x14039bdb0
call fcn.14039a4c0
mov rsi, r12
mov edi, r12d
mov rbx, qword [0x140468020]
test rbx, rbx
jne 0x14039bc50
mov rsi, qword [rsp + 0x60]
mov rbp, qword [rsp + 0x58]
cmp dword [0x14045b9a8], r12d
mov r15, qword [rsp + 0x20]
mov rdi, qword [rsp + 0x28]
mov rbx, qword [rsp + 0x50]
je 0x14039bd1f
xor edx, edx
mov dword [0x14045b9a8], r12d
mov ecx, r13d
call fcn.14008f7a0
dec dword [0x140468028]
mov eax, r14d
dec dword [0x140468008]
add rsp, 0x30
pop r14
pop r13
pop r12
ret
mov edx, r13d
mov rcx, rbx
call fcn.140394810
mov rcx, rbx
call fcn.14039ac50
lea rdx, str.Freeing_channel
mov rcx, rbx
call fcn.1401522a0
mov rax, qword [rbx + 0x508]
test rax, rax
je 0x14039bd6e
mov qword [rax + 0x88], r12
mov rcx, qword [rbx]
test rcx, rcx
je 0x14039bd7e
mov rax, qword [rbx + 8]
mov qword [rcx + 8], rax
mov rcx, qword [rbx + 8]
mov rax, qword [rbx]
test rcx, rcx
jne 0x14039bd93
mov qword [0x140468020], rax
jmp 0x14039bd96
mov qword [rcx], rax
cmp dword [0x14045b3f8], r12d
jne 0x14039bcdc
mov rcx, rbx
call fcn.140005660
jmp 0x14039bcdc
lea rax, [rsi + rsi*8]
shl rax, 5
cmp qword [rax + rbx + 0x18], 0xffffffffffffffff
jne 0x14039bdcf
mov edx, edi
mov rcx, rbx
call fcn.140395640
test rax, rax
je 0x14039be0f
inc dword [rbx + 0x51c]
mov edx, edi
mov rcx, rbx
call fcn.140395690
cmp eax, r13d
mov rcx, rbx
mov ebp, eax
cmove r14d, r13d
call fcn.14039b300
test eax, eax
jne 0x14039bcd6
cmp ebp, r13d
jne 0x14039be0f
call qword [sym.imp.KERNEL32.dll_GetTickCount]
sub eax, r15d
cmp eax, 0x64
jl 0x14039bcd6
cmp edi, 2
jl 0x14039be17
mov rbx, qword [rbx]
inc rsi
mov eax, edi
cmp edi, 2
cmovge rsi, r12
inc edi
cmp eax, 2
cmovge edi, r12d
jmp 0x14039bce3