joyce8/EMBER2024-capa huggingface dataset:
Function at 0x18000ec6c
Capabilities:
Contain obfuscated stackstrings

Disassembly:
push rbp
push rbx
push rsi
push rdi
push r12
push r13
push r14
push r15
mov rbp, rsp
sub rsp, 0x58
mov rax, qword [0x180056460]
xor rax, rsp
mov qword [rbp - 0x18], rax
mov r13, qword [rbp + 0x68]
mov r12d, r9d
mov r15d, r8d
mov r14, rdx
mov rsi, rcx
mov edi, 1
call fcn.18000e920
mov rbx, rax
test rax, rax
je 0x18000ed02
lea rdx, [rbp - 0x28]
mov rcx, rax
mov word [rbp - 0x21], 0x654b
mov dword [rbp - 0x1f], 0x41784579
mov dword [rbp - 0x26], 0x65704f67
mov word [rbp - 0x28], 0x6552
mov byte [rbp - 0x1b], 0
mov byte [rbp - 0x22], 0x6e
call qword [sym.imp.KERNEL32.dll_GetProcAddress]
test rax, rax
je 0x18000ecf9
mov r9d, r12d
mov r8d, r15d
mov rdx, r14
mov rcx, rsi
mov qword [rsp + 0x20], r13
call rax
mov edi, eax
mov rcx, rbx
call qword [sym.imp.KERNEL32.dll_FreeLibrary]
mov eax, edi
mov rcx, qword [rbp - 0x18]
xor rcx, rsp
call fcn.180010f90
add rsp, 0x58
pop r15
pop r14
pop r13
pop r12
pop rdi
pop rsi
pop rbx
pop rbp
ret

Function at 0x18000ed24
Capabilities:
Contain obfuscated stackstrings

Disassembly:
push rbp
push rbx
push rsi
push rdi
push r12
push r13
push r14
push r15
mov rbp, rsp
sub rsp, 0x68
mov rax, qword [0x180056460]
xor rax, rsp
mov qword [rbp - 0x18], rax
mov rax, qword [rbp + 0x70]
mov r13, qword [rbp + 0x68]
mov r12, r9
mov r15, r8
mov r14, rdx
mov rsi, rcx
mov qword [rbp - 0x38], rax
mov edi, 1
call fcn.18000e920
mov rbx, rax
test rax, rax
je 0x18000edd0
lea rdx, [rbp - 0x30]
mov rcx, rax
mov word [rbp - 0x2b], 0x7265
mov dword [rbp - 0x2f], 0x75516765
mov dword [rbp - 0x23], 0x417845
mov dword [rbp - 0x28], 0x756c6156
mov byte [rbp - 0x30], 0x52
mov byte [rbp - 0x24], 0x65
mov byte [rbp - 0x29], 0x79
call qword [sym.imp.KERNEL32.dll_GetProcAddress]
test rax, rax
je 0x18000edc7
mov rcx, qword [rbp - 0x38]
mov r9, r12
mov r8, r15
mov qword [rsp + 0x28], rcx
mov rcx, rsi
mov rdx, r14
mov qword [rsp + 0x20], r13
call rax
mov edi, eax
mov rcx, rbx
call qword [sym.imp.KERNEL32.dll_FreeLibrary]
mov eax, edi
mov rcx, qword [rbp - 0x18]
xor rcx, rsp
call fcn.180010f90
add rsp, 0x68
pop r15
pop r14
pop r13
pop r12
pop rdi
pop rsi
pop rbx
pop rbp
ret

Function at 0x18000f3b0
Capabilities:
Contain obfuscated stackstrings

Disassembly:
mov qword [rsp + 8], rbx
push rbp
mov rbp, rsp
sub rsp, 0x40
mov rax, qword [0x180056460]
xor rax, rsp
mov qword [rbp - 8], rax
xor ebx, ebx
call fcn.18000e9c0
test rax, rax
je 0x18000f40c
lea rdx, [rbp - 0x20]
mov rcx, rax
mov dword [rbp - 0x1d], 0x6957676e
mov dword [rbp - 0x15], 0x6f546f54
mov word [rbp - 0x11], 0x70
mov dword [rbp - 0x19], 0x776f646e
mov word [rbp - 0x20], 0x7242
mov byte [rbp - 0x1e], 0x69
call qword [sym.imp.KERNEL32.dll_GetProcAddress]
mov rbx, rax
mov rax, rbx
mov rcx, qword [rbp - 8]
xor rcx, rsp
call fcn.180010f90
mov rbx, qword [rsp + 0x50]
add rsp, 0x40
pop rbp
ret
Function at 0x18000f428
Capabilities:
Contain obfuscated stackstrings

Disassembly:
mov qword [rsp + 8], rbx
push rbp
mov rbp, rsp
sub rsp, 0x40
mov rax, qword [0x180056460]
xor rax, rsp
mov qword [rbp - 0x10], rax
xor ebx, ebx
call fcn.18000e9c0
test rax, rax
je 0x18000f481
lea rdx, [rbp - 0x20]
mov rcx, rax
mov dword [rbp - 0x15], 0x776f646e
mov dword [rbp - 0x19], 0x69576576
mov dword [rbp - 0x1d], 0x69746341
mov byte [rbp - 0x11], bl
mov word [rbp - 0x20], 0x6553
mov byte [rbp - 0x1e], 0x74
call qword [sym.imp.KERNEL32.dll_GetProcAddress]
mov rbx, rax
mov rax, rbx
mov rcx, qword [rbp - 0x10]
xor rcx, rsp
call fcn.180010f90
mov rbx, qword [rsp + 0x50]
add rsp, 0x40
pop rbp
ret

Function at 0x18000f49c
Capabilities:
Contain obfuscated stackstrings

Disassembly:
mov qword [rsp + 8], rbx
push rbp
mov rbp, rsp
sub rsp, 0x40
mov rax, qword [0x180056460]
xor rax, rsp
mov qword [rbp - 8], rax
xor ebx, ebx
call fcn.18000e9c0
test rax, rax
je 0x18000f4fd
lea rdx, [rbp - 0x20]
mov rcx, rax
mov dword [rbp - 0x10], 0x776f64
mov dword [rbp - 0x1b], 0x72676572
mov word [rbp - 0x17], 0x756f
mov dword [rbp - 0x14], 0x6e695764
mov dword [rbp - 0x1f], 0x6f467465
mov byte [rbp - 0x20], 0x53
mov byte [rbp - 0x15], 0x6e
call qword [sym.imp.KERNEL32.dll_GetProcAddress]
mov rbx, rax
mov rax, rbx
mov rcx, qword [rbp - 8]
xor rcx, rsp
call fcn.180010f90
mov rbx, qword [rsp + 0x50]
add rsp, 0x40
pop rbp
ret

Function at 0x18000f518
Capabilities:
Contain obfuscated stackstrings

Disassembly:
mov qword [rsp + 8], rbx
push rbp
mov rbp, rsp
sub rsp, 0x40
mov rax, qword [0x180056460]
xor rax, rsp
mov qword [rbp - 0x10], rax
xor ebx, ebx
call fcn.18000e9c0
test rax, rax
je 0x18000f573
lea rdx, [rbp - 0x20]
mov rcx, rax
mov dword [rbp - 0x18], 0x736f5077
mov word [rbp - 0x1d], 0x6957
mov word [rbp - 0x20], 0x6553
mov word [rbp - 0x1a], 0x6f64
mov byte [rbp - 0x1e], 0x74
mov byte [rbp - 0x14], bl
mov byte [rbp - 0x1b], 0x6e
call qword [sym.imp.KERNEL32.dll_GetProcAddress]
mov rbx, rax
mov rax, rbx
mov rcx, qword [rbp - 0x10]
xor rcx, rsp
call fcn.180010f90
mov rbx, qword [rsp + 0x50]
add rsp, 0x40
pop rbp
ret
Function at 0x18000f80c
Capabilities:
Contain obfuscated stackstrings

Disassembly:
push rbp
lea rbp, [rsp - 0x50]
sub rsp, 0x150
mov rax, qword [0x180056460]
xor rax, rsp
mov qword [rbp + 0x40], rax
cmp edx, 1
jne 0x18000f8e9
lea rdx, [rsp + 0x30]
mov r8d, 0x104
xor ecx, ecx
call qword [sym.imp.KERNEL32.dll_GetModuleFileNameA]
lea rcx, [rsp + 0x30]
call fcn.1800127a0
lea rdx, [rsp + 0x20]
lea rcx, [rsp + 0x30]
mov dword [rsp + 0x26], 0x75732074
mov dword [rsp + 0x2c], 0x74726f
mov dword [rsp + 0x21], 0x6174736e
mov word [rsp + 0x2a], 0x7070
mov byte [rsp + 0x20], 0x69
mov byte [rsp + 0x25], 0x6e
call fcn.180012518
test rax, rax
jne 0x18000f91d
lea rdx, [sym.gphelper.dll_HookSetWindowPos]
lea rcx, [0x180057b20]
call fcn.180010628
test eax, eax
je 0x18000f91d
lea rdx, [sym.gphelper.dll_HookSetForegroundWindow]
lea rcx, [0x180057ab0]
call fcn.180010628
test eax, eax
je 0x18000f91d
lea rdx, [sym.gphelper.dll_HookSetActiveWindow]
lea rcx, [0x180057cd0]
call fcn.180010628
test eax, eax
je 0x18000f91d
lea rdx, [sym.gphelper.dll_HookBringWindowToTop]
lea rcx, [0x180057be0]
call fcn.180010628
jmp 0x18000f91d
test edx, edx
jne 0x18000f91d
lea rcx, [0x180057b20]
call fcn.1800108e0
lea rcx, [0x180057ab0]
call fcn.1800108e0
lea rcx, [0x180057cd0]
call fcn.1800108e0
lea rcx, [0x180057be0]
call fcn.1800108e0
mov eax, 1
mov rcx, qword [rbp + 0x40]
xor rcx, rsp
call fcn.180010f90
add rsp, 0x150
pop rbp
ret
Function at 0x1800103b0
Capabilities:
Contain obfuscated stackstrings

Disassembly:
push rbp
push rbx
push rsi
push rdi
push r12
push r14
push r15
mov rbp, rsp
sub rsp, 0x40
mov rax, qword [0x180056460]
xor rax, rsp
mov qword [rbp - 0x10], rax
mov r12, r9
mov r15, r8
mov r14d, edx
mov rsi, rcx
xor ebx, ebx
call fcn.18000e9c0
mov rdi, rax
test rax, rax
je 0x18000ea9d
lea rdx, [rbp - 0x20]
mov rcx, rax
mov dword [rbp - 0x1d], 0x78654e6c
mov word [rbp - 0x17], 0x6f6f
mov word [rbp - 0x1f], 0x6c61
mov word [rbp - 0x14], 0x7845
mov word [rbp - 0x19], 0x4874
mov byte [rbp - 0x12], bl
mov byte [rbp - 0x20], 0x43
mov byte [rbp - 0x15], 0x6b
call qword [sym.imp.KERNEL32.dll_GetProcAddress]
test rax, rax
je 0x18000ea94
mov r9, r12
mov r8, r15
mov edx, r14d
mov rcx, rsi
call rax
mov rbx, rax
mov rcx, rdi
call qword [sym.imp.KERNEL32.dll_FreeLibrary]
mov rax, rbx
mov rcx, qword [rbp - 0x10]
xor rcx, rsp
call fcn.180010f90
add rsp, 0x40
pop r15
pop r14
pop r12
pop rdi
pop rsi
pop rbx
pop rbp
ret
mov r9, r8
mov r8, rdx
mov edx, ecx
xor ecx, ecx
jmp 0x18000ea0c
Function at 0x1800108e0
Capabilities:
Allocate or change rwx memory

Disassembly:
mov qword [rsp + 8], rbx
mov qword [rsp + 0x18], rbp
push rsi
push rdi
push r12
sub rsp, 0x30
mov rsi, rcx
xor edi, edi
call fcn.1800105dc
lea r12, [0x180057d50]
xor r8d, r8d
mov rdx, r12
mov rbx, qword [rdx]
test rbx, rbx
je 0x18001091a
lea rax, [rbx + 0x38]
cmp rax, qword [rsi]
je 0x180010929
inc r8d
add rdx, 8
cmp r8d, 0x40
jb 0x180010909
xor ebx, ebx
test rbx, rbx
je 0x1800109e7
mov edx, dword [rbx + 8]
mov rcx, qword [rbx]
call fcn.180010be0
call qword [sym.imp.KERNEL32.dll_GetCurrentProcess]
mov r8d, dword [rbx + 8]
mov rdx, qword [rbx]
and dword [rsp + 0x58], edi
mov rbp, rax
lea rax, [rsp + 0x58]
mov r9d, 0x40
mov rcx, rbp
mov qword [rsp + 0x20], rax
call qword [sym.imp.KERNEL32.dll_VirtualProtectEx]
test eax, eax
je 0x1800109e2
mov r8, qword [rbx]
xor edx, edx
cmp dword [rbx + 8], edx
jbe 0x180010987
mov al, byte [rdx + rbx + 0x58]
mov byte [rdx + r8], al
inc edx
cmp edx, dword [rbx + 8]
jb 0x180010978
mov r8d, dword [rbx + 8]
mov rdx, qword [rbx]
mov rcx, rbp
call fcn.18000eabc
mov r8d, dword [rbx + 8]
mov r9d, dword [rsp + 0x58]
mov rdx, qword [rbx]
lea rax, [rsp + 0x58]
mov rcx, rbp
mov qword [rsp + 0x20], rax
call qword [sym.imp.KERNEL32.dll_VirtualProtectEx]
mov rax, qword [rbx]
mov qword [rsi], rax
mov edi, 1
mov rcx, r12
xor eax, eax
cmp qword [rcx], rbx
je 0x1800109d7
inc eax
add rcx, 8
cmp eax, 0x40
jb 0x1800109c5
jmp 0x1800109e2
and qword [r12 + rax*8], 0
dec dword [0x180057cf4]
call fcn.180010a0c
lea rcx, [0x180057d20]
call qword [sym.imp.KERNEL32.dll_LeaveCriticalSection]
mov rbx, qword [rsp + 0x50]
mov rbp, qword [rsp + 0x60]
mov eax, edi
add rsp, 0x30
pop r12
pop rdi
pop rsi
ret

Function at 0x180010a0c
Capabilities:
Resume thread

Disassembly:
mov qword [rsp + 8], rbx
mov qword [rsp + 0x10], rsi
push rdi
sub rsp, 0x20
call fcn.18000eb54
mov rcx, rax
call qword [sym.imp.KERNEL32.dll_GetThreadPriority]
mov esi, eax
call fcn.18000eb54
mov edx, 0xf
mov rcx, rax
call qword [sym.imp.KERNEL32.dll_SetThreadPriority]
xor edi, edi
cmp dword [0x180057d00], edi
jbe 0x180010a74
mov rcx, qword [0x180057cf8]
mov rcx, qword [rcx + rdi*8]
call qword [sym.imp.KERNEL32.dll_ResumeThread]
mov rcx, qword [0x180057cf8]
mov rcx, qword [rcx + rdi*8]
call qword [sym.imp.KERNEL32.dll_CloseHandle]
inc edi
cmp edi, dword [0x180057d00]
jb case.default.0x180010aa8
mov rcx, qword [0x180057cf8]
call fcn.180013440
and qword [0x180057cf8], 0
and dword [0x180057d00], 0
call fcn.18000eb54
mov edx, esi
mov rcx, rax
mov rbx, qword [rsp + 0x30]
mov rsi, qword [rsp + 0x38]
add rsp, 0x20
pop rdi
jmp qword [sym.imp.KERNEL32.dll_SetThreadPriority]
or al, byte [0x1850fb728]
Function at 0x180010af0
Capabilities:
Resume thread
Suspend thread

Disassembly:
mov qword [rsp + 0x10], rbx
mov qword [rsp + 0x18], rbp
mov qword [rsp + 0x20], rsi
push rdi
sub rsp, 0x500
mov rax, qword [0x180056460]
xor rax, rsp
mov qword [rsp + 0x4f0], rax
mov ebp, r8d
mov rsi, rdx
mov r8d, ecx
mov ecx, 0x1fffff
xor edx, edx
call qword [sym.imp.KERNEL32.dll_OpenThread]
mov rbx, rax
lea rcx, [rax - 1]
cmp rcx, 0xfffffffffffffffd
ja 0x180010bb4
mov rcx, rax
call qword [sym.imp.KERNEL32.dll_SuspendThread]
mov rcx, rbx
cmp eax, 0xffffffff
je 0x180010bac
mov dword [rsp + 0x50], 0x100001
xor edi, edi
jmp 0x180010b98
cmp qword [rsp + 0x118], rsi
jb 0x180010bb4
lea rax, [rsi + rbp]
cmp qword [rsp + 0x118], rax
jae 0x180010bb4
mov rcx, rbx
call qword [sym.imp.KERNEL32.dll_ResumeThread]
cmp edi, 3
jge 0x180010ba9
mov ecx, 0x64
call qword [sym.imp.KERNEL32.dll_Sleep]
mov rcx, rbx
call qword [sym.imp.KERNEL32.dll_SuspendThread]
inc edi
mov rcx, rbx
lea rdx, [rsp + 0x20]
call qword [sym.imp.KERNEL32.dll_GetThreadContext]
test eax, eax
jne 0x180010b59
jmp 0x180010bb4
mov rcx, rbx
call qword [sym.imp.KERNEL32.dll_CloseHandle]
xor ebx, ebx
mov rax, rbx
mov rcx, qword [rsp + 0x4f0]
xor rcx, rsp
call fcn.180010f90
lea r11, [rsp + 0x500]
mov rbx, qword [r11 + 0x18]
mov rbp, qword [r11 + 0x20]
mov rsi, qword [r11 + 0x28]
mov rsp, r11
pop rdi
ret

Function at 0x180010d94
Capabilities:
Get system information on windows

Disassembly:
mov r11, rsp
mov qword [r11 + 8], rbx
mov qword [r11 + 0x10], rbp
mov qword [r11 + 0x18], rsi
mov qword [r11 + 0x20], rdi
push r14
sub rsp, 0x80
xor edi, edi
cmp dword [0x180057cf4], 0x40
jae 0x180010ec4
lea rbx, [rcx + rdx]
add rcx, r8
mov rbp, 0xfffffffffff80000
lea rax, [rcx + 0x7ff80000]
cmp rcx, 0xffffffff80000000
lea r8d, [rdi + 0x2c]
cmovb rbp, rax
and dword [rsp + 0x50], edi
lea rcx, [r11 - 0x34]
xor edx, edx
call fcn.180011930
lea rcx, [rsp + 0x50]
call qword [sym.imp.KERNEL32.dll_GetSystemInfo]
mov eax, 0x80000000
lea rsi, [rbx - 0x7fff0000]
cmp rbx, rax
lea r14d, [rdi + 1]
cmovb rsi, r14
cmp rsi, rbp
jae 0x180010ec4
lea rdx, [rsp + 0x20]
mov r8d, 0x30
mov rcx, rsi
call qword [sym.imp.KERNEL32.dll_VirtualQuery]
test rax, rax
je 0x180010e94
cmp dword [rsp + 0x40], 0x10000
jne 0x180010e82
mov rax, qword [rsp + 0x38]
cmp rax, 0x78
jb 0x180010e87
mov edx, dword [rsp + 0x78]
mov ecx, edx
cmp rax, rdx
jb 0x180010e87
lea eax, [rdx - 1]
xor edx, edx
mov r8d, 0x3000
add rax, rsi
div rcx
mov edx, 0x78
lea r9d, [rdx - 0x58]
imul rcx, rax
call qword [sym.imp.KERNEL32.dll_VirtualAlloc]
mov rdi, rax
test rax, rax
jne 0x180010e99
mov rax, qword [rsp + 0x38]
mov rsi, qword [rsp + 0x20]
add rsi, rax
cmp rsi, rbp
jb 0x180010e1d
test rdi, rdi
je 0x180010ec4
lea rdx, [0x180057d50]
xor eax, eax
mov rcx, rdx
cmp qword [rcx], 0
je 0x180010eb9
add eax, r14d
add rcx, 8
cmp eax, 0x40
jb 0x180010ea5
jmp 0x180010ec4
add dword [0x180057cf4], r14d
mov qword [rdx + rax*8], rdi
lea r11, [rsp + 0x80]
mov rax, rdi
mov rbx, qword [r11 + 0x10]
mov rbp, qword [r11 + 0x18]
mov rsi, qword [r11 + 0x20]
mov rdi, qword [r11 + 0x28]
mov rsp, r11
pop r14
ret
Function at 0x140002480
Capabilities:
Get common file path
Get file version info

Disassembly:
mov qword [rsp + 0x18], rbx
push rbp
push rsi
push rdi
push r12
push r13
push r14
push r15
lea rbp, [rsp - 0x670]
sub rsp, 0x770
mov rax, qword [0x1400502a8]
xor rax, rsp
mov qword [rbp + 0x660], rax
mov r13, r8
mov dword [rsp + 0x50], edx
mov qword [rsp + 0x68], rcx
lea rdx, [rbp + 0x240]
mov r8d, 0x105
xor ecx, ecx
xor ebx, ebx
call qword [sym.imp.KERNEL32.dll_GetModuleFileNameW]
test eax, eax
je 0x1400028e4
lea rcx, [rbp + 0x240]
call fcn.1400182b8
mov edi, 0x104
lea rdx, [rbp + 0x450]
mov r8d, edi
mov rcx, rax
call fcn.140016f30
test eax, eax
js 0x1400028e4
cmp dword [0x140050ce0], ebx
jne 0x140002617
mov edx, edi
lea rcx, [rbp + 0x30]
mov r12d, ebx
mov esi, ebx
call fcn.140018174
test eax, eax
je 0x1400028be
lea rdx, [rsp + 0x40]
mov dword [rsp + 0x40], ebx
lea rcx, [rbp + 0x30]
call qword [sym.imp.VERSION.dll_GetFileVersionInfoSizeW]
mov r15d, eax
test eax, eax
jne 0x1400025b7
lea rcx, [rbp + 0x30]
call fcn.140017488
test eax, eax
je 0x1400028be
mov qword [rsp + 0x30], rbx
lea edi, [rbx + 1]
mov r8d, edi
mov dword [rsp + 0x28], 0x80
xor r9d, r9d
mov dword [rsp + 0x20], 3
xor edx, edx
lea rcx, [rbp + 0x30]
call qword [sym.imp.KERNEL32.dll_CreateFileW]
mov r15, rax
cmp rax, 0xffffffffffffffff
je 0x1400028be
lea r9, [rsp + 0x58]
xor r8d, r8d
xor edx, edx
mov rcx, rax
mov r14d, 0x80004005
call qword [sym.imp.KERNEL32.dll_GetFileTime]
test eax, eax
je 0x140002814
lea rcx, [rsp + 0x58]
jmp 0x1400026e7
mov rcx, r15
call fcn.14003c460
mov rdi, rax
test rax, rax
je 0x1400028be
mov r9, rax
lea rcx, [rbp + 0x30]
mov r8d, r15d
xor edx, edx
mov r14d, 0x80004005
call qword [sym.imp.VERSION.dll_GetFileVersionInfoW]
test eax, eax
je 0x14000287f
lea r9, [rsp + 0x54]
mov rcx, rdi
lea r8, [rsp + 0x60]
lea rdx, [0x140042140]
call qword [sym.imp.VERSION.dll_VerQueryValueW]
test eax, eax
je 0x14000287f
mov rax, qword [rsp + 0x60]
jmp 0x140002875
mov edx, edi
lea rcx, [rbp + 0x240]
call qword [sym.imp.KERNEL32.dll_GetSystemDirectoryW]
test eax, eax
je 0x1400028be
lea r8, str.wmvcore.dll
mov rdx, rdi
lea rcx, [rbp + 0x240]
call fcn.140001584
test eax, eax
js 0x1400028be
lea rdx, [rsp + 0x40]
mov dword [rsp + 0x40], ebx
lea rcx, [rbp + 0x240]
mov esi, ebx
mov r12d, ebx
call qword [sym.imp.VERSION.dll_GetFileVersionInfoSizeW]
mov r15d, eax
test eax, eax
jne 0x14000281f
lea rcx, [rbp + 0x240]
call fcn.140017488
test eax, eax
je 0x1400028be
xor r9d, r9d
mov qword [rsp + 0x30], rbx
mov dword [rsp + 0x28], 0x80
lea rcx, [rbp + 0x240]
xor edx, edx
mov dword [rsp + 0x20], 0x48550003
push rbp
sub rsp, 0x30
clc
mov esi, dword [rsp + 0x38]
fld dword [rcx - 0x7d]
rcl dword [rax], 0x41
shr ecx, 2
mov esi, ecx
movq qword [rbx + rsi*4 + 0x10], mm1
Function at 0x140002a85
Capabilities:
Resolve function by parsing pe exports

Disassembly:
push rbx
push rsi
push rdi
push r12
push r13
push r14
push r15
push rbp
sub rsp, 0x228
mov r9, r8
movsxd rax, dword [rcx + 0x3c]
mov r8d, edx
mov rdi, rcx
mov esi, r8d
mov rbp, r9
mov r10d, dword [rax + rcx + 0x88]
mov edx, dword [r10 + rcx + 0x20]
mov eax, dword [r10 + rcx + 0x1c]
add rdx, rcx
mov r11d, dword [r10 + rcx + 0x24]
add rax, rcx
add r11, rcx
xor r10d, r10d
mov r13, rax
mov r12, rdx
mov rbx, r10
mov r14, r11
jmp 0x140002adf
inc rbx
mov r15d, dword [r12 + rbx*4]
lea rcx, [rsp + 0x20]
mov edx, dword [rbp + 0x70]
add r15, rdi
call fcn.1400036e5
mov rcx, r15
call fcn.140002a41
mov r8d, eax
test eax, eax
je 0x140002bf8
cmp eax, 6
jbe 0x140002b93
mov r10d, eax
lea r9, [rsp + r10*2 + 0x20]
lea rdx, [r15 + r10]
sub r9, rdx
lea rcx, [r10 + r10]
cmp r9, rcx
jg 0x140002b2f
neg r9
cmp r9, r10
jle 0x140002b93
mov r10d, eax
xor r9d, r9d
mov ecx, 1
xor r8d, r8d
shr r10d, 1
je 0x140002b71
inc r9d
lea edx, [rax + r8]
movsx ecx, byte [rdx + r15]
lea r11d, [rax + r8 - 1]
mov word [rsp + rdx*2 + 0x20], cx
add r8d, 0xfffffffe
movsx edx, byte [r11 + r15]
mov word [rsp + r11*2 + 0x20], dx
cmp r9d, r10d
jb 0x140002b42
lea ecx, [r9 + r9 + 1]
lea edx, [rcx - 1]
cmp edx, eax
jae 0x140002b88
neg ecx
add ecx, eax
inc ecx
movsx edx, byte [rcx + r15]
mov word [rsp + rcx*2 + 0x20], dx
lea edx, [rax + 1]
sub eax, edx
lea r8d, [rax + 1]
jmp 0x140002bf8
mov r11d, eax
xor r10d, r10d
mov ecx, 1
xor r9d, r9d
shr r11d, 1
je 0x140002bdf
inc r10d
lea edx, [rax + r9]
movsx ecx, byte [rdx + r15]
lea r8d, [rax + r9 - 1]
mov word [rsp + rdx*2 + 0x20], cx
add r9d, 0xfffffffe
movsx edx, byte [r8 + r15]
mov word [rsp + r8*2 + 0x20], dx
cmp r10d, r11d
jb 0x140002ba6
lea r8d, [r10 + r10]
neg r8d
lea ecx, [r10 + r10 + 1]
add r8d, eax
lea edx, [rcx - 1]
cmp edx, eax
jae 0x140002bf8
sub eax, ecx
mov r8d, eax
lea edx, [rax + 1]
movsx ecx, byte [rdx + r15]
mov word [rsp + rdx*2 + 0x20], cx
lea rcx, [rsp + 0x20]
movsx r15d, byte [r8 + r15]
mov word [rsp + r8*2 + 0x20], r15w
call fcn.1400026a5
xor r11d, r11d
test eax, eax
jbe 0x140002c72
mov r8d, eax
mov edx, 1
mov r9d, dword [rbp + 0xf4]
xor r10d, r10d
shr r8d, 1
je 0x140002c59
imul r11d, r9d
lea r15d, [r10 + r10]
movsxd r15, r15d
inc r10d
movzx edx, word [rsp + r15*2 + 0x20]
add r11d, edx
imul r11d, r9d
movzx r15d, word [rsp + r15*2 + 0x22]
add r11d, r15d
cmp r10d, r8d
jb 0x140002c2b
lea edx, [r10 + r10 + 1]
lea r15d, [rdx - 1]
cmp r15d, eax
jae 0x140002c72
imul r9d, r11d
movsxd rdx, edx
movzx r11d, word [rsp + rdx*2 + 0x1e]
add r11d, r9d
movzx r15d, word [r14 + rbx*2]
mov eax, dword [r13 + r15*4]
add rax, rdi
cmp esi, r11d
jne 0x140002adc
add rsp, 0x228
pop rbp
pop r15
pop r14
pop r13
pop r12
pop rdi
pop rsi
pop rbx
ret
Function at 0x140008f55
Capabilities:
Access peb ldr_data

Disassembly:
mov rax, qword gs:[0x60]
mov rax, qword [rax + 0x18]
add rax, 0x10
mov rax, qword [rax]
test ecx, ecx
jne 0x140008f66
mov rax, qword [rax + 0x30]
ret
Function at 0x140039120
Capabilities:
Identify system language via api

Disassembly:
push rbx
sub rsp, 0x20
call qword [sym.imp.KERNEL32.dll_GetUserDefaultLangID]
movzx ebx, ax
mov rax, qword [0x140051730]
test rax, rax
jne 0x140039172
lea rcx, str.KERNEL32
call qword [sym.imp.KERNEL32.dll_GetModuleHandleA]
test rax, rax
je 0x140039166
lea rdx, str.GetUserDefaultUILanguage
mov rcx, rax
call qword [sym.imp.KERNEL32.dll_GetProcAddress]
mov qword [0x140051730], rax
jmp 0x14003916d
mov rax, qword [0x140051730]
test rax, rax
je 0x14003917b
call qword [0x14003f118]
movzx ebx, ax
movzx eax, bx
add rsp, 0x20
pop rbx
ret

Function at 0x14003a4e4
Capabilities:
Check os version

Disassembly:
mov qword [rsp + 0x10], rbx
push rsi
sub rsp, 0x150
mov rax, qword [0x1400502a8]
xor rax, rsp
mov qword [rsp + 0x140], rax
xor esi, esi
mov rbx, rcx
cmp dword [0x140051750], esi
mov qword [rcx], rsi
mov dword [rcx + 8], esi
mov word [rcx + 0xc], si
jne 0x14003a57b
xor edx, edx
lea rcx, [rsp + 0x20]
mov r8d, 0x114
call sub.msvcrt.dll_memset
lea rcx, [rsp + 0x20]
mov dword [0x140051750], 1
mov dword [rsp + 0x20], 0x114
call qword [sym.imp.KERNEL32.dll_GetVersionExW]
test eax, eax
je 0x14003a57b
cmp dword [rsp + 0x24], 5
jb 0x14003a55b
cmp dword [rsp + 0x28], 1
jae 0x14003a562
cmp dword [rsp + 0x24], 6
jb 0x14003a57b
mov ecx, dword [0x14005033c]
mov eax, 0x7f
cmp dword [rsp + 0x30], 2
cmove ecx, eax
mov dword [0x14005033c], ecx
mov rax, rbx
mov rcx, qword [rsp + 0x140]
xor rcx, rsp
call fcn.14003c810
mov rbx, qword [rsp + 0x168]
add rsp, 0x150
pop rsi
ret

Function at 0x14003b004
Capabilities:
Extract resource via kernel32 functions

Disassembly:
mov qword [rsp + 8], rbx
mov qword [rsp + 0x10], rbp
mov qword [rsp + 0x18], rsi
push rdi
push r12
push r13
push r14
push r15
sub rsp, 0x20
mov rdi, r8
mov esi, edx
mov r14, rcx
call fcn.14003aa74
xor r15d, r15d
test rdi, rdi
jne 0x14003b040
mov rax, qword [0x140050cb8]
mov rdi, qword [rax + 0x10]
test rdi, rdi
mov ebx, 0x80070057
mov rbp, r15
mov r12d, 0x8000ffff
cmovne ebx, r15d
mov r13d, 1
je 0x14003b099
mov eax, esi
lea r8d, [r13 + 5]
shr eax, 4
mov rcx, rdi
add ax, r13w
movzx edx, ax
call qword [sym.imp.KERNEL32.dll_FindResourceW]
mov rbp, rax
test rax, rax
jne 0x14003b099
call qword [sym.imp.KERNEL32.dll_GetLastError]
movzx ebx, ax
or ebx, 0x80070000
test eax, eax
cmovle ebx, eax
test ebx, ebx
js 0x14003b10e
mov ebx, r12d
test ebx, ebx
js 0x14003b10e
mov rdx, rbp
mov rcx, rdi
call qword [sym.imp.KERNEL32.dll_LoadResource]
mov rdi, rax
test rax, rax
jne 0x14003b0cc
call qword [sym.imp.KERNEL32.dll_GetLastError]
movzx ebx, ax
or ebx, 0x80070000
test eax, eax
cmovle ebx, eax
test ebx, ebx
js 0x14003b10e
mov ebx, r12d
test ebx, ebx
js 0x14003b10e
mov rcx, rdi
call qword [sym.imp.KERNEL32.dll_LockResource]
test rax, rax
mov rdx, rax
cmove ebx, r12d
test ebx, ebx
js 0x14003b10e
and esi, 0xf
je 0x14003b0fc
movzx eax, word [rdx]
lea rdx, [rdx + rax*2]
lea rdx, [rdx + 2]
sub esi, r13d
jne 0x14003b0ec
movzx r8d, word [rdx]
mov rcx, r14
add rdx, 2
call fcn.14003a61c
mov ebx, eax
mov rbp, qword [rsp + 0x58]
mov eax, ebx
mov rbx, qword [rsp + 0x50]
mov rsi, qword [rsp + 0x60]
add rsp, 0x20
pop r15
pop r14
pop r13
pop r12
pop rdi
ret