joyce8/EMBER2024-capa huggingface dataset:
Function at 0x43ecc0
Capabilities:
Access peb ldr_data

Disassembly:
push ebp
mov ebp, esp
push 0xffffffffffffffff
push 0x4db3f4
mov eax, dword fs:[0]
push eax
sub esp, 0x48
push esi
push edi
mov eax, dword [0x51f164]
xor eax, ebp
push eax
lea eax, [ebp - 0xc]
mov dword fs:[0], eax
mov esi, dword [ebp + 0xc]
lea eax, [ebp - 0x50]
push eax
mov dword [ebp - 0x10], 0
xorps xmm0, xmm0
mov dword [ebp - 0x54], vtable.std::exception.0
lea eax, [esi + 4]
movq qword [ebp - 0x50], xmm0
push eax
call fcn.004a827f
add esp, 8
mov dword [ebp - 4], 0
lea ecx, [ebp - 0x3c]
mov eax, dword [esi + 0x14]
movq xmm0, qword [esi + 0xc]
mov dword [ebp - 0x40], eax
lea eax, [esi + 0x18]
push eax
mov dword [ebp - 0x54], vtable.boost::system::system_error.0
movq qword [ebp - 0x48], xmm0
call fcn.004323a0
movaps xmm0, xmmword [0x505650]
movups xmmword [ebp - 0x20], xmm0
mov dword [ebp - 0x54], vtable.boost::exception_detail::error_info_injector_class_boost::thread_resource_error_.0
mov dword [ebp - 0x24], vtable.boost::exception_detail::error_info_injector_class_boost::thread_resource_error_.1.0
mov dword [ebp - 4], 1
mov edi, dword [ebp + 8]
mov dword [edi + 0x44], 0x504f38
mov dword [edi + 0x4c], vtable.boost::exception_detail::clone_base.0
lea eax, [ebp - 0x54]
mov byte [ebp - 4], 2
push eax
mov ecx, edi
mov dword [ebp - 0x10], 6
call fcn.0043cf80
mov dword [ebp - 4], 4
lea esi, [edi + 0x30]
mov eax, dword [edi + 0x44]
mov dword [edi], vtable.boost::exception_detail::clone_impl_struct_boost::exception_detail::error_info_injector_class_boost::thread_resource_error__.0
mov dword [esi], vtable.boost::exception_detail::clone_impl_struct_boost::exception_detail::error_info_injector_class_boost::thread_resource_error__.1.0
mov eax, dword [eax + 4]
mov dword [eax + edi + 0x44], vtable.boost::exception_detail::clone_impl_struct_boost::exception_detail::error_info_injector_class_boost::thread_resource_error__.2.0
mov eax, dword [edi + 0x44]
mov ecx, dword [eax + 4]
lea eax, [ecx - 8]
mov dword [ecx + edi + 0x40], eax
lea eax, [ebp - 0x24]
push eax
push esi
call fcn.00404a90
mov eax, dword [edi + 0x44]
add esp, 8
mov dword [edi], vtable.boost::wrapexcept_class_boost::thread_resource_error_.0
mov dword [esi], vtable.boost::wrapexcept_class_boost::thread_resource_error_.1.0
mov eax, dword [eax + 4]
mov dword [eax + edi + 0x44], vtable.boost::wrapexcept_class_boost::thread_resource_error_.2.0
mov eax, dword [edi + 0x44]
mov ecx, dword [eax + 4]
lea eax, [ecx - 8]
mov dword [ecx + edi + 0x40], eax
mov dword [ebp - 0x54], vtable.boost::exception_detail::error_info_injector_class_boost::thread_resource_error_.0
mov dword [ebp - 0x24], vtable.boost::exception.0
mov dword [ebp - 4], 5
mov ecx, dword [ebp - 0x20]
test ecx, ecx
je 0x43ee16
mov eax, dword [ecx]
mov eax, dword [eax + 0x10]
call eax
mov ecx, dword [ebp - 0x20]
xor edx, edx
test al, al
cmovne ecx, edx
mov dword [ebp - 0x20], ecx
lea ecx, [ebp - 0x54]
mov dword [ebp - 0x54], vtable.boost::thread_exception.0
call fcn.00404760
mov eax, edi
mov ecx, dword [ebp - 0xc]
mov dword fs:[0], ecx
pop ecx
pop edi
pop esi
mov esp, ebp
pop ebp
ret
Function at 0x43efa0
Capabilities:
Access peb ldr_data

Disassembly:
push ebp
mov ebp, esp
push 0xffffffffffffffff
push 0x4db494
mov eax, dword fs:[0]
push eax
sub esp, 0x48
push esi
push edi
mov eax, dword [0x51f164]
xor eax, ebp
push eax
lea eax, [ebp - 0xc]
mov dword fs:[0], eax
mov esi, dword [ebp + 0xc]
lea eax, [ebp - 0x50]
push eax
mov dword [ebp - 0x10], 0
xorps xmm0, xmm0
mov dword [ebp - 0x54], vtable.std::exception.0
lea eax, [esi + 4]
movq qword [ebp - 0x50], xmm0
push eax
call fcn.004a827f
add esp, 8
mov dword [ebp - 4], 0
lea ecx, [ebp - 0x3c]
mov eax, dword [esi + 0x14]
movq xmm0, qword [esi + 0xc]
mov dword [ebp - 0x40], eax
lea eax, [esi + 0x18]
push eax
mov dword [ebp - 0x54], vtable.boost::system::system_error.0
movq qword [ebp - 0x48], xmm0
call fcn.004323a0
movaps xmm0, xmmword [0x505650]
movups xmmword [ebp - 0x20], xmm0
mov dword [ebp - 0x54], vtable.boost::exception_detail::error_info_injector_class_boost::lock_error_.0
mov dword [ebp - 0x24], vtable.boost::exception_detail::error_info_injector_class_boost::lock_error_.1.0
mov dword [ebp - 4], 1
mov edi, dword [ebp + 8]
mov dword [edi + 0x44], 0x504f38
mov dword [edi + 0x4c], vtable.boost::exception_detail::clone_base.0
lea eax, [ebp - 0x54]
mov byte [ebp - 4], 2
push eax
mov ecx, edi
mov dword [ebp - 0x10], 6
call fcn.0043d650
mov dword [ebp - 4], 4
lea esi, [edi + 0x30]
mov eax, dword [edi + 0x44]
mov dword [edi], vtable.boost::exception_detail::clone_impl_struct_boost::exception_detail::error_info_injector_class_boost::lock_error__.0
mov dword [esi], vtable.boost::exception_detail::clone_impl_struct_boost::exception_detail::error_info_injector_class_boost::lock_error__.1.0
mov eax, dword [eax + 4]
mov dword [eax + edi + 0x44], vtable.boost::exception_detail::clone_impl_struct_boost::exception_detail::error_info_injector_class_boost::lock_error__.2.0
mov eax, dword [edi + 0x44]
mov ecx, dword [eax + 4]
lea eax, [ecx - 8]
mov dword [ecx + edi + 0x40], eax
lea eax, [ebp - 0x24]
push eax
push esi
call fcn.00404a90
mov eax, dword [edi + 0x44]
add esp, 8
mov dword [edi], vtable.boost::wrapexcept_class_boost::lock_error_.0
mov dword [esi], vtable.boost::wrapexcept_class_boost::lock_error_.1.0
mov eax, dword [eax + 4]
mov dword [eax + edi + 0x44], vtable.boost::wrapexcept_class_boost::lock_error_.2.0
mov eax, dword [edi + 0x44]
mov ecx, dword [eax + 4]
lea eax, [ecx - 8]
mov dword [ecx + edi + 0x40], eax
mov dword [ebp - 0x54], vtable.boost::exception_detail::error_info_injector_class_boost::lock_error_.0
mov dword [ebp - 0x24], vtable.boost::exception.0
mov dword [ebp - 4], 5
mov ecx, dword [ebp - 0x20]
test ecx, ecx
je 0x43f0f6
mov eax, dword [ecx]
mov eax, dword [eax + 0x10]
call eax
mov ecx, dword [ebp - 0x20]
xor edx, edx
test al, al
cmovne ecx, edx
mov dword [ebp - 0x20], ecx
lea ecx, [ebp - 0x54]
mov dword [ebp - 0x54], vtable.boost::thread_exception.0
call fcn.00404760
mov eax, edi
mov ecx, dword [ebp - 0xc]
mov dword fs:[0], ecx
pop ecx
pop edi
pop esi
mov esp, ebp
pop ebp
ret
Function at 0x440800
Capabilities:
Encode data using xor
Generate random numbers using a mersenne twister

Disassembly:
push ebp
mov ebp, esp
push ecx
push esi
push edi
mov edi, ecx
mov dword [ebp - 4], edi
mov eax, dword [edi]
cmp eax, 0x270
jne 0x44085e
lea edx, [edi + 8]
mov esi, eax
nop dword [eax]
mov ecx, dword [edx - 4]
lea edx, [edx + 4]
xor ecx, dword [edx - 4]
and ecx, 0x7fffffff
xor ecx, dword [edx - 8]
mov eax, ecx
and al, 1
movzx eax, al
neg eax
sbb eax, eax
shr ecx, 1
and eax, 0x9908b0df
xor eax, dword [edx + 0x62c]
xor eax, ecx
mov dword [edx + 0x9b8], eax
sub esi, 1
jne 0x440820
mov eax, dword [edi]
jmp 0x440949
cmp eax, 0x4e0
jb 0x440949
mov eax, dword [edi + 0x9c4]
push ebx
lea ebx, [edi + 0x9c4]
mov edi, 0xe3
nop dword [eax + eax]
mov ecx, dword [ebx + 4]
lea edx, [ebx + 4]
xor ecx, eax
and ecx, 0x7fffffff
xor ecx, eax
mov eax, ecx
and al, 1
movzx eax, al
neg eax
sbb eax, eax
shr ecx, 1
and eax, 0x9908b0df
xor eax, dword [ebx + 0x634]
xor eax, ecx
mov dword [ebx - 0x9c0], eax
lea ebx, [edx]
mov eax, dword [edx]
sub edi, 1
jne 0x440880
mov ebx, dword [ebp - 4]
mov edi, 0x18c
add ebx, 0xd50
mov eax, dword [ebx]
nop dword [eax]
mov ecx, eax
lea edx, [ebx + 4]
xor ecx, dword [edx]
and ecx, 0x7fffffff
xor ecx, eax
mov eax, ecx
and al, 1
movzx eax, al
neg eax
sbb eax, eax
shr ecx, 1
and eax, 0x9908b0df
xor eax, dword [ebx - 0xd4c]
xor eax, ecx
mov dword [ebx - 0x9c0], eax
lea ebx, [edx]
mov eax, dword [edx]
sub edi, 1
jne 0x4408d0
mov edi, dword [ebp - 4]
pop ebx
mov ecx, dword [edi + 0x1380]
xor ecx, dword [edi + 4]
and ecx, 0x7fffffff
xor ecx, dword [edi + 0x1380]
mov eax, ecx
and al, 1
movzx eax, al
neg eax
sbb eax, eax
shr ecx, 1
and eax, 0x9908b0df
xor eax, dword [edi + 0x634]
xor eax, ecx
mov dword [edi + 0x9c0], eax
xor eax, eax
mov dword [edi], 0
mov edx, dword [edi + eax*4 + 4]
inc eax
mov dword [edi], eax
mov ecx, edx
mov eax, dword [edi + 0x1384]
shr ecx, 0xb
and eax, ecx
xor edx, eax
mov eax, edx
and eax, 0xff3a58ad
shl eax, 7
xor edx, eax
mov eax, edx
and eax, 0xffffdf8c
shl eax, 0xf
xor edx, eax
mov eax, edx
shr eax, 0x12
pop edi
xor eax, edx
pop esi
mov esp, ebp
pop ebp
ret
Function at 0x440da0
Capabilities:
Check for peb ntglobalflag flag

Disassembly:
push ebp
mov ebp, esp
push 0xffffffffffffffff
push 0x4db788
mov eax, dword fs:[0]
push eax
sub esp, 0x14
push ebx
push esi
push edi
mov eax, dword [0x51f164]
xor eax, ebp
push eax
lea eax, [ebp - 0xc]
mov dword fs:[0], eax
mov dword [ebp - 0x10], esp
mov edi, ecx
push 0x70
push 0
call dword [sym.imp.KERNEL32.dll_GetProcessHeap]
push eax
call dword [sym.imp.KERNEL32.dll_HeapAlloc]
mov esi, eax
mov dword [ebp - 0x14], esi
test esi, esi
je 0x440e86
mov ecx, esi
mov dword [ebp - 4], 1
call fcn.00404f20
mov dword [esi], 0x504e9c
mov eax, dword [edi]
mov dword [esi + 0x3c], eax
xor eax, eax
mov dword [esi + 0x50], 0
mov dword [esi + 0x54], 0
movups xmm0, xmmword [edi + 4]
movups xmmword [esi + 0x40], xmm0
movq xmm0, qword [edi + 0x14]
movq qword [esi + 0x50], xmm0
mov word [edi + 4], ax
mov dword [edi + 0x14], 0
mov dword [edi + 0x18], 7
mov dword [esi + 0x68], eax
mov dword [esi + 0x6c], eax
movups xmm0, xmmword [edi + 0x1c]
movups xmmword [esi + 0x58], xmm0
movq xmm0, qword [edi + 0x2c]
movq qword [esi + 0x68], xmm0
mov dword [edi + 0x2c], eax
mov word [edi + 0x1c], ax
mov eax, esi
mov dword [edi + 0x30], 7
mov ecx, dword [ebp - 0xc]
mov dword fs:[0], ecx
pop ecx
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret
lea ecx, [ebp - 0x20]
call fcn.00401fd0
push eax
mov dword [ebp - 4], 0
call fcn.00439ba0
int3

Function at 0x4649b0
Capabilities:
Create new key via cryptacquirecontext

Disassembly:
push ebp
mov ebp, esp
push 0xffffffffffffffff
push 0x4dd008
mov eax, dword fs:[0]
push eax
sub esp, 0x44
mov eax, dword [0x51f164]
xor eax, ebp
mov dword [ebp - 0x10], eax
push ebx
push esi
push edi
push eax
lea eax, [ebp - 0xc]
mov dword fs:[0], eax
mov esi, ecx
mov edi, dword [sym.imp.ADVAPI32.dll_CryptAcquireContextA]
push 0xf0000000
push 1
push 0
push 0
push esi
mov dword [esi], 0
call edi
test eax, eax
jne 0x464a26
call dword [sym.imp.KERNEL32.dll_GetLastError]
push 8
push 1
push 0
push str.Crypto_RNG
push esi
mov ebx, eax
call edi
test eax, eax
jne 0x464a26
push 0x28
push 1
push eax
push str.Crypto_RNG
push esi
call edi
test eax, eax
je 0x464a44
mov eax, esi
mov ecx, dword [ebp - 0xc]
mov dword fs:[0], ecx
pop ecx
pop edi
pop esi
pop ebx
mov ecx, dword [ebp - 0x10]
xor ecx, ebp
call fcn.00490d3b
mov esp, ebp
pop ebp
ret
push ebx
call dword [sym.imp.KERNEL32.dll_SetLastError]
push str.CryptAcquireContext
lea ecx, [ebp - 0x28]
call fcn.00432330
lea eax, [ebp - 0x28]
mov dword [ebp - 4], 0
push eax
lea ecx, [ebp - 0x50]
call fcn.00464b10
push 0x51896c
lea eax, [ebp - 0x50]
push eax
call fcn.004a858e
int3
Function at 0x468720
Capabilities:
Encode data using xor

Disassembly:
sub esp, 8
mov eax, dword [esp + 0x10]
xor dl, dl
mov ecx, dword [esp + 0x14]
push ebx
mov ebx, dword [esp + 0x10]
mov dword [esp + 8], eax
push ebp
push esi
push edi
test bl, 3
jne 0x468851
test al, 3
jne 0x468851
mov edi, ecx
mov dword [esp + 0x10], 0
shr edi, 2
xor esi, esi
test edi, edi
je 0x46880c
cmp edi, 8
jb 0x4687d5
mov ebp, dword [esp + 0x20]
mov edx, edi
mov dword [esp + 0x14], ebx
and edx, 0xfffffff8
add eax, 0x10
xorps xmm3, xmm3
sub dword [esp + 0x14], ebp
xorps xmm2, xmm2
mov ebp, dword [esp + 0x14]
movups xmm0, xmmword [eax - 0x10]
lea eax, [eax + 0x20]
movups xmm1, xmmword [ebx + esi*4]
add esi, 8
pxor xmm1, xmm0
por xmm3, xmm1
movups xmm1, xmmword [eax + ebp - 0x20]
movups xmm0, xmmword [eax - 0x20]
pxor xmm1, xmm0
por xmm2, xmm1
cmp esi, edx
jb 0x468784
mov eax, dword [esp + 0x20]
por xmm2, xmm3
movaps xmm0, xmm2
psrldq xmm0, 8
por xmm2, xmm0
movups xmm0, xmm2
psrldq xmm0, 4
por xmm2, xmm0
movd dword [esp + 0x10], xmm2
cmp esi, edi
jae 0x468810
mov ebp, ebx
lea edx, [eax + esi*4]
sub ebp, eax
mov dword [esp + 0x14], ebp
mov ebp, edi
mov ebx, dword [esp + 0x14]
sub ebp, esi
mov esi, edi
mov edi, dword [esp + 0x10]
mov eax, dword [edx + ebx]
lea edx, [edx + 4]
xor eax, dword [edx - 4]
or edi, eax
sub ebp, 1
jne 0x4687f2
mov ebx, dword [esp + 0x1c]
mov dword [esp + 0x10], edi
jmp 0x468814
xor edi, edi
jmp 0x468814
mov edi, dword [esp + 0x10]
shl esi, 2
sub ecx, esi
jne 0x468828
test edi, edi
pop edi
pop esi
pop ebp
sete al
pop ebx
add esp, 8
ret
mov eax, dword [esp + 0x10]
add ebx, esi
mov ebp, dword [esp + 0x20]
mov edx, eax
shr eax, 0x10
add ebp, esi
shr edx, 0x18
or dl, al
mov dword [esp + 0x14], ebp
mov eax, dword [esp + 0x10]
shr eax, 8
or dl, al
mov eax, ebp
or dl, byte [esp + 0x10]
xor edi, edi
test ecx, ecx
je 0x468910
cmp ecx, 0x20
jb 0x4688ea
mov esi, ecx
xorps xmm3, xmm3
and esi, 0xffffffe0
xorps xmm2, xmm2
mov dword [esp + 0x1c], esi
mov esi, ebx
sub esi, dword [esp + 0x14]
mov dword [esp + 0x10], esi
mov esi, dword [esp + 0x1c]
mov ebp, dword [esp + 0x10]
movups xmm0, xmmword [eax]
lea eax, [eax + 0x20]
movups xmm1, xmmword [eax + ebp - 0x20]
pxor xmm1, xmm0
movups xmm0, xmmword [eax - 0x10]
por xmm3, xmm1
movups xmm1, xmmword [ebx + edi + 0x10]
add edi, 0x20
pxor xmm1, xmm0
por xmm2, xmm1
cmp edi, esi
jb 0x468885
por xmm2, xmm3
movaps xmm0, xmm2
psrldq xmm0, 8
por xmm2, xmm0
movups xmm0, xmm2
psrldq xmm0, 4
por xmm2, xmm0
movups xmm0, xmm2
psrldq xmm0, 2
por xmm2, xmm0
movups xmm0, xmm2
psrldq xmm0, 1
por xmm2, xmm0
movd eax, xmm2
or dl, al
mov ebp, dword [esp + 0x14]
cmp edi, ecx
jae 0x468910
sub ebx, ebp
lea esi, [edi + ebp]
sub ecx, edi
nop dword [eax]
mov al, byte [ebx + esi]
lea esi, [esi + 1]
xor al, byte [esi - 1]
or dl, al
sub ecx, 1
jne 0x468900
pop edi
pop esi
test dl, dl
pop ebp
sete al
pop ebx
add esp, 8
ret
Function at 0x46bdc0
Capabilities:
Hash data using murmur3
Resolve function by parsing pe exports

Disassembly:
cmp byte [0x5283a4], 0
jne 0x46bdce
call fcn.00473fe0
cmp byte [0x5283ad], 0
je 0x46bdec
push 0
push 0x40
push dword [esp + 0x10]
push dword [esp + 0x10]
call fcn.00474cc0
add esp, 0x10
ret
jmp fcn.0046a100
Function at 0x48d2f0
Capabilities:
Check if file exists
Get file attributes

Disassembly:
push ebp
mov ebp, esp
push 0xffffffffffffffff
push 0x4e0700
mov eax, dword fs:[0]
push eax
sub esp, 0x2c
mov eax, dword [0x51f164]
xor eax, ebp
mov dword [ebp - 0x10], eax
push ebx
push esi
push edi
push eax
lea eax, [ebp - 0xc]
mov dword fs:[0], eax
mov ebx, dword [ebp + 0xc]
mov eax, dword [ebp + 0x10]
mov edi, dword [ebp + 8]
mov dword [ebp - 0x2c], eax
mov eax, ebx
cmp dword [ebx + 0x14], 8
jb 0x48d331
mov eax, dword [ebx]
push eax
call dword [sym.imp.KERNEL32.dll_GetFileAttributesW]
mov esi, eax
mov dword [ebp - 0x38], esi
cmp esi, 0xffffffff
jne 0x48d354
push dword [ebp - 0x2c]
push ebx
push edi
call fcn.0048d1c0
add esp, 0xc
jmp 0x48d470
push esi
push ebx
call fcn.0048d0c0
add esp, 8
mov ecx, eax
mov dword [ebp - 0x30], ecx
test esi, 0x400
je 0x48d435
cmp dword [ebx + 0x14], 8
mov edx, ebx
jb 0x48d379
mov edx, dword [ebx]
mov ecx, edx
mov dword [ebp - 0x18], 0
xor eax, eax
mov dword [ebp - 0x14], 7
mov word [ebp - 0x28], ax
lea esi, [ecx + 2]
mov ax, word [ecx]
add ecx, 2
test ax, ax
jne 0x48d392
sub ecx, esi
sar ecx, 1
push ecx
push edx
lea ecx, [ebp - 0x28]
call fcn.004373b0
cmp dword [ebp - 0x14], 8
lea eax, [ebp - 0x28]
push 0
cmovae eax, dword [ebp - 0x28]
push 0x2000000
push 3
push 0
push 7
push 0
push eax
mov dword [ebp - 4], 0
call dword [sym.imp.KERNEL32.dll_CreateFileW]
mov esi, eax
mov dword [ebp - 0x34], esi
lea ecx, [ebp - 0x28]
mov byte [ebp - 4], 2
call fcn.004049c0
cmp esi, 0xffffffff
jne 0x48d3f8
push dword [ebp - 0x2c]
push ebx
push edi
call fcn.0048d1c0
add esp, 0xc
jmp 0x48d470
push ebx
call fcn.0048cfe0
add esp, 4
test al, al
jne 0x48d421
mov eax, dword [ebp - 0x30]
mov dword [edi], 9
mov dword [edi + 4], eax
push esi
mov dword [ebp - 4], 4
call dword [sym.imp.KERNEL32.dll_CloseHandle]
jmp 0x48d470
push esi
mov dword [ebp - 4], 5
call dword [sym.imp.KERNEL32.dll_CloseHandle]
mov esi, dword [ebp - 0x38]
mov ecx, dword [ebp - 0x30]
mov eax, dword [ebp - 0x2c]
test eax, eax
je 0x48d44d
mov dword [eax], 0
mov byte [eax + 4], 0
mov dword [eax + 8], 0x505590
and esi, 0x10
je 0x48d457
mov edx, dword [ebp - 0x34]
jmp 0x48d45c
mov edx, ecx
mov ecx, dword [ebp - 0x34]
xor eax, eax
test esi, esi
setne al
add eax, 2
test esi, esi
mov dword [edi], eax
cmove ecx, edx
mov dword [edi + 4], ecx
mov eax, edi
mov ecx, dword [ebp - 0xc]
mov dword fs:[0], ecx
pop ecx
pop edi
pop esi
pop ebx
mov ecx, dword [ebp - 0x10]
xor ecx, ebp
call fcn.00490d3b
mov esp, ebp
pop ebp
ret
Function at 0x4908d0
Capabilities:
Check for time delay via queryperformancecounter

Disassembly:
sub esp, 0x10
lea eax, [esp]
push eax
call dword [sym.imp.KERNEL32.dll_QueryPerformanceFrequency]
test eax, eax
jne 0x4908f6
mov eax, dword [esp + 0x14]
mov dword [eax], 0
mov dword [eax + 4], 0
add esp, 0x10
ret
cmp dword [esp + 4], 0
jg 0x490905
jl 0x4908e1
cmp dword [esp], 0
jbe 0x4908e1
push esi
push edi
mov edi, dword [sym.imp.KERNEL32.dll_QueryPerformanceCounter]
lea eax, [esp + 0x10]
push eax
xor esi, esi
call edi
test eax, eax
jne 0x490931
nop word [eax + eax]
inc esi
cmp esi, 3
ja 0x49097c
lea eax, [esp + 0x10]
push eax
call edi
test eax, eax
je 0x490920
mov edx, dword [esp + 0x14]
mov ecx, dword [esp + 0x10]
call fcn.00491cb0
mulsd xmm0, qword [0x4eb790]
mov edx, dword [esp + 0xc]
mov ecx, dword [esp + 8]
movsd qword [esp + 0x10], xmm0
call fcn.00491cb0
movsd xmm1, qword [esp + 0x10]
divsd xmm1, xmm0
movaps xmm0, xmm1
call fcn.00491bd7
mov ecx, dword [esp + 0x1c]
pop edi
pop esi
mov dword [ecx], eax
mov eax, ecx
mov dword [ecx + 4], edx
add esp, 0x10
ret
mov eax, dword [esp + 0x1c]
pop edi
pop esi
mov dword [eax], 0
mov dword [eax + 4], 0
add esp, 0x10
ret
Function at 0x490a60
Capabilities:
Get thread local storage value
Set thread local storage value

Disassembly:
push ebp
mov ebp, esp
push 0xffffffffffffffff
push 0x4e0ca8
mov eax, dword fs:[0]
push eax
push ecx
push ebx
push esi
push edi
mov eax, dword [0x51f164]
xor eax, ebp
push eax
lea eax, [ebp - 0xc]
mov dword fs:[0], eax
mov eax, dword [0x51f150]
cmp eax, 0xffffffff
jne 0x490a94
xor ebx, ebx
jmp 0x490a9d
push eax
call dword [sym.imp.KERNEL32.dll_TlsGetValue]
mov ebx, eax
mov dword [ebp - 0x10], ebx
mov dword [ebp - 4], 0
test ebx, ebx
je 0x490adf
mov eax, dword [ebx + 0x18]
nop
mov esi, dword [ebx + 0xc]
test eax, eax
jne 0x490b1e
test esi, esi
jne 0x490b22
push 0x48fbe0
push 0x5287d8
call fcn.0048f9d0
mov eax, dword [0x51f150]
add esp, 8
cmp eax, 0xffffffff
je 0x490adf
push esi
push eax
call dword [sym.imp.KERNEL32.dll_TlsSetValue]
mov dword [ebp - 4], 2
test ebx, ebx
je 0x490b0c
or eax, 0xffffffff
lock xadd dword [ebx + 4], eax
jne 0x490b0c
mov eax, dword [ebx]
mov ecx, ebx
push 0
call dword [eax]
push ebx
push 0
call dword [sym.imp.KERNEL32.dll_GetProcessHeap]
push eax
call dword [sym.imp.KERNEL32.dll_HeapFree]
mov ecx, dword [ebp - 0xc]
mov dword fs:[0], ecx
pop ecx
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret
test esi, esi
je 0x490b64
mov eax, dword [esi + 4]
mov dword [ebx + 0xc], eax
mov ecx, dword [esi]
test ecx, ecx
je 0x490b4d
mov eax, dword [ecx]
call dword [eax + 4]
mov edi, dword [esi]
mov ecx, edi
push 0
mov eax, dword [edi]
call dword [eax]
push edi
push 0
call dword [sym.imp.KERNEL32.dll_GetProcessHeap]
push eax
call dword [sym.imp.KERNEL32.dll_HeapFree]
push esi
push 0
call dword [sym.imp.KERNEL32.dll_GetProcessHeap]
push eax
call dword [sym.imp.KERNEL32.dll_HeapFree]
mov esi, dword [ebx + 0xc]
test esi, esi
jne 0x490b22
mov eax, dword [ebx + 0x18]
test eax, eax
je 0x490ab0
nop
mov esi, dword [ebx + 0x14]
mov esi, dword [esi]
mov ecx, dword [esi + 0x18]
test ecx, ecx
je 0x490b8d
mov eax, dword [esi + 0x1c]
test eax, eax
je 0x490b8d
push eax
mov eax, dword [esi + 0x14]
push ecx
call eax
add esp, 8
push esi
lea ecx, [ebx + 0x14]
call fcn.0048f640
push 0x20
push eax
call fcn.004913bc
mov eax, dword [ebx + 0x18]
add esp, 8
mov byte [ebp - 4], 0
test eax, eax
jne 0x490b70
jmp 0x490ab0

Function at 0x490bc0
Capabilities:
Create thread
Resume thread

Disassembly:
push ebx
push esi
mov esi, ecx
mov edx, dword [esi]
lea eax, [edx + 0x10]
push eax
push 4
push edx
push 0x490c20
push 0
push 0
call fcn.004bfddc
mov ebx, eax
add esp, 0x18
test ebx, ebx
jne 0x490be9
pop esi
xor al, al
pop ebx
ret
mov eax, dword [esi]
push edi
add eax, 4
lock inc dword [eax]
mov edi, dword [esi]
mov eax, dword [edi + 8]
test eax, eax
je 0x490c07
cmp eax, 0xffffffff
je 0x490c07
push eax
call dword [sym.imp.KERNEL32.dll_CloseHandle]
mov dword [edi + 8], ebx
mov eax, dword [esi]
push dword [eax + 8]
call dword [sym.imp.KERNEL32.dll_ResumeThread]
pop edi
pop esi
mov al, 1
pop ebx
ret
Function at 0x492ea0
Capabilities:
Create thread

Disassembly:
push ebp
mov ebp, esp
push dword [ebp + 0x1c]
push dword [ebp + 0x18]
push dword [ebp + 0x14]
push dword [ebp + 0x10]
push dword [ebp + 0xc]
push dword [ebp + 8]
call dword [sym.imp.KERNEL32.dll_CreateThread]
pop ebp
ret
Function at 0x4c7da2
Capabilities:
Read file on windows

Disassembly:
mov edi, edi
push ebp
mov ebp, esp
pop ebp
jmp fcn.004c7a65

Function at 0x4c7dad
Capabilities:
Read file on windows

Disassembly:
mov edi, edi
push ebp
mov ebp, esp
pop ebp
jmp fcn.004c7be6

Function at 0x4cd0d7
Capabilities:
Set environment variable

Disassembly:
mov edi, edi
push ebp
mov ebp, esp
pop ebp
jmp fcn.004ccd97
Function at 0x10024ea0
Capabilities:
Access peb ldr_data
Get ntdll base address
Get number of processors

Disassembly:
push ebp
mov ebp, esp
push 0xffffffffffffffff
push 0x10090671
mov eax, dword fs:[0]
push eax
sub esp, 8
push ebx
push edi
mov eax, dword [0x100ba00c]
xor eax, ebp
push eax
lea eax, [ebp - 0xc]
mov dword fs:[0], eax
mov ebx, ecx
mov dword [ebp - 0x10], ebx
mov dword [ebx + 4], 0
mov dword [ebp - 4], 0
mov dword [ebx + 0x10], 0
mov dword [ebx + 0x14], 0
mov dword [ebx + 0x18], 0
mov dword [ebx + 0x1c], 0
mov dword [ebx + 0xc], 0x100a4cb0
mov dword [ebx + 0x20], 0
mov dword [ebx + 0x24], 0
mov dword [ebx + 0x28], 0
mov dword [ebx + 0x2c], 0
mov dword [ebx + 0x30], 0
lea edi, [ebx + 0x38]
mov byte [ebp - 4], 5
lea ecx, [edi + 0x1c]
mov dword [ebp - 0x14], edi
mov dword [edi], 0x1009baac
call dword [sym.imp.HncFoundation.dll_public:_void___thiscall_CHncStringW::constructor_void_]
mov dword [edi + 8], 0
mov dword [edi + 0x14], 0
mov dword [edi + 0xc], 0
mov dword [edi + 4], 0
mov dword [edi + 0x18], 0
mov dword [edi + 0x10], 1
lea ecx, [ebx + 0x58]
mov byte [ebp - 4], 6
call dword [sym.imp.HncFoundation.dll_public:_void___thiscall_CHncStringW::constructor_void_]
lea ecx, [ebx + 0x64]
mov byte [ebp - 4], 7
call fcn.100252d0
push 0x10025260
push 0x10025240
push 8
push 0xc
lea eax, [ebx + 0x70]
mov byte [ebp - 4], 8
push eax
call fcn.1008d2c5
mov dword [ebx + 0x34], 0
mov eax, ebx
mov ecx, dword [ebp - 0xc]
mov dword fs:[0], ecx
pop ecx
pop edi
pop ebx
mov esp, ebp
pop ebp
ret