joyce8/EMBER2024-capa huggingface dataset:
Function at 0x1400673c0
Capabilities:
Check if file exists

Disassembly:
push r14
push rsi
push rdi
push rbx
sub rsp, 0x28
mov rdi, rdx
mov rsi, rcx
mov qword [rcx], 0
test rdx, rdx
je 0x140067409
call qword [sym.imp.KERNEL32.dll_GetLastError]
mov ebx, eax
mov rax, qword [rsi]
inc rax
cmp rax, 2
jae 0x140067425
lea rax, [rdi + 1]
cmp rax, 2
jb 0x140067401
mov qword [rsi], rdi
call fcn.140118d70
mov ecx, ebx
call qword [sym.imp.KERNEL32.dll_SetLastError]
mov byte [rsi + 8], 0
call qword [sym.imp.KERNEL32.dll_GetCurrentProcess]
cmp rax, rdi
je 0x140067497
mov rax, rsi
add rsp, 0x28
pop rbx
pop rdi
pop rsi
pop r14
ret
call fcn.140118d70
mov r14, qword [rsi]
cmp qword [0x1402c5c40], 0
je 0x140067456
mov rcx, qword [0x1402c5c40]
mov rax, qword [rcx]
mov rax, qword [rax]
mov rdx, r14
call qword [0x1402a3e88]
mov qword [rsi], 0
jmp 0x1400673ef
xor ecx, ecx
call qword [sym.imp.KERNEL32.dll_GetModuleHandleW]
lea rdx, [0x140288eef]
mov rcx, rax
call qword [sym.imp.KERNEL32.dll_GetProcAddress]
test rax, rax
je 0x14006749a
lea rcx, [sym.chrome.exe_GetHandleVerifier]
cmp rax, rcx
je 0x140067491
call qword [0x1402a3e88]
mov rcx, rax
xor edx, edx
call fcn.1400445d0
jmp 0x140067437
xor ecx, ecx
mov dl, 1
jmp 0x14006748a
int3
xor ecx, ecx
jmp 0x140067488

Function at 0x1400678f0
Capabilities:
Write file on windows

Disassembly:
push r15
push r14
push r12
push rsi
push rdi
push rbx
sub rsp, 0x98
mov edi, r8d
mov rbx, rdx
mov r14, rcx
mov rax, qword [0x1402b3040]
xor rax, rsp
mov qword [rsp + 0x90], rax
movaps xmm0, xmmword [0x14026f080]
lea r15, [rsp + 0x50]
movaps xmmword [r15 + 0x30], xmm0
movaps xmmword [r15 + 0x20], xmm0
movaps xmmword [r15 + 0x10], xmm0
movaps xmmword [r15], xmm0
lea rdx, str.WriteAtCurrentPos
lea r8, [0x1402819f8]
lea r12, [rsp + 0x30]
mov rcx, r12
mov r9d, 0x97
call fcn.14012cb80
xor esi, esi
mov rcx, r15
mov rdx, r12
xor r8d, r8d
call fcn.140159990
test edi, edi
js 0x1400679cb
lea r15, [rsp + 0x30]
mov dword [r15], 0xaaaaaaaa
mov rcx, qword [r14]
mov qword [rsp + 0x20], 0
mov rdx, rbx
mov r8d, edi
mov r9, r15
call qword [sym.imp.KERNEL32.dll_WriteFile]
cmp eax, 1
sbb esi, esi
or esi, dword [r15]
lea rcx, [rsp + 0x50]
call fcn.1401594a0
mov rcx, qword [rsp + 0x90]
xor rcx, rsp
call fcn.140191d80
mov eax, esi
add rsp, 0x98
pop rbx
pop rdi
pop rsi
pop r12
pop r14
pop r15
ret
mov esi, 0xffffffff
jmp 0x14006799e
Function at 0x140067c80
Capabilities:
Check if file exists
Get file attributes

Disassembly:
push rsi
push rdi
push rbx
sub rsp, 0xa0
mov rsi, rcx
mov rax, qword [0x1402b3040]
xor rax, rsp
mov qword [rsp + 0x98], rax
movaps xmm0, xmmword [0x14026f080]
lea rbx, [rsp + 0x40]
movaps xmmword [rbx + 0x30], xmm0
movaps xmmword [rbx + 0x20], xmm0
movaps xmmword [rbx + 0x10], xmm0
movaps xmmword [rbx], xmm0
lea rdx, str.PathExists
lea r8, str....._base_files_file_util_win.cc
lea rdi, [rsp + 0x20]
mov rcx, rdi
mov r9d, 0x211
call fcn.14012cb80
mov rcx, rbx
xor edx, edx
xor r8d, r8d
call fcn.14011ac90
mov qword [rsp + 0x80], 0xa
mov al, byte [0x1402c585a]
test al, al
jne 0x140067d3d
cmp byte [rsi + 0x17], 0
jns 0x140067d07
mov rsi, qword [rsi]
mov rcx, rsi
call qword [sym.imp.KERNEL32.dll_GetFileAttributesW]
cmp eax, 0xffffffff
setne bl
lea rcx, [rsp + 0x40]
call fcn.1401594a0
mov rcx, qword [rsp + 0x98]
xor rcx, rsp
call fcn.140191d80
mov eax, ebx
add rsp, 0xa0
pop rbx
pop rdi
pop rsi
ret
movzx ecx, al
lea r9, [rsp + 0x90]
mov qword [r9], rdi
lea rax, str.ScopedBlockingCall
lea r8, [rsp + 0x88]
mov qword [r8], rax
lea rdx, [rsp + 0x80]
call fcn.1401f5c00
jmp 0x140067cfe
Function at 0x140067d70
Capabilities:
Check if file exists
Get file attributes

Disassembly:
push rsi
push rdi
push rbx
sub rsp, 0xc0
mov rdi, rcx
mov rax, qword [0x1402b3040]
xor rax, rsp
mov qword [rsp + 0xb8], rax
movaps xmm0, xmmword [0x14026f080]
lea rbx, [rsp + 0x60]
movaps xmmword [rbx + 0x30], xmm0
movaps xmmword [rbx + 0x20], xmm0
movaps xmmword [rbx + 0x10], xmm0
movaps xmmword [rbx], xmm0
lea rdx, str.PathHasAccess
lea r8, str....._base_files_file_util_win.cc
lea rsi, [rsp + 0x40]
mov rcx, rsi
mov r9d, 0x21a
call fcn.14012cb80
mov rcx, rbx
xor edx, edx
xor r8d, r8d
call fcn.14011ac90
mov qword [rsp + 0xa0], 0xa
mov al, byte [0x1402c585a]
test al, al
jne 0x140067f1e
cmp byte [rdi + 0x17], 0
jns 0x140067dfb
mov rdi, qword [rdi]
mov rcx, rdi
call qword [sym.imp.KERNEL32.dll_GetFileAttributesW]
cmp eax, 0xffffffff
je 0x140067f1a
test al, 0x10
mov eax, 0x40000000
mov edx, 2
cmove edx, eax
mov eax, 0x80
mov ecx, 0x2000000
cmove ecx, eax
mov dword [rsp + 0x28], ecx
mov qword [rsp + 0x30], 0
mov dword [rsp + 0x20], 3
xor esi, esi
mov rcx, rdi
mov r8d, 7
xor r9d, r9d
call qword [sym.imp.KERNEL32.dll_CreateFileW]
test rax, rax
je 0x140067e78
mov rbx, rax
call qword [sym.imp.KERNEL32.dll_GetLastError]
mov edi, eax
cmp rbx, 0xffffffffffffffff
je 0x140067ed5
call fcn.140118d70
mov rsi, rbx
mov ecx, edi
call qword [sym.imp.KERNEL32.dll_SetLastError]
test rsi, rsi
setne dil
lea rax, [rsi + 1]
cmp rax, 2
jb 0x140067eae
call fcn.140118d70
cmp qword [0x1402c5c40], 0
je 0x140067ed9
mov rcx, qword [0x1402c5c40]
mov rax, qword [rcx]
mov rax, qword [rax]
mov rdx, rsi
call qword [0x1402a3e88]
lea rcx, [rsp + 0x60]
call fcn.1401594a0
mov rcx, qword [rsp + 0xb8]
xor rcx, rsp
call fcn.140191d80
mov eax, edi
add rsp, 0xc0
pop rbx
pop rdi
pop rsi
ret
xor esi, esi
jmp 0x140067e70
xor ecx, ecx
call qword [sym.imp.KERNEL32.dll_GetModuleHandleW]
lea rdx, [0x140288eef]
mov rcx, rax
call qword [sym.imp.KERNEL32.dll_GetProcAddress]
test rax, rax
je 0x140067f50
lea rcx, [sym.chrome.exe_GetHandleVerifier]
cmp rax, rcx
je 0x140067f14
call qword [0x1402a3e88]
mov rcx, rax
xor edx, edx
call fcn.1400445d0
jmp 0x140067e98
xor ecx, ecx
mov dl, 1
jmp 0x140067f0d
xor edi, edi
jmp 0x140067eae
movzx ecx, al
lea r9, [rsp + 0xb0]
mov qword [r9], rsi
lea rax, str.ScopedBlockingCall
lea r8, [rsp + 0xa8]
mov qword [r8], rax
lea rdx, [rsp + 0xa0]
call fcn.1401f5c00
jmp 0x140067df2
xor ecx, ecx
jmp 0x140067f0b
Function at 0x140067f60
Capabilities:
Check if file exists
Get file attributes

Disassembly:
push rsi
push rdi
push rbx
sub rsp, 0xa0
mov rsi, rcx
mov rax, qword [0x1402b3040]
xor rax, rsp
mov qword [rsp + 0x98], rax
movaps xmm0, xmmword [0x14026f080]
lea rbx, [rsp + 0x40]
movaps xmmword [rbx + 0x30], xmm0
movaps xmmword [rbx + 0x20], xmm0
movaps xmmword [rbx + 0x10], xmm0
movaps xmmword [rbx], xmm0
lea rdx, str.DirectoryExists
lea r8, str....._base_files_file_util_win.cc
lea rdi, [rsp + 0x20]
mov rcx, rdi
mov r9d, 0x239
call fcn.14012cb80
mov rcx, rbx
xor edx, edx
xor r8d, r8d
call fcn.14011ac90
mov qword [rsp + 0x80], 0xa
mov al, byte [0x1402c585a]
test al, al
jne 0x140068028
cmp byte [rsi + 0x17], 0
jns 0x140067fe7
mov rsi, qword [rsi]
mov rcx, rsi
call qword [sym.imp.KERNEL32.dll_GetFileAttributesW]
mov esi, eax
cmp eax, 0xffffffff
setne al
and esi, 0x10
shr esi, 4
and sil, al
lea rcx, [rsp + 0x40]
call fcn.1401594a0
mov rcx, qword [rsp + 0x98]
xor rcx, rsp
call fcn.140191d80
mov eax, esi
add rsp, 0xa0
pop rbx
pop rdi
pop rsi
ret
movzx ecx, al
lea r9, [rsp + 0x90]
mov qword [r9], rdi
lea rax, str.ScopedBlockingCall
lea r8, [rsp + 0x88]
mov qword [r8], rax
lea rdx, [rsp + 0x80]
call fcn.1401f5c00
jmp 0x140067fde

Function at 0x140068060
Capabilities:
Get common file path

Disassembly:
push r14
push rsi
push rdi
push rbx
sub rsp, 0x2c8
mov rsi, rcx
mov rax, qword [0x1402b3040]
xor rax, rsp
mov qword [rsp + 0x2c0], rax
movaps xmm0, xmmword [0x14026f080]
lea rbx, [rsp + 0x60]
movaps xmmword [rbx + 0x30], xmm0
movaps xmmword [rbx + 0x20], xmm0
movaps xmmword [rbx + 0x10], xmm0
movaps xmmword [rbx], xmm0
lea rdx, [0x140281b3a]
lea r8, str....._base_files_file_util_win.cc
lea rdi, [rsp + 0xb0]
mov rcx, rdi
mov r9d, 0x430
call fcn.14012cb80
mov rcx, rbx
xor edx, edx
xor r8d, r8d
call fcn.14011ac90
mov qword [rsp + 0xa8], 0xa
mov al, byte [0x1402c585a]
test al, al
jne 0x1400681bd
lea rbx, [rsp + 0xb0]
mov r8d, 0x208
mov rcx, rbx
mov dl, 0xaa
call fcn.1401cdd90
mov word [rbx], 0
mov ecx, 0x104
mov rdx, rbx
call qword [sym.imp.KERNEL32.dll_GetCurrentDirectoryW]
mov edi, eax
dec edi
cmp edi, 0x103
ja 0x14006818b
lea r14, [rsp + 0x20]
mov qword [r14], rbx
mov rcx, rbx
call fcn.14018f988
mov qword [r14 + 8], rax
lea rbx, [rsp + 0x30]
mov rcx, rbx
mov rdx, r14
call fcn.140177590
lea rdx, [rsp + 0x48]
mov rcx, rbx
call fcn.1400517f0
cmp byte [rsi + 0x17], 0
jns 0x14006815d
mov rcx, qword [rsi]
call fcn.14018f5b0
mov rax, qword [rsp + 0x58]
mov qword [rsi + 0x10], rax
movups xmm0, xmmword [rsp + 0x48]
movups xmmword [rsi], xmm0
mov byte [rsp + 0x5f], 0
mov word [rsp + 0x48], 0
cmp byte [rsp + 0x47], 0
jns 0x14006818b
mov rcx, qword [rsp + 0x30]
call fcn.14018f5b0
cmp edi, 0x104
setb bl
lea rcx, [rsp + 0x60]
call fcn.1401594a0
mov rcx, qword [rsp + 0x2c0]
xor rcx, rsp
call fcn.140191d80
mov eax, ebx
add rsp, 0x2c8
pop rbx
pop rdi
pop rsi
pop r14
ret
movzx ecx, al
lea r9, [rsp + 0x48]
mov qword [r9], rdi
lea rax, str.ScopedBlockingCall
lea r8, [rsp + 0x30]
mov qword [r8], rax
lea rdx, [rsp + 0xa8]
call fcn.1401f5c00
jmp 0x1400680e7
Function at 0x1400681f0
Capabilities:
Set current directory

Disassembly:
push rsi
push rdi
push rbx
sub rsp, 0xa0
mov rsi, rcx
mov rax, qword [0x1402b3040]
xor rax, rsp
mov qword [rsp + 0x98], rax
movaps xmm0, xmmword [0x14026f080]
lea rbx, [rsp + 0x40]
movaps xmmword [rbx + 0x30], xmm0
movaps xmmword [rbx + 0x20], xmm0
movaps xmmword [rbx + 0x10], xmm0
movaps xmmword [rbx], xmm0
lea rdx, [0x140281b4f]
lea r8, str....._base_files_file_util_win.cc
lea rdi, [rsp + 0x20]
mov rcx, rdi
mov r9d, 0x440
call fcn.14012cb80
mov rcx, rbx
xor edx, edx
xor r8d, r8d
call fcn.14011ac90
mov qword [rsp + 0x80], 0xa
mov al, byte [0x1402c585a]
test al, al
jne 0x1400682ac
cmp byte [rsi + 0x17], 0
jns 0x140068277
mov rsi, qword [rsi]
mov rcx, rsi
call qword [sym.imp.KERNEL32.dll_SetCurrentDirectoryW]
test eax, eax
setne bl
lea rcx, [rsp + 0x40]
call fcn.1401594a0
mov rcx, qword [rsp + 0x98]
xor rcx, rsp
call fcn.140191d80
mov eax, ebx
add rsp, 0xa0
pop rbx
pop rdi
pop rsi
ret
movzx ecx, al
lea r9, [rsp + 0x90]
mov qword [r9], rdi
lea rax, str.ScopedBlockingCall
lea r8, [rsp + 0x88]
mov qword [r8], rax
lea rdx, [rsp + 0x80]
call fcn.1401f5c00
jmp 0x14006826e

Function at 0x14006df90
Capabilities:
Get file attributes

Disassembly:
push r15
push r14
push r12
push rsi
push rdi
push rbx
sub rsp, 0x38
mov rdi, rdx
mov rax, qword [0x1402b3040]
xor rax, rsp
mov qword [rsp + 0x30], rax
movabs rax, 0xaaaaaaaaaaaaaaaa
lea rsi, [rsp + 0x28]
mov qword [rsi], rax
mov rdx, rsi
call fcn.14005b7c0
mov rax, qword [rsi]
test rax, rax
je 0x14006e007
mov rbx, qword [rax + 0x50]
mov r15, qword [rax + 0x58]
xor esi, esi
cmp rbx, r15
jne 0x14006e00e
lea rcx, [rsp + 0x28]
call fcn.14005aea0
mov rcx, qword [rsp + 0x30]
xor rcx, rsp
call fcn.140191d80
mov eax, esi
add rsp, 0x38
pop rbx
pop rdi
pop rsi
pop r12
pop r14
pop r15
ret
mov esi, 3
jmp 0x14006dfe0
mov r12, qword [sym.imp.KERNEL32.dll_GetFileAttributesW]
cmp dword [rbx + 0x68], 2
jne 0x14006e032
cmp byte [rbx + 0x27], 0
js 0x14006e027
lea rcx, [rbx + 0x10]
jmp 0x14006e02b
mov rcx, qword [rbx + 0x10]
call r12
test al, 0x10
je 0x14006e03d
add rbx, 0x70
cmp rbx, r15
je 0x14006dfe0
jmp 0x14006e015
mov r14, qword [rdi + 8]
cmp r14, qword [rdi + 0x10]
jae 0x14006e05c
mov rcx, r14
mov rdx, rbx
call fcn.1402115d0
add r14, 0x68
mov qword [rdi + 8], r14
jmp 0x14006e032
mov rcx, rdi
mov rdx, rbx
call fcn.140211490
mov r14, rax
jmp 0x14006e056

Function at 0x14006f660
Capabilities:
Encrypt data using aes via x86 extensions

Disassembly:
movups xmm0, xmmword [rcx]
shl eax, 4
movups xmm1, xmmword [rcx + 0x10]
xorps xmm2, xmm0
xorps xmm3, xmm0
movups xmm0, xmmword [rcx + 0x20]
lea rcx, [rcx + rax + 0x20]
neg rax
add rax, 0x10
aesenc xmm2, xmm1
aesenc xmm3, xmm1
movups xmm1, xmmword [rcx + rax]
add rax, 0x20
aesenc xmm2, xmm0
aesenc xmm3, xmm0
movups xmm0, xmmword [rcx + rax - 0x10]
jne 0x14006f680
aesenc xmm2, xmm1
aesenc xmm3, xmm1
aesenclast xmm2, xmm0
aesenclast xmm3, xmm0
ret
Function at 0x14009cfd0
Capabilities:
Read .ini file

Disassembly:
push r15
push r14
push rsi
push rdi
push rbx
sub rsp, 0xc50
mov rdi, r9
mov rbx, r8
mov r14, rdx
mov rsi, rcx
mov rax, qword [0x1402b3040]
xor rax, rsp
mov qword [rsp + 0xc48], rax
lea r15, [rsp + 0x440]
mov r8d, 0x800
mov rcx, r15
xor edx, edx
call fcn.1401cdd90
mov qword [rsp + 0x28], rdi
mov dword [rsp + 0x20], 0x400
lea r8, [0x140274742]
mov rcx, r14
mov rdx, rbx
mov r9, r15
call qword [sym.imp.KERNEL32.dll_GetPrivateProfileStringW]
mov rcx, r15
call fcn.14018f988
mov rbx, rax
test ebx, ebx
jle 0x14009d102
movabs r15, 0x7ffffffffffffff7
lea rdi, [rsp + 0x40]
mov r8d, 0x400
mov rcx, rdi
xor edx, edx
call fcn.1401cdd90
xorps xmm0, xmm0
movups xmmword [rsp + 0x30], xmm0
mov dword [rsp + 0x28], ebx
mov qword [rsp + 0x20], rdi
lea r8, [rsp + 0x440]
xor ecx, ecx
xor edx, edx
mov r9d, 0xffffffff
call qword [sym.imp.KERNEL32.dll_WideCharToMultiByte]
mov rcx, rdi
call fcn.1401b34e0
cmp rax, r15
ja 0x14009d14a
mov rbx, rax
cmp rax, 0x16
ja 0x14009d10b
mov byte [rsi + 0x17], bl
mov rcx, rsi
lea r14, [rcx + rbx]
cmp rcx, rdi
seta al
cmp r14, rdi
setbe dl
or dl, al
je 0x14009d14d
test rbx, rbx
je 0x14009d0dc
lea rdx, [rsp + 0x40]
mov r8, rbx
call fcn.1401cd6f0
mov byte [r14], 0
mov rcx, qword [rsp + 0xc48]
xor rcx, rsp
call fcn.140191d80
mov rax, rsi
add rsp, 0xc50
pop rbx
pop rdi
pop rsi
pop r14
pop r15
ret
xor eax, eax
mov byte [rsi + 0x17], al
mov byte [rsi], al
jmp 0x14009d0e0
lea rax, [r15 + 1]
and rax, rbx
add rax, 8
mov r14, rbx
or r14, 7
cmp r14, 0x17
cmove r14, rax
inc r14
mov rcx, r14
call fcn.14018f5b8
mov rcx, rax
mov qword [rsi], rax
add r15, 9
or r15, r14
mov qword [rsi + 0x10], r15
mov qword [rsi + 8], rbx
jmp 0x14009d0b2
int3
int3

Function at 0x14009e770
Capabilities:
Parse pe header

Disassembly:
mov rax, qword [rcx + 8]
movzx ecx, word [rax]
cmp ecx, 0x5a4d
jne 0x14009e7a7
movsxd rcx, dword [rax + 0x3c]
cmp dword [rax + rcx], 0x4550
jne 0x14009e7a7
movzx edx, word [rax + rcx + 0x14]
cmp edx, 0xf0
jne 0x14009e7a7
movzx eax, word [rax + rcx + 0x18]
cmp eax, 0x20b
sete al
ret
xor eax, eax
jmp 0x14009e7a6
Function at 0x1400a2dd0
Capabilities:
Allocate thread local storage

Disassembly:
push rsi
sub rsp, 0x20
cmp dword [rcx + 0xb78], 0x8000
jne 0x1400a2ee4
mov rsi, rcx
movzx eax, word [0x1402b5808]
lea rax, [rax + rax*4]
cmp dword [rcx + rax*8 + 0x60], 0x200
jne 0x1400a2ee7
lea rcx, [0x1402b57c0]
call qword [sym.imp.KERNEL32.dll_TryAcquireSRWLockExclusive]
test al, al
je 0x1400a2eed
cmp byte [0x1402c5fe8], 0
je 0x1400a2e5a
lea rcx, [0x1402b57c0]
call qword [sym.imp.KERNEL32.dll_ReleaseSRWLockExclusive]
xor eax, eax
lock cmpxchg qword [0x1402c5ff0], rsi
jne 0x1400a2eea
add rsi, 0x48
lea rax, [0x1400a2f10]
mov qword [0x1402cbd60], rax
xor eax, eax
lea rcx, [0x1402c5fa0]
jmp 0x1400a2ebd
cmp qword [0x1402cbd50], 0
jne 0x1400a2efe
call qword [sym.imp.KERNEL32.dll_TlsAlloc]
cmp eax, 0xffffffff
je 0x1400a2f01
mov dword [0x1402c5f90], eax
mov dword [0x1402cbd58], eax
lea rax, [0x14002a9d0]
mov qword [0x1402cbd50], rax
mov byte [0x1402c5fe8], 1
jmp 0x1400a2e1f
mov dl, 0x80
jmp 0x1400a2ead
cmp edx, 0x201
setb dl
shl dl, 4
add dl, 0x10
mov byte [rax + rcx], dl
inc rax
add rsi, 0x28
cmp rax, 0x48
je 0x1400a2eda
cmp qword [rsi], 0
je 0x1400a2ee0
mov edx, dword [rsi + 0x18]
cmp edx, 0x81
jb 0x1400a2e9a
cmp edx, 0x101
jae 0x1400a2e9e
mov dl, 0x40
jmp 0x1400a2ead
add rsp, 0x20
pop rsi
ret
xor edx, edx
jmp 0x1400a2ead
int3
int3
int3
lea rcx, [0x1402b57c0]
call fcn.1401200e0
jmp 0x1400a2e16
int3
int3

Function at 0x1400a3290
Capabilities:
Query environment variable

Disassembly:
push r15
push r14
push rsi
push rdi
push rbx
sub rsp, 0x20
mov eax, 1
lea rdx, [0x14028cbb0]
cmp qword [0x1402c1810], rdx
jne 0x1400a32be
test rcx, rcx
je 0x1400a3308
mov qword [0x1402c1810], rcx
xor eax, eax
add rsp, 0x20
pop rbx
pop rdi
pop rsi
pop r14
pop r15
ret
mov rax, qword [fcn.14018db50]
mov rcx, rsi
call qword [0x1402a3e88]
xor esi, esi
lea rax, [0x140291bc8]
mov qword [0x1402c1810], rax
mov rax, qword [fcn.14018db50]
mov rcx, rsi
call qword [0x1402a3e88]
jmp 0x1400a32bc
mov rax, qword [fcn.14018db50]
mov rcx, r14
jmp 0x1400a32d4
mov edi, 1
xor r14d, r14d
lea rbx, str.CURL_SSL_BACKEND
mov r15, qword [sym.imp.KERNEL32.dll_GetEnvironmentVariableA]
mov rax, qword [fcn.14018db70]
mov edx, edi
mov rcx, r14
call qword [0x1402a3e88]
test rax, rax
je 0x1400a32fc
mov rsi, rax
mov rcx, rbx
mov rdx, rax
mov r8d, edi
call r15
test eax, eax
je 0x1400a32ca
cmp eax, edi
je 0x1400a32ca
cmp eax, 0x8001
jae 0x1400a32ca
mov r14, rsi
cmp eax, edi
mov edi, eax
jae 0x1400a331e
mov rdx, qword [str.schannel]
mov rcx, rsi
call fcn.1400a9740
test eax, eax
je 0x1400a32dc
mov rax, qword [fcn.14018db50]
lea rcx, [0x140291bc8]
mov qword [0x1402c1810], rcx
jmp 0x1400a32f1
Function at 0x1400a8460
Capabilities:
Encode data using xor
Encrypt data using rc4 prga
Hash data using djb2

Disassembly:
push rsi
push rdi
sub rsp, 0x48
mov rax, qword [0x1402b3040]
xor rax, rsp
mov qword [rsp + 0x40], rax
test rcx, rcx
je 0x1400a84a6
mov rsi, rcx
lea r8, [rsp + 0x2c]
mov dword [r8], 0xaaaaaaaa
movaps xmm0, xmmword [0x14026f080]
movaps xmmword [rsp + 0x30], xmm0
mov ecx, 2
mov rdx, rsi
call fcn.1400c61e0
test eax, eax
je 0x1400a84bf
xor edi, edi
mov rcx, qword [rsp + 0x40]
xor rcx, rsp
call fcn.140191d80
mov rax, rdi
add rsp, 0x48
pop rdi
pop rsi
ret
lea r8, [rsp + 0x30]
mov ecx, Ordinal_26
mov rdx, rsi
call fcn.1400c61e0
test eax, eax
jne 0x1400a84a6
mov rcx, rsi
call fcn.1401b34e0
mov edi, 5
test rax, rax
je 0x1400a84a8
lea r9, [rax + rsi]
dec r9
mov rdx, 0xffffffffffffffff
xor ecx, ecx
cmp r9, rsi
jb 0x1400a853d
inc rdx
lea r8, [r9 - 1]
cmp byte [r9], 0x2e
mov r9, r8
jne 0x1400a84f7
mov rcx, rdx
sub rcx, rax
cmp rcx, 0xffffffffffffffff
je 0x1400a853b
xor ecx, ecx
cmp r8, rsi
jb 0x1400a853d
lea r9, [r8 - 1]
inc rdx
cmp byte [r8], 0x2e
mov r8, r9
jne 0x1400a851a
add r9, 2
mov rax, rdx
mov rcx, r9
jmp 0x1400a853d
xor ecx, ecx
test rcx, rcx
cmovne rsi, rcx
test rax, rax
jle 0x1400a84a8
add rax, rsi
mov ecx, 0x1505
mov rdx, rcx
shl rdx, 5
add rdx, rcx
movzx ecx, byte [rsi]
inc rsi
lea r8d, [rcx - 0x61]
lea r9d, [rcx - 0x20]
cmp r8b, 0x1a
movzx r8d, r9b
cmovae r8d, ecx
movzx ecx, r8b
xor rcx, rdx
cmp rsi, rax
jb 0x1400a8555
movzx edi, cl
jmp 0x1400a84a8
Function at 0x1400aae50
Capabilities:
Check for time delay via queryperformancecounter

Disassembly:
push r14
push rsi
push rdi
push rbx
sub rsp, 0x48
mov rdi, rdx
mov rsi, rcx
mov rax, qword [0x1402b3040]
xor rax, rsp
mov qword [rsp + 0x40], rax
mov rbx, qword [rcx]
mov rcx, rbx
mov edx, 3
call fcn.1400ba790
mov rax, qword [rsi + 0x698]
test byte [rax + 0x80], 0x10
jne 0x1400ab0d5
xor eax, eax
mov byte [rdi], al
mov byte [rsi + 0x66b], al
cmp qword [rbx + 0xd08], 0
je 0x1400aaee4
mov rax, qword [fcn.14018db50]
mov rcx, qword [rsi + 0x6e0]
call qword [0x1402a3e88]
mov qword [rsi + 0x6e0], 0
mov rdx, qword [rbx + 0xd08]
lea rcx, str.User_Agent:__s_r_n
call fcn.1400bc1f0
mov qword [rsi + 0x6e0], rax
test rax, rax
je 0x1400aaf1b
mov qword [rbx + 0x108], 0
cmp byte [0x1402c87c0], 1
je 0x1400aaf25
call qword [sym.imp.KERNEL32.dll_GetTickCount]
mov ecx, eax
imul rcx, rcx, 0x10624dd3
shr rcx, 0x26
imul edx, ecx, 0x3e8
sub eax, edx
imul eax, eax, 0x3e8
jmp 0x1400aaf5e
mov edi, reloc.WLDAP32.dll_Ordinal_27
jmp 0x1400ab0da
movabs rax, 0xaaaaaaaaaaaaaaaa
lea r14, [rsp + 0x38]
mov qword [r14], rax
mov rcx, r14
call qword [sym.imp.KERNEL32.dll_QueryPerformanceCounter]
mov rax, qword [r14]
mov r8, qword [0x1402c87c8]
cqo
idiv r8
mov rcx, rax
imul rax, rdx, 0xf4240
cqo
idiv r8
movabs r14, 0xaaaaaaaa00000000
mov eax, eax
or rax, r14
mov qword [rsi + 0x490], rcx
mov qword [rsi + 0x498], rax
cmp qword [rsi + 0x4c0], 0xffffffffffffffff
je 0x1400ab069
mov rcx, rbx
mov edx, 4
call fcn.1400ba790
cmp byte [rsi + 0x558], 0
jne 0x1400aafac
mov rax, qword [rsi + 0x698]
test byte [rax + 0x7c], 0x30
je 0x1400aafb9
mov rcx, rbx
mov edx, 5
call fcn.1400ba790
mov bl, 1
mov byte [rsi + 0x652], bl
mov byte [rdi], bl
mov rdx, qword [rsi + 0x4c0]
mov rcx, rsi
call fcn.1400b6130
mov rcx, qword [rsi]
cmp byte [rcx + 0xf1e], bl
jne 0x1400ab03d
mov eax, dword [rsi + 0x2d0]
mov edx, dword [rsi + 0x3f0]
lea r9, [rsi + 0x2f8]
mov r8d, 0x398
cmp byte [rsi + 0x65b], 0
jne 0x1400ab025
mov r8d, 0x3d0
cmp byte [rsi + 0x65a], 0
jne 0x1400ab025
cmp byte [rsi + 0x657], 0
mov r10d, 0x378
mov r8d, 0x348
cmovne r8, r10
mov r8, qword [rsi + r8]
mov dword [rsp + 0x28], eax
mov dword [rsp + 0x20], edx
lea rdx, str.Connected_to__s___s__port__ld___ld__n
call fcn.1400b0c10
cmp byte [0x1402c87c0], 1
je 0x1400ab087
call qword [sym.imp.KERNEL32.dll_GetTickCount]
mov ecx, eax
imul rcx, rcx, 0x10624dd3
shr rcx, 0x26
imul edx, ecx, 0x3e8
sub eax, edx
imul eax, eax, 0x3e8
jmp 0x1400ab0c0
mov byte [rsi + 0x652], 0
mov rdx, qword [rsi + 0x2d8]
mov rcx, rsi
call fcn.1400b7060
mov edi, eax
test eax, eax
jne 0x1400ab0da
jmp 0x1400ab03d
movabs rax, 0xaaaaaaaaaaaaaaaa
lea rdi, [rsp + 0x38]
mov qword [rdi], rax
mov rcx, rdi
call qword [sym.imp.KERNEL32.dll_QueryPerformanceCounter]
mov rax, qword [rdi]
mov r8, qword [0x1402c87c8]
cqo
idiv r8
mov rcx, rax
imul rax, rdx, 0xf4240
cqo
idiv r8
mov eax, eax
or rax, r14
mov qword [rsi + 0x490], rcx
mov qword [rsi + 0x498], rax
jmp 0x1400ab0d8
mov byte [rdi], 1
xor edi, edi
mov rcx, qword [rsp + 0x40]
xor rcx, rsp
call fcn.140191d80
mov eax, edi
add rsp, 0x48
pop rbx
pop rdi
pop rsi
pop r14
ret
Function at 0x1400b0490
Capabilities:
Initialize winsock library

Disassembly:
push rsi
push rdi
sub rsp, 0x1c8
mov rax, qword [0x1402b3040]
xor rax, rsp
mov qword [rsp + 0x1c0], rax
test cl, 2
je 0x1400b050b
lea rsi, [rsp + 0x28]
mov r8d, 0x198
mov rcx, rsi
mov dl, 0xaa
call fcn.1401cdd90
mov cx, 0x202
mov rdx, rsi
call qword [sym.imp.WS2_32.dll_WSAStartup]
test eax, eax
je 0x1400b04f7
mov esi, 2
mov rcx, qword [rsp + 0x1c0]
xor rcx, rsp
call fcn.140191d80
mov eax, esi
add rsp, 0x1c8
pop rdi
pop rsi
ret
movzx eax, word [rsp + 0x28]
cmp eax, 0x202
je 0x1400b050b
call qword [sym.imp.WS2_32.dll_WSACleanup]
jmp 0x1400b04d6
call fcn.1400ead50
mov esi, eax
test eax, eax
jne 0x1400b04db
lea rcx, str.iphlpapi.dll
call fcn.1400b0600
mov qword [0x1402c87b8], rax
test rax, rax
je 0x1400b054a
lea rdx, str.if_nametoindex
mov rcx, rax
call qword [sym.imp.KERNEL32.dll_GetProcAddress]
test rax, rax
je 0x1400b054a
mov qword [0x1402c87b0], rax
lea rdi, [rsp + 0x34]
xor esi, esi
mov r8d, 0x110
mov rcx, rdi
xor edx, edx
call fcn.1401cdd90
movabs rax, 0x60000011c
mov qword [rdi - 0xc], rax
mov dword [rdi - 4], 0
mov dword [rdi + 4], 2
mov rdi, qword [sym.imp.KERNEL32.dll_VerSetConditionMask]
xor ecx, ecx
mov edx, 2
mov r8b, 3
call rdi
mov rcx, rax
mov edx, 1
mov r8b, 3
call rdi
mov rcx, rax
mov edx, 0x20
mov r8b, 3
call rdi
mov rcx, rax
mov edx, 0x10
mov r8b, 3
call rdi
mov rcx, rax
mov edx, 8
mov r8b, 1
call rdi
lea rcx, [rsp + 0x28]
mov edx, 0x33
mov r8, rax
call qword [sym.imp.KERNEL32.dll_VerifyVersionInfoW]
test eax, eax
setne byte [0x1402c87c0]
lea rcx, [0x1402c87c8]
call qword [sym.imp.KERNEL32.dll_QueryPerformanceFrequency]
jmp 0x1400b04db