joyce8/EMBER2024-capa huggingface dataset:
Function at 0x140061480
Capabilities:
Write file on windows

Disassembly:
mov qword [rsp + 8], rbx
mov qword [rsp + 0x10], rbp
mov qword [rsp + 0x18], rsi
push rdi
sub rsp, 0x20
mov rbp, rdx
mov rdi, r8
lea rdx, [0x140092f6c]
mov rsi, rcx
call fcn.140071c34
mov rbx, rax
test rax, rax
je 0x1400614f2
mov r9, rax
mov r8, rdi
mov edx, 1
mov rcx, rbp
call fcn.1400730bc
cmp rax, rdi
jne 0x140061551
mov rcx, rbx
call fcn.140071cc4
test eax, eax
jne 0x1400615b0
mov rbx, qword [rsp + 0x30]
mov rbp, qword [rsp + 0x38]
mov rsi, qword [rsp + 0x40]
add rsp, 0x20
pop rdi
ret
mov ecx, 2
call fcn.14006f398
mov rcx, rax
lea rdx, str.Error__i_:
mov r8d, 3
call fcn.140041730
mov ecx, 2
call fcn.14006f398
mov rcx, rax
lea rdx, [0x140092f70]
mov r8, rsi
call fcn.140041730
mov ecx, 2
call fcn.14006f398
mov rcx, rax
lea rdx, [0x140092414]
call fcn.140041730
mov ecx, 3
call fcn.140072b40
int3
mov ecx, 2
call fcn.14006f398
mov rcx, rax
lea rdx, str.Error__i_:
mov r8d, 4
call fcn.140041730
mov ecx, 2
call fcn.14006f398
mov rcx, rax
lea rdx, str._s_:_write_error
mov r8, rsi
call fcn.140041730
mov ecx, 2
call fcn.14006f398
mov rcx, rax
lea rdx, [0x140092414]
call fcn.140041730
mov ecx, 4
call fcn.140072b40
int3
mov ecx, 2
call fcn.14006f398
mov rcx, rax
lea rdx, str.Error__i_:
mov r8d, 5
call fcn.140041730
mov ecx, 2
call fcn.14006f398
mov rcx, rax
lea rdx, str._s_:_flush_error
mov r8, rsi
call fcn.140041730
mov ecx, 2
call fcn.14006f398
mov rcx, rax
lea rdx, [0x140092414]
call fcn.140041730
mov ecx, 5
call fcn.140072b40
int3
Function at 0x140067450
Capabilities:
Write file on windows

Disassembly:
test edx, edx
je 0x140067609
push rbx
sub rsp, 0x20
dec edx
mov r8d, 1
mov rbx, rcx
call fcn.1400733b4
test eax, eax
je 0x140067530
mov eax, dword [0x14009db1c]
cmp eax, 1
jl 0x14006749f
mov ecx, 2
call fcn.14006f398
mov rcx, rax
lea rdx, str.zstd:
call fcn.140041730
mov eax, dword [0x14009db1c]
cmp eax, 5
jl 0x1400674d0
mov ecx, 2
call fcn.14006f398
mov rcx, rax
lea r8, str.......programs_fileio.c
mov r9d, 0x57e
lea rdx, str.Error_defined_at__s__line__i_:__n
call fcn.140041730
mov eax, dword [0x14009db1c]
cmp eax, 1
jl 0x140067623
mov ecx, 2
call fcn.14006f398
mov rcx, rax
lea rdx, str.error__i_:
mov r8d, 0x45
call fcn.140041730
cmp dword [0x14009db1c], 1
jl 0x140067623
mov ecx, 2
call fcn.14006f398
mov rcx, rax
lea rdx, str.Final_skip_error__sparse_file_
call fcn.140041730
cmp dword [0x14009db1c], 1
jl 0x140067623
jmp 0x14006760a
mov edx, 1
mov byte [rsp + 0x38], 0
mov r8d, edx
lea rcx, [rsp + 0x38]
mov r9, rbx
call fcn.1400730bc
cmp rax, 1
je 0x140067604
mov eax, dword [0x14009db1c]
cmp eax, 1
jl 0x14006757e
mov ecx, 2
call fcn.14006f398
mov rcx, rax
lea rdx, str.zstd:
call fcn.140041730
mov eax, dword [0x14009db1c]
cmp eax, 5
jl 0x1400675af
mov ecx, 2
call fcn.14006f398
mov rcx, rax
lea r8, str.......programs_fileio.c
mov r9d, 0x582
lea rdx, str.Error_defined_at__s__line__i_:__n
call fcn.140041730
mov eax, dword [0x14009db1c]
cmp eax, 1
jl 0x140067647
mov ecx, 2
call fcn.14006f398
mov rcx, rax
lea rdx, str.error__i_:
mov r8d, 0x45
call fcn.140041730
cmp dword [0x14009db1c], 1
jl 0x140067647
mov ecx, 2
call fcn.14006f398
mov rcx, rax
lea rdx, str.Write_error_:_cannot_write_last_zero
call fcn.140041730
cmp dword [0x14009db1c], 1
jl 0x140067647
jmp 0x14006762e
add rsp, 0x20
pop rbx
ret
mov ecx, 2
call fcn.14006f398
mov rcx, rax
lea rdx, [0x140092aa4]
call fcn.140041730
mov ecx, 0x45
call fcn.140072b40
int3
mov ecx, 2
call fcn.14006f398
mov rcx, rax
lea rdx, [0x140092aa4]
call fcn.140041730
mov ecx, 0x45
call fcn.140072b40
int3

Function at 0x140067660
Capabilities:
Read file on windows
Write file on windows

Disassembly:
mov qword [rsp + 8], rbx
mov qword [rsp + 0x10], rbp
mov qword [rsp + 0x18], rsi
push rdi
push r14
push r15
sub rsp, 0x20
mov eax, 0x10000
mov r14, r9
cmp r9, rax
mov rsi, r8
mov r8, qword [rsp + 0x60]
mov r15, rdx
cmova r14, rax
mov rbp, rcx
mov r9, rcx
xor edi, edi
mov rcx, rsi
lea edx, [rdi + 1]
call fcn.1400730bc
cmp rax, qword [rsp + 0x60]
je 0x1400676e0
cmp dword [0x14009db1c], 1
jl 0x1400676cc
lea ecx, [rdi + 2]
call fcn.14006f398
mov rcx, rax
lea rdx, str.Pass_through_write_error__n
call fcn.140041730
mov eax, 1
jmp 0x14006771a
mov r9, r15
mov r8, r14
mov edx, 1
mov rcx, rsi
call fcn.140071fb0
mov r9d, edi
mov r8, rax
mov rdx, rsi
mov rcx, rbp
mov rbx, rax
call fcn.140066d60
mov edi, eax
test rbx, rbx
jne 0x1400676e0
mov edx, eax
mov rcx, rbp
call fcn.140067450
xor eax, eax
mov rbx, qword [rsp + 0x40]
mov rbp, qword [rsp + 0x48]
mov rsi, qword [rsp + 0x50]
add rsp, 0x20
pop r15
pop r14
pop rdi
ret
Function at 0x140069c20
Capabilities:
Get system information on windows

Disassembly:
sub rsp, 0x58
mov eax, dword [0x14009ee84]
test eax, eax
jne 0x140069d30
mov qword [rsp + 0x68], rbx
lea rcx, str.kernel32
xor ebx, ebx
mov qword [rsp + 0x50], rdi
mov dword [rsp + 0x60], ebx
call qword [sym.imp.KERNEL32.dll_GetModuleHandleA]
mov rcx, rax
lea rdx, str.GetLogicalProcessorInformation
call qword [sym.imp.KERNEL32.dll_GetProcAddress]
mov rdi, rax
test rax, rax
je 0x140069d07
nop dword [rax + rax]
lea rdx, [rsp + 0x60]
mov rcx, rbx
call rdi
test eax, eax
jne 0x140069cac
call qword [sym.imp.KERNEL32.dll_GetLastError]
cmp eax, 0x7a
jne 0x140069d07
test rbx, rbx
je 0x140069c96
mov rcx, rbx
call fcn.14006f1a0
mov ecx, dword [rsp + 0x60]
call fcn.14006f1a8
mov rbx, rax
test rax, rax
jne 0x140069c70
jmp 0x140069d35
mov r8d, dword [rsp + 0x60]
cmp r8, 0x20
jb 0x140069cea
mov edx, dword [0x14009ee84]
lea rcx, [rbx + 8]
mov r9d, 0x18
sub r9, rbx
nop word [rax + rax]
cmp dword [rcx], 0
jne 0x140069cd7
inc edx
add rcx, 0x20
lea rax, [r9 + rcx]
cmp rax, r8
jbe 0x140069cd0
mov dword [0x14009ee84], edx
mov rcx, rbx
call fcn.14006f1a0
mov eax, dword [0x14009ee84]
mov rbx, qword [rsp + 0x68]
mov rdi, qword [rsp + 0x50]
add rsp, 0x58
ret
lea rcx, [rsp + 0x20]
call qword [sym.imp.KERNEL32.dll_GetSystemInfo]
mov eax, dword [rsp + 0x40]
mov ecx, 1
mov rbx, qword [rsp + 0x68]
test eax, eax
mov rdi, qword [rsp + 0x50]
cmove eax, ecx
mov dword [0x14009ee84], eax
add rsp, 0x58
ret
lea rcx, str.zstd
call fcn.140072b4c
mov ecx, 1
call fcn.140072b40
int3
Function at 0x140072b40
Capabilities:
Parse pe header

Disassembly:
mov rax, rsp
mov qword [rax + 8], rbx
mov qword [rax + 0x10], rsi
mov qword [rax + 0x18], rdi
mov qword [rax + 0x20], r14
push r15
sub rsp, 0x20
mov esi, r8d
mov ebx, edx
mov r14d, ecx
test r8d, r8d
jne 0x140072914
xor ecx, ecx
call qword [sym.imp.KERNEL32.dll_GetModuleHandleW]
test rax, rax
je 0x140072914
mov ecx, 0x5a4d
cmp word [rax], cx
jne 0x140072914
movsxd rcx, dword [rax + 0x3c]
add rcx, rax
cmp dword [rcx], 0x4550
jne 0x140072914
mov eax, 0x20b
cmp word [rcx + 0x18], ax
jne 0x140072914
cmp dword [rcx + 0x84], 0xe
jbe 0x140072914
cmp dword [rcx + 0xf8], esi
je 0x140072914
mov ecx, r14d
call fcn.140072a5c
mov ecx, 2
call fcn.1400771e4
nop
cmp byte [0x14009e2e0], 0
jne 0x1400729de
mov r15d, 1
mov eax, r15d
xchg dword [0x14009e2d4], eax
test ebx, ebx
jne 0x140072987
mov rdi, qword [section..data]
mov edx, edi
and edx, 0x3f
lea ecx, [rbx + 0x40]
sub ecx, edx
xor eax, eax
ror rax, cl
xor rax, rdi
mov rcx, qword [0x14009e2d8]
cmp rcx, rax
je 0x14007297e
xor rdi, rcx
mov ecx, edx
ror rdi, cl
mov rcx, rdi
call qword [fcn.14006e994]
xor r8d, r8d
xor edx, edx
xor ecx, ecx
call rdi
lea rcx, [0x14009e488]
jmp 0x140072993
cmp ebx, r15d
jne 0x140072999
lea rcx, [0x14009e4a0]
call fcn.1400756b0
nop
test ebx, ebx
jne 0x1400729b0
lea rdx, [0x1400853b0]
lea rcx, [0x140085390]
call fcn.1400750ec
lea rdx, [0x1400853c0]
lea rcx, [0x1400853b8]
call fcn.1400750ec
movzx eax, byte [0x14009e2e0]
test esi, esi
cmove eax, r15d
mov byte [0x14009e2e0], al
jmp 0x1400729de
mov ecx, 2
call fcn.140077238
test esi, esi
jne 0x1400729f5
mov ecx, r14d
call fcn.140072a10
int3
mov rbx, qword [rsp + 0x30]
mov rsi, qword [rsp + 0x38]
mov rdi, qword [rsp + 0x40]
mov r14, qword [rsp + 0x48]
add rsp, 0x20
pop r15
ret
xor r8d, r8d
xor edx, edx
jmp 0x1400728a4
Function at 0x14007a69c
Capabilities:
Read file on windows

Disassembly:
mov rax, rsp
mov qword [rax + 0x10], rbx
mov qword [rax + 0x18], rsi
mov qword [rax + 0x20], rdi
mov qword [rax + 8], rcx
push rbp
mov rbp, rsp
sub rsp, 0x20
test rcx, rcx
jne 0x14007a53c
call fcn.14006f180
mov dword [rax], 0x16
call fcn.140076040
or eax, 0xffffffff
mov rbx, qword [rsp + 0x38]
mov rsi, qword [rsp + 0x40]
mov rdi, qword [rsp + 0x48]
add rsp, 0x20
pop rbp
ret
mov eax, dword [rcx + 0x14]
shr eax, 0xd
test al, 1
je 0x14007a524
mov rax, qword [rbp + 0x10]
mov ecx, dword [rax + 0x14]
shr ecx, 0xc
test cl, 1
jne 0x14007a524
mov rax, qword [rbp + 0x10]
mov ecx, dword [rax + 0x14]
mov rax, qword [rbp + 0x10]
shr ecx, 1
test cl, 1
je 0x14007a56e
lock or dword [rax + 0x14], 0x10
jmp 0x14007a524
lock or dword [rax + 0x14], 1
mov rax, qword [rbp + 0x10]
mov ecx, dword [rax + 0x14]
test ecx, 0x4c0
jne 0x14007a58b
mov rcx, qword [rbp + 0x10]
call fcn.140080998
mov rax, qword [rbp + 0x10]
mov rcx, qword [rax + 8]
mov qword [rax], rcx
mov rbx, qword [rbp + 0x10]
mov rcx, rbx
call fcn.140072e54
mov rdx, qword [rbp + 0x10]
mov ecx, eax
mov r8d, dword [rdx + 0x20]
mov rdx, qword [rdx + 8]
call fcn.140079f74
mov dword [rbx + 0x10], eax
mov rax, qword [rbp + 0x10]
mov edx, dword [rax + 0x10]
lea ecx, [rdx + 1]
cmp ecx, 1
ja 0x14007a5e2
neg edx
sbb ecx, ecx
and ecx, 8
add ecx, 8
lock or dword [rax + 0x14], ecx
mov rax, qword [rbp + 0x10]
and dword [rax + 0x10], 0
jmp 0x14007a524
mov ecx, dword [rax + 0x14]
test cl, 6
jne 0x14007a64e
mov rcx, qword [rbp + 0x10]
call fcn.140072e54
cmp eax, 0xffffffff
je 0x14007a635
mov rcx, qword [rbp + 0x10]
call fcn.140072e54
cmp eax, 0xfffffffe
je 0x14007a635
mov rbx, qword [rbp + 0x10]
mov rcx, rbx
call fcn.140072e54
movsxd rdi, eax
lea rsi, [0x14009e670]
mov rcx, rbx
sar rdi, 6
call fcn.140072e54
and eax, 0x3f
shl rax, 6
add rax, qword [rsi + rdi*8]
jmp 0x14007a63c
lea rax, [0x14009d160]
mov al, byte [rax + 0x38]
and al, 0x82
cmp al, 0x82
jne 0x14007a64e
mov rax, qword [rbp + 0x10]
lock or dword [rax + 0x14], 0x20
mov rax, qword [rbp + 0x10]
cmp dword [rax + 0x20], 0x200
jne 0x14007a684
mov ecx, dword [rax + 0x14]
shr ecx, 6
test cl, 1
je 0x14007a680
mov rax, qword [rbp + 0x10]
mov ecx, dword [rax + 0x14]
shr ecx, 8
test cl, 1
jne 0x14007a680
mov rax, qword [rbp + 0x10]
mov dword [rax + 0x20], 0x1000
mov rax, qword [rbp + 0x10]
dec dword [rax + 0x10]
mov rcx, qword [rax]
movzx edx, byte [rcx]
inc rcx
mov qword [rax], rcx
mov eax, edx
jmp 0x14007a527
jmp 0x14007a4f4

Function at 0x14007b758
Capabilities:
Delete file

Disassembly:
sub rsp, 0x28
call qword [sym.imp.KERNEL32.dll_DeleteFileW]
test eax, eax
jne 0x14007b778
call qword [sym.imp.KERNEL32.dll_GetLastError]
mov ecx, eax
call fcn.14006f110
or eax, 0xffffffff
jmp 0x14007b77a
xor eax, eax
add rsp, 0x28
ret
Function at 0x140001378
Capabilities:
Parse pe header

Disassembly:
push rbp
mov rbp, rsp
sub rsp, 0x20
mov rax, qword [0x1400055e0]
mov dword [rax], 1
mov rax, qword [0x1400055f0]
mov dword [rax], 1
mov rax, qword [0x140005600]
mov dword [rax], 1
mov rax, qword [0x140005580]
mov qword [rbp - 8], rax
mov rax, qword [rbp - 8]
movzx eax, word [rax]
cmp ax, 0x5a4d
je 0x1400013c9
mov eax, 0
jmp 0x140001476
mov rax, qword [rbp - 8]
mov eax, dword [rax + 0x3c]
movsxd rdx, eax
mov rax, qword [rbp - 8]
add rax, rdx
mov qword [rbp - 0x10], rax
mov rax, qword [rbp - 0x10]
mov eax, dword [rax]
cmp eax, 0x4550
je 0x1400013f5
mov eax, 0
jmp 0x140001476
mov rax, qword [rbp - 0x10]
add rax, 0x18
mov qword [rbp - 0x18], rax
mov rax, qword [rbp - 0x18]
movzx eax, word [rax]
movzx eax, ax
cmp eax, 0x10b
je 0x14000141b
cmp eax, 0x20b
je 0x140001442
jmp 0x140001471
mov rax, qword [rbp - 0x18]
mov eax, dword [rax + 0x5c]
cmp eax, 0xe
ja 0x14000142e
mov eax, 0
jmp 0x140001476
mov rax, qword [rbp - 0x18]
mov eax, dword [rax + 0xd0]
test eax, eax
setne al
movzx eax, al
jmp 0x140001476
mov rax, qword [rbp - 0x18]
mov qword [rbp - 0x20], rax
mov rax, qword [rbp - 0x20]
mov eax, dword [rax + 0x6c]
cmp eax, 0xe
ja 0x14000145d
mov eax, 0
jmp 0x140001476
mov rax, qword [rbp - 0x20]
mov eax, dword [rax + 0xe0]
test eax, eax
setne al
movzx eax, al
jmp 0x140001476
mov eax, 0
add rsp, 0x20
pop rbp
ret

Function at 0x140001dd0
Capabilities:
Write file on windows

Disassembly:
push rbp
push rbx
sub rsp, 0x38
lea rbp, [rsp + 0x30]
mov qword [rbp + 0x20], rcx
mov qword [rbp + 0x28], rdx
mov qword [rbp + 0x30], r8
mov qword [rbp + 0x38], r9
lea rax, [rbp + 0x28]
mov qword [rbp - 8], rax
mov ecx, 2
call sym.__acrt_iob_func
mov r9, rax
mov r8d, 0x1b
mov edx, 1
lea rax, str.Mingw_w64_runtime_failure:_n
mov rcx, rax
call sym.fwrite
mov rbx, qword [rbp - 8]
mov ecx, 2
call sym.__acrt_iob_func
mov rcx, rax
mov rax, qword [rbp + 0x20]
mov r8, rbx
mov rdx, rax
call sym.vfprintf
call sym.abort
nop

Function at 0x140002aa2
Capabilities:
Get thread local storage value

Disassembly:
push rbp
mov rbp, rsp
sub rsp, 0x30
mov eax, dword [0x14000a168]
test eax, eax
je 0x140002b3a
lea rax, [0x14000a140]
mov rcx, rax
mov rax, qword [sym.imp.KERNEL32.dll_EnterCriticalSection]
call rax
mov rax, qword [0x14000a170]
mov qword [rbp - 8], rax
jmp 0x140002b1e
mov rax, qword [rbp - 8]
mov eax, dword [rax]
mov ecx, eax
mov rax, qword [sym.imp.KERNEL32.dll_TlsGetValue]
call rax
mov qword [rbp - 0x10], rax
mov rax, qword [sym.imp.KERNEL32.dll_GetLastError]
call rax
test eax, eax
jne 0x140002b12
cmp qword [rbp - 0x10], 0
je 0x140002b12
mov rax, qword [rbp - 8]
mov rdx, qword [rax + 8]
mov rax, qword [rbp - 0x10]
mov rcx, rax
call rdx
mov rax, qword [rbp - 8]
mov rax, qword [rax + 0x10]
mov qword [rbp - 8], rax
cmp qword [rbp - 8], 0
jne 0x140002ad8
lea rax, [0x14000a140]
mov rcx, rax
mov rax, qword [sym.imp.KERNEL32.dll_LeaveCriticalSection]
call rax
jmp 0x140002b3b
nop
add rsp, 0x30
pop rbp
ret
Function at 0x14002d560
Capabilities:
Generate random numbers using a mersenne twister

Disassembly:
mov dword [rsp + 0x10], edx
mov qword [rsp + 8], rcx
sub rsp, 0x28
mov r9d, 0x6c078965
mov r8d, 0xffffffff
mov edx, dword [rsp + 0x38]
mov rcx, qword [rsp + 0x30]
call fcn.14002d510
mov rax, qword [rsp + 0x30]
add rsp, 0x28
ret

Function at 0x14002ea40
Capabilities:
Generate random numbers using a mersenne twister

Disassembly:
mov qword [rsp + 8], rcx
sub rsp, 0x38
mov rax, qword [rsp + 0x40]
cmp dword [rax], 0x270
jne 0x14002ea62
mov rcx, qword [rsp + 0x40]
call fcn.1400314c0
jmp 0x14002ea79
mov rax, qword [rsp + 0x40]
cmp dword [rax], 0x4e0
jb 0x14002ea79
mov rcx, qword [rsp + 0x40]
call fcn.1400312c0
mov rax, qword [rsp + 0x40]
mov eax, dword [rax]
mov rcx, qword [rsp + 0x40]
mov eax, dword [rcx + rax*4 + 4]
mov dword [rsp + 0x24], eax
mov rax, qword [rsp + 0x40]
mov eax, dword [rax]
inc eax
mov rcx, qword [rsp + 0x40]
mov dword [rcx], eax
mov eax, dword [rsp + 0x24]
mov dword [rsp + 0x20], eax
mov eax, dword [rsp + 0x20]
shr eax, 0xb
mov rcx, qword [rsp + 0x40]
and eax, dword [rcx + 0x1384]
mov ecx, dword [rsp + 0x20]
xor ecx, eax
mov eax, ecx
mov dword [rsp + 0x20], eax
mov eax, dword [rsp + 0x20]
shl eax, 7
and eax, 0x9d2c5680
mov ecx, dword [rsp + 0x20]
xor ecx, eax
mov eax, ecx
mov dword [rsp + 0x20], eax
mov eax, dword [rsp + 0x20]
shl eax, 0xf
and eax, 0xefc60000
mov ecx, dword [rsp + 0x20]
xor ecx, eax
mov eax, ecx
mov dword [rsp + 0x20], eax
mov eax, dword [rsp + 0x20]
shr eax, 0x12
mov ecx, dword [rsp + 0x20]
xor ecx, eax
mov eax, ecx
mov dword [rsp + 0x20], eax
mov eax, dword [rsp + 0x20]
add rsp, 0x38
ret
Function at 0x1400312c0
Capabilities:
Generate random numbers using a mersenne twister

Disassembly:
mov qword [rsp + 8], rcx
sub rsp, 0x48
mov qword [rsp + 0x28], 0x26f
mov qword [rsp + 0x30], 0xe3
mov qword [rsp], 0
jmp 0x1400312f0
mov rax, qword [rsp]
inc rax
mov qword [rsp], rax
cmp qword [rsp], 0xe3
jae 0x140031372
mov rax, qword [rsp + 0x50]
mov rcx, qword [rsp]
mov eax, dword [rax + rcx*4 + 0x9c4]
and eax, 0x80000000
mov rcx, qword [rsp + 0x50]
mov rdx, qword [rsp]
mov ecx, dword [rcx + rdx*4 + 0x9c8]
btr ecx, 0x1f
or eax, ecx
mov dword [rsp + 0x10], eax
mov eax, dword [rsp + 0x10]
and eax, 1
test eax, eax
je 0x14003133e
mov dword [rsp + 0x14], 0x9908b0df
jmp 0x140031346
mov dword [rsp + 0x14], 0
mov eax, dword [rsp + 0x10]
shr eax, 1
xor eax, dword [rsp + 0x14]
mov rcx, qword [rsp + 0x50]
mov rdx, qword [rsp]
xor eax, dword [rcx + rdx*4 + 0xff8]
mov rcx, qword [rsp + 0x50]
mov rdx, qword [rsp]
mov dword [rcx + rdx*4 + 4], eax
jmp 0x1400312e5
mov qword [rsp + 8], 0xe3
jmp 0x14003138a
mov rax, qword [rsp + 8]
inc rax
mov qword [rsp + 8], rax
cmp qword [rsp + 8], 0x26f
jae 0x140031411
mov rax, qword [rsp + 0x50]
mov rcx, qword [rsp + 8]
mov eax, dword [rax + rcx*4 + 0x9c4]
and eax, 0x80000000
mov rcx, qword [rsp + 0x50]
mov rdx, qword [rsp + 8]
mov ecx, dword [rcx + rdx*4 + 0x9c8]
btr ecx, 0x1f
or eax, ecx
mov dword [rsp + 0x18], eax
mov eax, dword [rsp + 0x18]
and eax, 1
test eax, eax
je 0x1400313db
mov dword [rsp + 0x1c], 0x9908b0df
jmp 0x1400313e3
mov dword [rsp + 0x1c], 0
mov eax, dword [rsp + 0x18]
shr eax, 1
xor eax, dword [rsp + 0x1c]
mov rcx, qword [rsp + 0x50]
mov rdx, qword [rsp + 8]
xor eax, dword [rcx + rdx*4 - 0x388]
mov rcx, qword [rsp + 0x50]
mov rdx, qword [rsp + 8]
mov dword [rcx + rdx*4 + 4], eax
jmp 0x14003137d
mov qword [rsp + 0x38], 0x26f
mov eax, 4
imul rax, rax, 0x4df
mov rcx, qword [rsp + 0x50]
mov eax, dword [rcx + rax + 4]
and eax, 0x80000000
mov ecx, 4
imul rcx, rcx, 0
mov rdx, qword [rsp + 0x50]
mov ecx, dword [rdx + rcx + 4]
btr ecx, 0x1f
or eax, ecx
mov dword [rsp + 0x20], eax
mov eax, dword [rsp + 0x20]
and eax, 1
test eax, eax
je 0x140031465
mov dword [rsp + 0x24], 0x9908b0df
jmp 0x14003146d
mov dword [rsp + 0x24], 0
mov eax, dword [rsp + 0x20]
shr eax, 1
xor eax, dword [rsp + 0x24]
mov ecx, 4
imul rcx, rcx, 0x18c
mov rdx, qword [rsp + 0x50]
xor eax, dword [rdx + rcx + 4]
mov ecx, 4
imul rcx, rcx, 0x26f
mov rdx, qword [rsp + 0x50]
mov dword [rdx + rcx + 4], eax
mov rax, qword [rsp + 0x50]
mov dword [rax], 0
add rsp, 0x48
ret
Function at 0x1400314c0
Capabilities:
Generate random numbers using a mersenne twister

Disassembly:
mov qword [rsp + 8], rcx
sub rsp, 0x18
mov qword [rsp + 8], 0x270
jmp 0x1400314e1
mov rax, qword [rsp + 8]
inc rax
mov qword [rsp + 8], rax
cmp qword [rsp + 8], 0x4e0
jae 0x140031565
mov rax, qword [rsp + 0x20]
mov rcx, qword [rsp + 8]
mov eax, dword [rax + rcx*4 - 0x9bc]
and eax, 0x80000000
mov rcx, qword [rsp + 0x20]
mov rdx, qword [rsp + 8]
mov ecx, dword [rcx + rdx*4 - 0x9b8]
btr ecx, 0x1f
or eax, ecx
mov dword [rsp], eax
mov eax, dword [rsp]
and eax, 1
test eax, eax
je 0x140031530
mov dword [rsp + 4], 0x9908b0df
jmp 0x140031538
mov dword [rsp + 4], 0
mov eax, dword [rsp]
shr eax, 1
xor eax, dword [rsp + 4]
mov rcx, qword [rsp + 0x20]
mov rdx, qword [rsp + 8]
xor eax, dword [rcx + rdx*4 - 0x388]
mov rcx, qword [rsp + 0x20]
mov rdx, qword [rsp + 8]
mov dword [rcx + rdx*4 + 4], eax
jmp 0x1400314d4
add rsp, 0x18
ret

Function at 0x14003d880
Capabilities:
Generate random numbers using a mersenne twister

Disassembly:
mov qword [rsp + 8], rcx
sub rsp, 0x38
mov rax, qword [rsp + 0x40]
cmp dword [rax], 0x138
jne 0x14003d8a2
mov rcx, qword [rsp + 0x40]
call fcn.14003efc0
jmp 0x14003d8b9
mov rax, qword [rsp + 0x40]
cmp dword [rax], 0x270
jb 0x14003d8b9
mov rcx, qword [rsp + 0x40]
call fcn.14003ed70
mov rax, qword [rsp + 0x40]
mov eax, dword [rax]
mov rcx, qword [rsp + 0x40]
mov rax, qword [rcx + rax*8 + 8]
mov qword [rsp + 0x28], rax
mov rax, qword [rsp + 0x40]
mov eax, dword [rax]
inc eax
mov rcx, qword [rsp + 0x40]
mov dword [rcx], eax
mov rax, qword [rsp + 0x28]
mov qword [rsp + 0x20], rax
mov rax, qword [rsp + 0x20]
shr rax, 0x1d
mov rcx, qword [rsp + 0x40]
and rax, qword [rcx + 0x1388]
mov rcx, qword [rsp + 0x20]
xor rcx, rax
mov rax, rcx
mov qword [rsp + 0x20], rax
mov rax, qword [rsp + 0x20]
shl rax, 0x11
movabs rcx, 0x71d67fffeda60000
and rax, rcx
mov rcx, qword [rsp + 0x20]
xor rcx, rax
mov rax, rcx
mov qword [rsp + 0x20], rax
mov rax, qword [rsp + 0x20]
shl rax, 0x25
movabs rcx, 0xfff7eee000000000
and rax, rcx
mov rcx, qword [rsp + 0x20]
xor rcx, rax
mov rax, rcx
mov qword [rsp + 0x20], rax
mov rax, qword [rsp + 0x20]
shr rax, 0x2b
mov rcx, qword [rsp + 0x20]
xor rcx, rax
mov rax, rcx
mov qword [rsp + 0x20], rax
mov rax, qword [rsp + 0x20]
add rsp, 0x38
ret
Function at 0x14003ed70
Capabilities:
Generate random numbers using a mersenne twister

Disassembly:
mov qword [rsp + 8], rcx
sub rsp, 0x68
mov qword [rsp + 0x40], 0x137
mov qword [rsp + 0x48], 0x9c
mov qword [rsp], 0
jmp 0x14003eda0
mov rax, qword [rsp]
inc rax
mov qword [rsp], rax
cmp qword [rsp], 0x9c
jae 0x14003ee3e
mov rax, qword [rsp + 0x70]
mov rcx, qword [rsp]
mov rax, qword [rax + rcx*8 + 0x9c8]
and rax, 0xffffffff80000000
mov rcx, qword [rsp + 0x70]
mov rdx, qword [rsp]
mov rcx, qword [rcx + rdx*8 + 0x9d0]
and rcx, 0x7fffffff
or rax, rcx
mov qword [rsp + 0x10], rax
mov rax, qword [rsp + 0x10]
and rax, 1
test rax, rax
je 0x14003ee04
movabs rax, 0xb5026f5aa96619e9
mov qword [rsp + 0x18], rax
jmp 0x14003ee0d
mov qword [rsp + 0x18], 0
mov rax, qword [rsp + 0x10]
shr rax, 1
xor rax, qword [rsp + 0x18]
mov rcx, qword [rsp + 0x70]
mov rdx, qword [rsp]
xor rax, qword [rcx + rdx*8 + 0xea8]
mov rcx, qword [rsp + 0x70]
mov rdx, qword [rsp]
mov qword [rcx + rdx*8 + 8], rax
jmp 0x14003ed95
mov qword [rsp + 8], 0x9c
jmp 0x14003ee56
mov rax, qword [rsp + 8]
inc rax
mov qword [rsp + 8], rax
cmp qword [rsp + 8], 0x137
jae 0x14003eef9
mov rax, qword [rsp + 0x70]
mov rcx, qword [rsp + 8]
mov rax, qword [rax + rcx*8 + 0x9c8]
and rax, 0xffffffff80000000
mov rcx, qword [rsp + 0x70]
mov rdx, qword [rsp + 8]
mov rcx, qword [rcx + rdx*8 + 0x9d0]
and rcx, 0x7fffffff
or rax, rcx
mov qword [rsp + 0x20], rax
mov rax, qword [rsp + 0x20]
and rax, 1
test rax, rax
je 0x14003eebd
movabs rax, 0xb5026f5aa96619e9
mov qword [rsp + 0x28], rax
jmp 0x14003eec6
mov qword [rsp + 0x28], 0
mov rax, qword [rsp + 0x20]
shr rax, 1
xor rax, qword [rsp + 0x28]
mov rcx, qword [rsp + 0x70]
mov rdx, qword [rsp + 8]
xor rax, qword [rcx + rdx*8 - 0x4d8]
mov rcx, qword [rsp + 0x70]
mov rdx, qword [rsp + 8]
mov qword [rcx + rdx*8 + 8], rax
jmp 0x14003ee49
mov qword [rsp + 0x50], 0x137
mov eax, 8
imul rax, rax, 0x26f
mov rcx, qword [rsp + 0x70]
mov rax, qword [rcx + rax + 8]
and rax, 0xffffffff80000000
mov ecx, 8
imul rcx, rcx, 0
mov rdx, qword [rsp + 0x70]
mov rcx, qword [rdx + rcx + 8]
and rcx, 0x7fffffff
or rax, rcx
mov qword [rsp + 0x30], rax
mov rax, qword [rsp + 0x30]
and rax, 1
test rax, rax
je 0x14003ef5f
movabs rax, 0xb5026f5aa96619e9
mov qword [rsp + 0x38], rax
jmp 0x14003ef68
mov qword [rsp + 0x38], 0
mov rax, qword [rsp + 0x30]
shr rax, 1
xor rax, qword [rsp + 0x38]
mov ecx, 8
imul rcx, rcx, 0x9b
mov rdx, qword [rsp + 0x70]
xor rax, qword [rdx + rcx + 8]
mov ecx, 8
imul rcx, rcx, 0x137
mov rdx, qword [rsp + 0x70]
mov qword [rdx + rcx + 8], rax
mov rax, qword [rsp + 0x70]
mov dword [rax], 0
add rsp, 0x68
ret
Function at 0x14003efc0
Capabilities:
Generate random numbers using a mersenne twister

Disassembly:
mov qword [rsp + 8], rcx
sub rsp, 0x28
mov qword [rsp], 0x138
jmp 0x14003efde
mov rax, qword [rsp]
inc rax
mov qword [rsp], rax
cmp qword [rsp], 0x270
jae 0x14003f07c
mov rax, qword [rsp + 0x30]
mov rcx, qword [rsp]
mov rax, qword [rax + rcx*8 - 0x9b8]
and rax, 0xffffffff80000000
mov rcx, qword [rsp + 0x30]
mov rdx, qword [rsp]
mov rcx, qword [rcx + rdx*8 - 0x9b0]
and rcx, 0x7fffffff
or rax, rcx
mov qword [rsp + 8], rax
mov rax, qword [rsp + 8]
and rax, 1
test rax, rax
je 0x14003f042
movabs rax, 0xb5026f5aa96619e9
mov qword [rsp + 0x10], rax
jmp 0x14003f04b
mov qword [rsp + 0x10], 0
mov rax, qword [rsp + 8]
shr rax, 1
xor rax, qword [rsp + 0x10]
mov rcx, qword [rsp + 0x30]
mov rdx, qword [rsp]
xor rax, qword [rcx + rdx*8 - 0x4d8]
mov rcx, qword [rsp + 0x30]
mov rdx, qword [rsp]
mov qword [rcx + rdx*8 + 8], rax
jmp 0x14003efd3
add rsp, 0x28
ret