joyce8/EMBER2024-capa huggingface dataset:
Function at 0x180089890
Capabilities:
Enumerate threads
Suspend thread

Disassembly:
mov qword [rsp + 0x18], rbx
mov qword [rsp + 0x20], rbp
push rsi
push rdi
push r14
sub rsp, 0x50
mov rax, qword [0x1800cc280]
xor rax, rsp
mov qword [rsp + 0x40], rax
xor esi, esi
mov r14d, edx
mov rbx, rcx
mov qword [rcx], rsi
mov qword [rcx + 8], rsi
xor edx, edx
mov ebp, r8d
lea ecx, [rsi + 4]
call sub.KERNEL32.dll_CreateToolhelp32Snapshot
mov rdi, rax
cmp rax, 0xffffffffffffffff
je 0x1800899ba
lea rdx, [rsp + 0x20]
mov dword [rsp + 0x20], 0x1c
mov rcx, rax
call sub.KERNEL32.dll_Thread32First
test eax, eax
je 0x1800899b1
nop word [rax + rax]
cmp dword [rsp + 0x20], 0x10
jb 0x180089994
call qword [sym.imp.KERNEL32.dll_GetCurrentProcessId]
cmp dword [rsp + 0x2c], eax
jne 0x180089994
call qword [sym.imp.KERNEL32.dll_GetCurrentThreadId]
cmp dword [rsp + 0x28], eax
je 0x180089994
mov rdx, qword [rbx]
test rdx, rdx
jne 0x180089952
mov dword [rbx + 8], 0x80
mov r8d, 0x200
mov rcx, qword [0x1800cd1f0]
call qword [sym.imp.KERNEL32.dll_HeapAlloc]
mov qword [rbx], rax
mov rdx, rax
test rax, rax
je 0x1800899b1
jmp 0x180089987
mov eax, dword [rbx + 8]
cmp dword [rbx + 0xc], eax
jb 0x180089987
mov rcx, qword [0x1800cd1f0]
lea r9d, [rax + rax]
mov r8, rdx
shl r9, 2
xor edx, edx
call qword [sym.imp.KERNEL32.dll_HeapReAlloc]
mov rdx, rax
test rax, rax
je 0x1800899b1
mov eax, dword [rbx + 8]
add eax, eax
mov qword [rbx], rdx
mov dword [rbx + 8], eax
mov ecx, dword [rbx + 0xc]
mov eax, dword [rsp + 0x28]
mov dword [rdx + rcx*4], eax
inc dword [rbx + 0xc]
lea rdx, [rsp + 0x20]
mov dword [rsp + 0x20], 0x1c
mov rcx, rdi
call sub.KERNEL32.dll_Thread32Next
test eax, eax
jne 0x180089900
mov rcx, rdi
call qword [sym.imp.KERNEL32.dll_CloseHandle]
cmp qword [rbx], rsi
je 0x180089a13
cmp dword [rbx + 0xc], esi
jbe 0x180089a13
nop dword [rax]
nop dword [rax + rax]
mov r8, qword [rbx]
xor edx, edx
mov eax, esi
lea ecx, [rdx + 0x5a]
mov r8d, dword [r8 + rax*4]
call qword [sym.imp.KERNEL32.dll_OpenThread]
mov rdi, rax
test rax, rax
je 0x180089a0c
mov rcx, rax
call qword [sym.imp.KERNEL32.dll_SuspendThread]
mov r8d, ebp
mov edx, r14d
mov rcx, rdi
call fcn.180089fb0
mov rcx, rdi
call qword [sym.imp.KERNEL32.dll_CloseHandle]
inc esi
cmp esi, dword [rbx + 0xc]
jb 0x1800899d0
mov rcx, qword [rsp + 0x40]
xor rcx, rsp
call fcn.18008b960
lea r11, [rsp + 0x50]
mov rbx, qword [r11 + 0x30]
mov rbp, qword [r11 + 0x38]
mov rsp, r11
pop r14
pop rdi
pop rsi
ret
Function at 0x180089d90
Capabilities:
Resume thread

Disassembly:
mov qword [rsp + 0x18], rbx
mov qword [rsp + 0x20], rsi
push rdi
push r14
push r15
sub rsp, 0x30
xor r15d, r15d
mov rdi, rcx
mov r14d, r15d
mov ebx, r15d
xor eax, eax
mov esi, 1
lock cmpxchg dword [0x1800cd1e8], esi
je 0x180089de1
cmp rbx, 0x20
jae 0x180089dca
xor ecx, ecx
jmp 0x180089dcc
mov ecx, esi
call qword [sym.imp.KERNEL32.dll_Sleep]
inc rbx
xor eax, eax
lock cmpxchg dword [0x1800cd1e8], esi
jne 0x180089dc0
cmp qword [0x1800cd1f0], r14
mov qword [rsp + 0x58], r13
je 0x180089f7d
mov ecx, dword [0x1800d124c]
mov ebx, r15d
test ecx, ecx
je 0x180089e1f
mov rdx, qword [0x1800d1240]
mov rax, rdx
nop word [rax + rax]
cmp rdi, qword [rax]
je 0x180089e2a
inc ebx
add rax, 0x38
cmp ebx, ecx
jb 0x180089e10
mov r14d, 4
jmp 0x180089f83
cmp ebx, 0xffffffff
je 0x180089e1f
mov eax, ebx
imul r13, rax, 0x38
test byte [rdx + r13 + 0x20], 2
je 0x180089edb
xor r8d, r8d
lea rcx, [rsp + 0x20]
mov edx, ebx
call fcn.180089890
xor edx, edx
mov ecx, ebx
call fcn.180089780
mov r14d, eax
cmp qword [rsp + 0x20], r15
je 0x180089ecb
mov ecx, dword [rsp + 0x2c]
test ecx, ecx
je 0x180089eb7
mov rdi, qword [rsp + 0x20]
mov qword [rsp + 0x50], rbp
mov ebp, ecx
nop word [rax + rax]
mov r8d, dword [rdi]
xor edx, edx
lea ecx, [rdx + 0x5a]
call qword [sym.imp.KERNEL32.dll_OpenThread]
mov rsi, rax
test rax, rax
je 0x180089ea8
mov rcx, rax
call qword [sym.imp.KERNEL32.dll_ResumeThread]
mov rcx, rsi
call qword [sym.imp.KERNEL32.dll_CloseHandle]
add rdi, 4
sub rbp, 1
jne 0x180089e80
mov rbp, qword [rsp + 0x50]
mov r8, qword [rsp + 0x20]
xor edx, edx
mov rcx, qword [0x1800cd1f0]
call qword [sym.imp.KERNEL32.dll_HeapFree]
test r14d, r14d
jne 0x180089f83
mov rdx, qword [0x1800d1240]
mov rcx, qword [rdx + r13 + 0x10]
call fcn.18008a210
mov ecx, dword [0x1800d124c]
lea eax, [rcx - 1]
cmp ebx, eax
jae 0x180089f2f
imul rcx, rax, 0x38
mov rax, qword [0x1800d1240]
movups xmm0, xmmword [rcx + rax]
movups xmmword [rax + r13], xmm0
movups xmm1, xmmword [rcx + rax + 0x10]
movups xmmword [rax + r13 + 0x10], xmm1
movups xmm0, xmmword [rcx + rax + 0x20]
movups xmmword [rax + r13 + 0x20], xmm0
movsd xmm1, qword [rcx + rax + 0x30]
movsd qword [rax + r13 + 0x30], xmm1
mov ecx, dword [0x1800d124c]
mov edx, dword [0x1800d1248]
dec ecx
mov eax, edx
mov dword [0x1800d124c], ecx
shr eax, 1
cmp eax, 0x20
jb 0x180089f83
cmp eax, ecx
jb 0x180089f83
mov r8, qword [0x1800d1240]
mov eax, edx
mov rcx, qword [0x1800cd1f0]
xor edx, edx
shr rax, 1
imul r9, rax, 0x38
call qword [sym.imp.KERNEL32.dll_HeapReAlloc]
test rax, rax
je 0x180089f83
shr dword [0x1800d1248], 1
mov qword [0x1800d1240], rax
jmp 0x180089f83
mov r14d, 2
xchg dword [0x1800cd1e8], r15d
mov r13, qword [rsp + 0x58]
mov eax, r14d
mov rbx, qword [rsp + 0x60]
mov rsi, qword [rsp + 0x68]
add rsp, 0x30
pop r15
pop r14
pop rdi
ret
Function at 0x18008a160
Capabilities:
Resume thread

Disassembly:
push rdi
sub rsp, 0x20
cmp qword [rcx], 0
mov rdi, rcx
je 0x18008a1cf
mov qword [rsp + 0x30], rbx
xor ebx, ebx
cmp dword [rcx + 0xc], ebx
jbe 0x18008a1b8
mov qword [rsp + 0x38], rsi
mov r8, qword [rdi]
xor edx, edx
mov r8d, dword [r8 + rbx*4]
lea ecx, [rdx + 0x5a]
call qword [sym.imp.KERNEL32.dll_OpenThread]
mov rsi, rax
test rax, rax
je 0x18008a1ac
mov rcx, rax
call qword [sym.imp.KERNEL32.dll_ResumeThread]
mov rcx, rsi
call qword [sym.imp.KERNEL32.dll_CloseHandle]
inc ebx
cmp ebx, dword [rdi + 0xc]
jb 0x18008a180
mov rsi, qword [rsp + 0x38]
mov r8, qword [rdi]
xor edx, edx
mov rcx, qword [0x1800cd1f0]
call qword [sym.imp.KERNEL32.dll_HeapFree]
mov rbx, qword [rsp + 0x30]
add rsp, 0x20
pop rdi
ret
Function at 0x18008a290
Capabilities:
Get system information on windows

Disassembly:
mov qword [rsp + 0x20], rsi
push rdi
push r14
push r15
sub rsp, 0x80
mov rdi, rcx
lea rcx, [rsp + 0x20]
call qword [sym.imp.KERNEL32.dll_GetSystemInfo]
mov r14, qword [rsp + 0x28]
mov rcx, qword [rsp + 0x30]
cmp rdi, 0x40000000
jbe 0x18008a2d0
lea rax, [rdi - 0x40000000]
cmp r14, rax
cmovb r14, rax
mov rsi, qword [0x1800d1230]
lea r15, [rdi + 0x40000000]
cmp rcx, r15
cmovbe r15, rcx
sub r15, 0xfff
test rsi, rsi
je 0x18008a30e
cmp rsi, r14
jb 0x18008a306
cmp rsi, r15
jae 0x18008a306
cmp qword [rsi + 8], 0
jne 0x18008a4d7
mov rsi, qword [rsi]
test rsi, rsi
jne 0x18008a2f1
mov qword [rsp + 0xa0], rbx
mov rbx, rdi
mov qword [rsp + 0xa8], rbp
mov qword [rsp + 0xb0], r12
mov r12d, 0x40
cmp rdi, r14
jb 0x18008a3a2
nop dword [rax]
nop dword [rax + rax]
mov ebp, dword [rsp + 0x48]
mov rax, rbx
xor edx, edx
div rbp
sub rbx, rdx
sub rbx, rbp
cmp rbx, r14
jb 0x18008a399
nop word [rax + rax]
mov r8d, 0x30
lea rdx, [rsp + 0x50]
mov rcx, rbx
call qword [sym.imp.KERNEL32.dll_VirtualQuery]
test rax, rax
je 0x18008a399
cmp dword [rsp + 0x70], 0x10000
je 0x18008a41b
mov rbx, qword [rsp + 0x58]
cmp rbx, rbp
jb 0x18008a399
sub rbx, rbp
cmp rbx, r14
jae 0x18008a360
test rsi, rsi
jne 0x18008a480
cmp rdi, r15
ja 0x18008a4bf
nop dword [rax + rax]
mov ebp, dword [rsp + 0x48]
xor edx, edx
mov rax, rdi
mov ebx, ebp
div rbp
mov eax, ebp
sub rax, rdx
add rax, rdi
mov rdi, rax
cmp rax, r15
ja 0x18008a4bf
mov r8d, 0x30
lea rdx, [rsp + 0x50]
mov rcx, rdi
call qword [sym.imp.KERNEL32.dll_VirtualQuery]
test rax, rax
je 0x18008a4bf
cmp dword [rsp + 0x70], 0x10000
je 0x18008a451
xor edx, edx
lea edi, [rbp - 1]
add rdi, qword [rsp + 0x68]
add rdi, qword [rsp + 0x50]
mov rax, rdi
div rbx
sub rdi, rdx
cmp rdi, r15
jbe 0x18008a3d2
jmp 0x18008a4bf
test rbx, rbx
je 0x18008a399
mov r9d, r12d
mov edx, 0x1000
mov r8d, 0x3000
mov rcx, rbx
call qword [sym.imp.KERNEL32.dll_VirtualAlloc]
mov rsi, rax
test rax, rax
jne 0x18008a480
cmp rbx, r14
jae 0x18008a340
jmp 0x18008a3a2
test rdi, rdi
je 0x18008a4bf
mov r9d, r12d
mov edx, 0x1000
mov r8d, 0x3000
mov rcx, rdi
call qword [sym.imp.KERNEL32.dll_VirtualAlloc]
mov rsi, rax
test rax, rax
jne 0x18008a480
cmp rdi, r15
jbe 0x18008a3b0
jmp 0x18008a4bf
xor edx, edx
lea rcx, [rsi + 0x40]
mov dword [rsi + 0x10], edx
nop dword [rax]
mov qword [rcx], rdx
mov rax, rcx
mov qword [rsi + 8], rcx
add r12, 0x40
add rcx, 0x40
mov rdx, rax
cmp r12, 0xfc0
jbe 0x18008a490
mov rax, qword [0x1800d1230]
mov qword [rsi], rax
mov qword [0x1800d1230], rsi
mov r12, qword [rsp + 0xb0]
mov rbp, qword [rsp + 0xa8]
mov rbx, qword [rsp + 0xa0]
mov rax, rsi
mov rsi, qword [rsp + 0xb8]
add rsp, 0x80
pop r15
pop r14
pop rdi
ret
Function at 0x18008b0c0
Capabilities:
Get geographical location

Disassembly:
mov qword [rsp + 8], rbx
push rdi
sub rsp, 0x40
mov rbx, rdx
lea r8, [rsp + 0x60]
mov edi, ecx
mov edx, 0x20000001
lea rcx, str._x_sys_default_locale
mov r9d, 2
call qword [sym.imp.KERNEL32.dll_GetLocaleInfoEx]
test eax, eax
jne 0x18008b0fa
xor r9d, r9d
mov dword [rsp + 0x60], r9d
jmp 0x18008b0ff
mov r9d, dword [rsp + 0x60]
and qword [rsp + 0x30], 0
mov r8d, edi
and dword [rsp + 0x28], 0
xor edx, edx
mov ecx, 0x1300
mov qword [rsp + 0x20], rbx
call qword [sym.imp.KERNEL32.dll_FormatMessageA]
mov edx, eax
test eax, eax
je 0x18008b148
mov r8, qword [rbx]
dec r8
add r8, rdx
movzx ecx, byte [r8]
lea rax, [0x1800a0410]
cmp byte [rcx + rax], 0
je 0x18008b148
dec r8
sub rdx, 1
jne 0x18008b12e
mov rbx, qword [rsp + 0x50]
mov rax, rdx
add rsp, 0x40
pop rdi
ret
Function at 0x180005150
Capabilities:
Create thread

Disassembly:
mov qword [rsp + 0x18], rbx
push rdi
sub rsp, 0x140
mov rax, qword [0x180010010]
xor rax, rsp
mov qword [rsp + 0x130], rax
mov rdi, rdx
mov ebx, ecx
mov rdx, qword [rdx]
lea rcx, [rsp + 0x30]
mov r8d, pe_nt_image_headers64
call qword [sym.imp.api_ms_win_crt_string_l1_1_0.dll_strncpy]
mov rdx, qword [rdi]
lea rcx, [rsp + 0x30]
mov r8d, pe_nt_image_headers64
call qword [sym.imp.api_ms_win_crt_convert_l1_1_0.dll_wcstombs]
lea r8, [rsp + 0x30]
mov edx, ebx
lea rcx, str.SvcHostDLL:_ServiceMain__d___s__called
call fcn.1800059f0
xor ebx, ebx
mov dword [0x180011cb0], 3
lea rdx, [0x1800052b0]
mov qword [0x180011cb8], rbx
lea rcx, [rsp + 0x30]
mov dword [0x180011cc0], ebx
mov dword [0x180011cb4], ebx
mov dword [0x180011cac], 2
mov dword [0x180011ca8], 0x30
call qword [sym.imp.ADVAPI32.dll_RegisterServiceCtrlHandlerA]
mov qword [0x180011cc8], rax
test rax, rax
jne 0x180005211
mov rdx, qword [rdi]
lea rcx, str.SvcHostDLL:_RegisterServiceCtrlHandler__S_failed
call fcn.1800059f0
jmp 0x18000528a
lea rdx, [0x180011ca8]
mov dword [0x180011cac], 4
mov rcx, rax
mov qword [0x180011cbc], rbx
call qword [sym.imp.ADVAPI32.dll_SetServiceStatus]
test eax, eax
jne 0x180005244
lea rcx, str.Set_ServiceStatus_Error___n
call fcn.180005030
jmp 0x18000528a
mov qword [rsp + 0x28], rbx
lea r8, [0x180009ed0]
xor r9d, r9d
mov dword [rsp + 0x20], ebx
xor edx, edx
xor ecx, ecx
call qword [sym.imp.KERNEL32.dll_CreateThread]
xor r9d, r9d
mov qword [rsp + 0x28], rbx
lea r8, [fcn.180009fd0]
mov dword [rsp + 0x20], ebx
xor edx, edx
xor ecx, ecx
call qword [sym.imp.KERNEL32.dll_CreateThread]
lea rcx, str.SvcHostDLL:_ServiceMain_done
call fcn.1800059f0
mov rcx, qword [rsp + 0x130]
xor rcx, rsp
call fcn.18000a060
mov rbx, qword [rsp + 0x160]
add rsp, 0x140
pop rdi
ret
Function at 0x180005860
Capabilities:
Create service
Persist via windows service
Query or enumerate registry value
Set registry value

Disassembly:
push rbx
sub rsp, 0x20
mov rdx, r8
lea rcx, str.RundllInstallA__s
mov rbx, r8
call fcn.1800059f0
mov rcx, rbx
add rsp, 0x20
pop rbx
jmp sym.GetNetInfoDll.dll_InstallService

Function at 0x180005890
Capabilities:
Delete service

Disassembly:
mov qword [rsp + 8], rbx
mov qword [rsp + 0x10], rsi
mov qword [rsp + 0x18], rdi
push r14
sub rsp, 0x40
mov rsi, rcx
xor ebx, ebx
mov dword [rsp + 0x20], ebx
mov qword [rsp + 0x28], rbx
mov qword [rsp + 0x30], rbx
xor edx, edx
xor ecx, ecx
mov r8d, 0xf003f
call qword [sym.imp.ADVAPI32.dll_OpenSCManagerA]
mov r14, rax
mov qword [rsp + 0x30], rax
test rax, rax
jne 0x1800058f6
call qword [sym.imp.KERNEL32.dll_GetLastError]
mov ebx, eax
mov dword [rsp + 0x20], eax
mov edx, eax
lea rcx, str.OpenSCManager___error__d
call fcn.1800059f0
mov eax, ebx
jmp 0x1800059c4
lea rdi, str.NewService
mov qword [rsp + 0x38], rdi
test rsi, rsi
je 0x180005913
cmp byte [rsi], 0
cmovne rdi, rsi
mov qword [rsp + 0x38], rdi
mov r8d, 0x10000
mov rdx, rdi
mov rcx, rax
call qword [sym.imp.ADVAPI32.dll_OpenServiceA]
mov rsi, rax
mov qword [rsp + 0x28], rax
test rax, rax
jne 0x180005954
call qword [sym.imp.KERNEL32.dll_GetLastError]
mov ebx, eax
mov dword [rsp + 0x20], eax
mov r8d, eax
mov rdx, rdi
lea rcx, str.OpenService__s__error__d
call fcn.1800059f0
mov eax, ebx
jmp 0x1800059c4
mov rcx, rax
call qword [sym.imp.ADVAPI32.dll_DeleteService]
test eax, eax
jne 0x180005983
call qword [sym.imp.KERNEL32.dll_GetLastError]
mov ebx, eax
mov dword [rsp + 0x20], eax
mov r8d, eax
mov rdx, rdi
lea rcx, str.OpenService__s__error__d
call fcn.1800059f0
mov eax, ebx
jmp 0x1800059c4
mov rdx, rdi
lea rcx, str.DeleteService__s__SUCCESS.
call fcn.1800059f0
jmp 0x1800059b0
mov rcx, rsi
call qword [sym.imp.ADVAPI32.dll_CloseServiceHandle]
mov rcx, r14
call qword [sym.imp.ADVAPI32.dll_CloseServiceHandle]
mov eax, ebx
mov rbx, qword [rsp + 0x50]
mov rsi, qword [rsp + 0x58]
mov rdi, qword [rsp + 0x60]
add rsp, 0x40
pop r14
ret
Function at 0x180007680
Capabilities:
Create http request
Read data from internet
Receive data

Disassembly:
push rbp
push rsi
push rdi
push r12
push r13
push r14
push r15
lea rbp, [rsp - 0x360]
sub rsp, 0x460
mov qword [rsp + 0x30], 0xfffffffffffffffe
mov qword [rsp + 0x4b0], rbx
mov rax, qword [0x180010010]
xor rax, rsp
mov qword [rbp + 0x350], rax
mov rbx, rdx
mov rsi, rcx
mov qword [rsp + 0x38], rcx
xor r13d, r13d
mov edi, r13d
mov qword [rsp + 0x50], r13
mov r14d, 0xf
mov qword [rsp + 0x58], r14
mov byte [rsp + 0x40], dil
xor edx, edx
mov r8d, 0x3e8
lea rcx, [rsp + 0x60]
call sub.VCRUNTIME140.dll_memset
mov dword [rsp + 0x20], r13d
xor r9d, r9d
xor r8d, r8d
xor edx, edx
xor ecx, ecx
call qword [sym.imp.WININET.dll_InternetOpenA]
mov r12, rax
mov qword [rsp + 0x28], r13
mov dword [rsp + 0x20], 0x84000000
xor r9d, r9d
xor r8d, r8d
mov rdx, rbx
mov rcx, rax
call qword [sym.imp.WININET.dll_InternetOpenUrlA]
mov r15, rax
test rax, rax
je 0x18000781d
lea r9, [rsp + 0x38]
mov r8d, 0x7d0
lea rdx, [rsp + 0x60]
mov rcx, rax
call qword [sym.imp.WININET.dll_InternetReadFile]
mov rcx, r15
call qword [sym.imp.WININET.dll_InternetCloseHandle]
mov rcx, r12
call qword [sym.imp.WININET.dll_InternetCloseHandle]
lea r9, [rsp + 0x38]
mov r8d, 0x3e8
lea rdx, [rsp + 0x60]
mov rcx, r15
call qword [sym.imp.WININET.dll_InternetReadFile]
test eax, eax
je 0x18000781d
nop dword [rax]
nop dword [rax + rax]
mov ebx, dword [rsp + 0x38]
mov rax, r14
sub rax, rdi
cmp rbx, rax
ja 0x1800077d0
lea rax, [rdi + rbx]
mov qword [rsp + 0x50], rax
lea rax, [rsp + 0x40]
cmp r14, 0x10
cmovae rax, qword [rsp + 0x40]
add rdi, rax
mov r8d, ebx
lea rdx, [rsp + 0x60]
mov rcx, rdi
call sub.VCRUNTIME140.dll_memmove
mov byte [rdi + rbx], 0
jmp 0x1800077e7
mov qword [rsp + 0x20], rbx
lea r9, [rsp + 0x60]
mov rdx, rbx
lea rcx, [rsp + 0x40]
call fcn.180007b30
cmp dword [rsp + 0x38], 0x3e8
jne 0x18000781d
lea r9, [rsp + 0x38]
mov r8d, 0x3e8
lea rdx, [rsp + 0x60]
mov rcx, r15
call qword [sym.imp.WININET.dll_InternetReadFile]
test eax, eax
je 0x18000781d
mov r14, qword [rsp + 0x58]
mov rdi, qword [rsp + 0x50]
jmp 0x180007790
movups xmm0, xmmword [rsp + 0x40]
movups xmmword [rsi], xmm0
movups xmm1, xmmword [rsp + 0x50]
movups xmmword [rsi + 0x10], xmm1
mov rax, rsi
mov rcx, qword [rbp + 0x350]
xor rcx, rsp
call fcn.18000a060
mov rbx, qword [rsp + 0x4b0]
add rsp, 0x460
pop r15
pop r14
pop r13
pop r12
pop rdi
pop rsi
pop rbp
ret
Function at 0x140001f54
Capabilities:
Parse pe header

Disassembly:
sub rsp, 0x28
xor ecx, ecx
call qword [sym.imp.KERNEL32.dll_GetModuleHandleW]
test rax, rax
je 0x140001f9e
mov ecx, 0x5a4d
cmp word [rax], cx
jne 0x140001f9e
movsxd rcx, dword [rax + 0x3c]
add rcx, rax
cmp dword [rcx], 0x4550
jne 0x140001f9e
mov eax, 0x20b
cmp word [rcx + 0x18], ax
jne 0x140001f9e
cmp dword [rcx + 0x84], 0xe
jbe 0x140001f9e
cmp dword [rcx + 0xf8], 0
setne al
jmp 0x140001fa0
xor al, al
add rsp, 0x28
ret
Function at 0x416e00
Capabilities:
Access peb ldr_data

Disassembly:
cmp rsp, qword [r14 + 0x10]
jbe 0x416f8b
push rbp
mov rbp, rsp
sub rsp, 0x48
mov qword [rsp + 0x58], rax
mov qword [rsp + 0x60], rbx
mov rcx, qword [sym.imp.kernel32.dll_VirtualFree]
mov qword [rsp], rcx
mov qword [rsp + 8], rax
mov qword [rsp + 0x10], rbx
mov qword [rsp + 0x18], 0x4000
call sym.runtime.stdcall3.abi0
xorps xmm15, xmm15
mov r14, qword [0x00653bf8]
mov r14, qword gs:[r14]
mov r14, qword [r14]
cmp qword [rsp + 0x20], 0
jne 0x416e65
mov rax, qword [rsp + 0x58]
mov rbx, qword [rsp + 0x60]
jmp 0x416e74
add rsp, 0x48
pop rbp
ret
sub rcx, rbx
add rax, rbx
mov rbx, rcx
test rbx, rbx
jbe 0x416e93
mov qword [rsp + 0x28], rbx
mov qword [rsp + 0x40], rax
mov rcx, rbx
jmp 0x416ea3
cmp rbx, 0x1000
jae 0x416e6b
jmp 0x416f0d
add rsp, 0x48
pop rbp
ret
shr rbx, 1
and rbx, 0xfffffffffffff000
mov qword [rsp + 0x38], rbx
cmp rbx, 0x1000
jae 0x416eb5
xor edx, edx
jmp 0x416f04
mov rcx, qword [sym.imp.kernel32.dll_VirtualFree]
mov qword [rsp], rcx
mov qword [rsp + 8], rax
mov qword [rsp + 0x10], rbx
mov qword [rsp + 0x18], 0x4000
call sym.runtime.stdcall3.abi0
xorps xmm15, xmm15
mov r14, qword [0x00653bf8]
mov r14, qword gs:[r14]
mov r14, qword [r14]
cmp qword [rsp + 0x20], 0
sete al
mov rcx, qword [rsp + 0x28]
mov rbx, qword [rsp + 0x38]
mov edx, eax
mov rax, qword [rsp + 0x40]
test dl, dl
jne 0x416e99
jmp 0x416e88
call sym.runtime.getlasterror.abi0
xorps xmm15, xmm15
mov r14, qword [0x00653bf8]
mov r14, qword gs:[r14]
mov r14, qword [r14]
mov eax, dword [rsp]
mov qword [rsp + 0x30], rax
call sym.runtime.printlock
lea rax, [0x004f7439]
mov ebx, 0x18
nop dword [rax]
call sym.runtime.printstring
mov rax, qword [rsp + 0x38]
call sym.runtime.printuint
lea rax, [0x004f7a41]
mov ebx, 0x19
nop dword [rax + rax]
call sym.runtime.printstring
mov rax, qword [rsp + 0x30]
call sym.runtime.printuint
call sym.runtime.printnl
call sym.runtime.printunlock
lea rax, [0x004fa2d9]
mov ebx, 0x21
call sym.runtime.throw
nop
mov qword [rsp + 8], rax
mov qword [rsp + 0x10], rbx
call sym.runtime.morestack_noctxt.abi0
mov rax, qword [rsp + 8]
mov rbx, qword [rsp + 0x10]
jmp sym.runtime.sysUnusedOS
Function at 0x416fc0
Capabilities:
Access peb ldr_data

Disassembly:
cmp rsp, qword [r14 + 0x10]
jbe 0x4171e6
push rbp
mov rbp, rsp
sub rsp, 0x50
mov qword [rsp + 0x60], rax
mov qword [rsp + 0x68], rbx
mov rcx, qword [sym.imp.kernel32.dll_VirtualAlloc]
mov qword [rsp], rcx
mov qword [rsp + 8], rax
mov qword [rsp + 0x10], rbx
mov qword [rsp + 0x18], 0x1000
mov qword [rsp + 0x20], 4
call sym.runtime.stdcall4.abi0
xorps xmm15, xmm15
mov r14, qword [0x00653bf8]
mov r14, qword gs:[r14]
mov r14, qword [r14]
mov rax, qword [rsp + 0x60]
mov rcx, rax
cmp qword [rsp + 0x28], rax
je 0x417033
mov rbx, qword [rsp + 0x68]
mov rax, rbx
jmp 0x417042
add rsp, 0x50
pop rbp
ret
sub rdx, rbx
add rcx, rbx
mov rbx, rdx
test rbx, rbx
jbe 0x417065
mov qword [rsp + 0x40], rbx
mov qword [rsp + 0x48], rcx
mov rdx, rbx
jmp 0x417075
cmp rbx, 0x1000
jae 0x417039
nop
jmp 0x4170f8
add rsp, 0x50
pop rbp
ret
shr rbx, 1
and rbx, 0xfffffffffffff000
mov qword [rsp + 0x38], rbx
nop word [rax + rax]
cmp rbx, 0x1000
jae 0x41708d
xor esi, esi
jmp 0x4170ea
mov rax, qword [sym.imp.kernel32.dll_VirtualAlloc]
mov qword [rsp], rax
mov qword [rsp + 8], rcx
mov qword [rsp + 0x10], rbx
mov qword [rsp + 0x18], 0x1000
mov qword [rsp + 0x20], 4
call sym.runtime.stdcall4.abi0
xorps xmm15, xmm15
mov r14, qword [0x00653bf8]
mov r14, qword gs:[r14]
mov r14, qword [r14]
cmp qword [rsp + 0x28], 0
sete al
mov rcx, qword [rsp + 0x48]
mov rdx, qword [rsp + 0x40]
mov rbx, qword [rsp + 0x38]
mov esi, eax
mov rax, qword [rsp + 0x68]
test sil, sil
jne 0x41706b
jmp 0x417056
call sym.runtime.getlasterror.abi0
xorps xmm15, xmm15
mov r14, qword [0x00653bf8]
mov r14, qword gs:[r14]
mov r14, qword [r14]
mov eax, dword [rsp]
mov dword [rsp + 0x34], eax
cmp eax, 8
jne 0x417180
nop dword [rax + rax]
call sym.runtime.printlock
lea rax, [0x004f7a5a]
mov ebx, 0x19
call sym.runtime.printstring
mov rax, qword [rsp + 0x68]
nop dword [rax + rax]
call sym.runtime.printuint
lea rax, [0x004f7a41]
mov ebx, 0x19
call sym.runtime.printstring
mov eax, dword [rsp + 0x34]
call sym.runtime.printuint
nop
call sym.runtime.printnl
call sym.runtime.printunlock
lea rax, [0x004f35a0]
mov ebx, 0xd
call sym.runtime.throw
nop dword [rax + rax]
cmp eax, 0x5af
je 0x417120
call sym.runtime.printlock
lea rax, [0x004f7a5a]
mov ebx, 0x19
call sym.runtime.printstring
mov rax, qword [rsp + 0x38]
call sym.runtime.printuint
lea rax, [0x004f7a41]
mov ebx, 0x19
call sym.runtime.printstring
mov eax, dword [rsp + 0x34]
nop dword [rax]
call sym.runtime.printuint
call sym.runtime.printnl
call sym.runtime.printunlock
lea rax, [0x004f9a7f]
mov ebx, 0x1f
nop dword [rax + rax]
call sym.runtime.throw
nop
mov qword [rsp + 8], rax
mov qword [rsp + 0x10], rbx
call sym.runtime.morestack_noctxt.abi0
mov rax, qword [rsp + 8]
mov rbx, qword [rsp + 0x10]
nop
jmp sym.runtime.sysUsedOS
Function at 0x420fc0
Capabilities:
Hash data using murmur3

Disassembly:
push rbp
mov rbp, rsp
sub rsp, 0x10
cmp byte [0x006539d2], 0
jne 0x4210b0
sub rbx, qword [rax + 0x18]
mov rdx, qword [rax + 0x48]
test byte [rdx], al
mov ecx, dword [rax + 0x5c]
imul rcx, rbx
mov rbx, rcx
shr rbx, 0x20
shr rcx, 0x23
and ebx, 7
mov rsi, rcx
mov rcx, rbx
mov edi, 1
shl edi, cl
add rdx, rsi
nop
nop
nop
nop
lock or byte [rdx], dil
mov rcx, qword [rax + 0x18]
movabs rdx, 0x800000000000
add rdx, rcx
mov rbx, rdx
shr rdx, 0x2a
nop
nop
nop
cmp rdx, 0x40
jae 0x4210a3
lea rsi, [0x005e5ad8]
mov rdx, qword [rsi + rdx*8]
test byte [rdx], al
mov rsi, rcx
shr rsi, 0x10
and esi, 0x3f
shr rcx, 0xd
and ecx, 7
mov edi, 1
shl edi, cl
shr rbx, 0x16
and ebx, 0xfffff
mov rdx, qword [rdx + rbx*8]
test byte [rdx], al
movzx ebx, byte [rdx + rsi + 0x1040]
lea rdx, [rdx + rsi]
lea rdx, [rdx + 0x1040]
test dil, bl
jne 0x42107e
lock or byte [rdx], dil
mov rcx, qword [r14 + 0x30]
mov rcx, qword [rcx + 0xa0]
test byte [rcx], al
mov rdx, qword [rcx + 0x1270]
add rdx, qword [rax + 0x68]
mov qword [rcx + 0x1270], rdx
add rsp, 0x10
pop rbp
ret
mov rax, rdx
mov ecx, 0x40
call sym.runtime.panicIndexU
lea rax, [0x004fc360]
mov ebx, 0x2c
nop dword [rax]
call sym.runtime.throw
nop
int3

Function at 0x423500
Capabilities:
Access peb ldr_data

Disassembly:
cmp rsp, qword [r14 + 0x10]
jbe 0x423606
push rbp
mov rbp, rsp
sub rsp, 0x48
mov qword [rsp + 0x58], rax
mov qword [rsp + 0x60], rbx
mov qword [rsp + 0x68], rcx
mov byte [rsp + 0x70], dil
mov qword [rsp + 0x10], 0
jmp 0x423543
mov rax, qword [rsp + 0x58]
mov rcx, rdx
mov rbx, qword [rsp + 0x60]
movzx edi, byte [rsp + 0x70]
cmp qword [rsp + 0x10], rbx
jae 0x4235fb
test byte [rax], al
lea rcx, [rax + 0x100b8]
mov ebx, edi
mov rax, rcx
nop dword [rax]
call sym.runtime._scavengeIndex_.find
test rax, rax
je 0x4235fb
movups xmmword [rsp + 0x18], xmm15
movups xmmword [rsp + 0x28], xmm15
movups xmmword [rsp + 0x38], xmm15
lea rcx, [sym.runtime._pageAlloc_.scavenge.func1]
mov qword [rsp + 0x18], rcx
lea rdx, [rsp + 0x10]
mov qword [rsp + 0x20], rdx
mov rdx, qword [rsp + 0x58]
mov qword [rsp + 0x28], rdx
mov qword [rsp + 0x30], rax
mov qword [rsp + 0x38], rbx
mov rax, qword [rsp + 0x60]
mov qword [rsp + 0x40], rax
lea rbx, [rsp + 0x18]
mov qword [rsp], rbx
nop dword [rax]
call sym.runtime.systemstack.abi0
xorps xmm15, xmm15
mov r14, qword [0x00653bf8]
mov r14, qword gs:[r14]
mov r14, qword [r14]
mov rdx, qword [rsp + 0x68]
nop dword [rax]
test rdx, rdx
jne 0x4235e9
xor eax, eax
jmp 0x4235f3
mov rax, qword [rdx]
call rax
mov rdx, qword [rsp + 0x68]
test al, al
je 0x423531
mov rax, qword [rsp + 0x10]
add rsp, 0x48
pop rbp
ret
mov qword [rsp + 8], rax
mov qword [rsp + 0x10], rbx
mov qword [rsp + 0x18], rcx
mov byte [rsp + 0x20], dil
call sym.runtime.morestack_noctxt.abi0
mov rax, qword [rsp + 8]
mov rbx, qword [rsp + 0x10]
mov rcx, qword [rsp + 0x18]
movzx edi, byte [rsp + 0x20]
jmp sym.runtime._pageAlloc_.scavenge