joyce8/EMBER2024-capa huggingface dataset:
Function at 0x426bd0
Capabilities:
Delete file
Set file attributes

Disassembly:
push ebp
mov ebp, esp
push 0xffffffffffffffff
push 0x4fe318
mov eax, dword fs:[0]
push eax
sub esp, 0x3c
mov eax, dword [0x54e414]
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
call fcn.0040a680
mov edi, dword [sym.imp.KERNEL32.dll_DeleteFileW]
push eax
call edi
test eax, eax
je 0x426c16
mov al, 1
jmp 0x426d68
mov ecx, esi
call fcn.0040a680
push eax
lea ecx, [ebp - 0x28]
call fcn.0040a870
mov dword [ebp - 4], 0
lea ecx, [ebp - 0x28]
call fcn.00426a20
mov ebx, eax
mov dword [ebp - 0x44], ebx
mov dword [ebp - 4], 0xffffffff
lea ecx, [ebp - 0x28]
call fcn.0040a7e0
cmp ebx, 0xffffffff
jne 0x426c55
xor al, al
jmp 0x426d68
mov ecx, esi
call fcn.0040a680
push eax
lea ecx, [ebp - 0x28]
call fcn.0040a870
mov dword [ebp - 4], 1
lea ecx, [ebp - 0x28]
push 0
call fcn.0040a680
mov ebx, dword [sym.imp.KERNEL32.dll_SetFileAttributesW]
push eax
call ebx
test eax, eax
je 0x426c87
xor bl, bl
jmp 0x426cd1
lea ecx, [ebp - 0x40]
call fcn.0040a8b0
mov byte [ebp - 4], 2
lea edx, [ebp - 0x40]
lea ecx, [ebp - 0x28]
call fcn.00427080
test al, al
je 0x426cc3
push 0
lea ecx, [ebp - 0x40]
call fcn.0040a680
push eax
call ebx
test eax, eax
je 0x426cc3
mov byte [ebp - 4], 1
lea ecx, [ebp - 0x40]
call fcn.0040a7e0
xor bl, bl
jmp 0x426cd1
mov byte [ebp - 4], 1
lea ecx, [ebp - 0x40]
call fcn.0040a7e0
mov bl, 1
mov dword [ebp - 4], 0xffffffff
lea ecx, [ebp - 0x28]
call fcn.0040a7e0
test bl, bl
jne 0x426c4e
mov ecx, esi
call fcn.0040a680
push eax
call edi
test eax, eax
jne 0x426c0f
lea ecx, [ebp - 0x28]
call fcn.0040a8b0
mov dword [ebp - 4], 3
lea edx, [ebp - 0x28]
mov ecx, esi
call fcn.00427080
test al, al
je 0x426d2a
lea ecx, [ebp - 0x28]
call fcn.0040a680
push eax
call edi
test eax, eax
je 0x426d2a
mov bl, 1
jmp 0x426d57
mov ecx, esi
call fcn.0040a680
push eax
lea ecx, [ebp - 0x40]
call fcn.0040a870
mov byte [ebp - 4], 4
lea ecx, [ebp - 0x40]
mov edx, dword [ebp - 0x44]
call fcn.00426970
mov byte [ebp - 4], 3
lea ecx, [ebp - 0x40]
call fcn.0040a7e0
xor bl, bl
mov dword [ebp - 4], 0xffffffff
lea ecx, [ebp - 0x28]
call fcn.0040a7e0
mov al, bl
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.004d1486
mov esp, ebp
pop ebp
ret
Function at 0x426d90
Capabilities:
Get common file path

Disassembly:
sub esp, 0x210
mov eax, dword [0x54e414]
xor eax, esp
mov dword [esp + 0x20c], eax
push ebx
mov ebx, dword [esp + 0x218]
lea eax, [esp + 4]
push esi
push edi
push 0x20c
push 0
push eax
mov esi, edx
mov edi, ecx
call fcn.004d4650
add esp, 0xc
lea eax, [esp + 0xc]
mov ecx, esi
push eax
push 0
call fcn.0040a680
push eax
mov ecx, edi
call fcn.0040a680
push eax
call dword [sym.imp.KERNEL32.dll_GetTempFileNameW]
test eax, eax
je 0x426e25
xor eax, eax
mov word [esp + 0x216], ax
lea eax, [esp + 0xc]
push eax
call fcn.0040b080
add esp, 4
mov ecx, ebx
push eax
lea eax, [esp + 0x10]
push eax
call fcn.0040af20
pop edi
pop esi
mov al, 1
pop ebx
mov ecx, dword [esp + 0x20c]
xor ecx, esp
call fcn.004d1486
add esp, 0x210
ret
mov ecx, dword [esp + 0x218]
xor al, al
pop edi
pop esi
pop ebx
xor ecx, esp
call fcn.004d1486
add esp, 0x210
ret
Function at 0x42f9b0
Capabilities:
Check os version

Disassembly:
push ebp
lea ebp, [esp - 0x120]
sub esp, 0x120
push 0xffffffffffffffff
push 0x4ffac2
mov eax, dword fs:[0]
push eax
sub esp, 0x1c
mov eax, dword [0x54e414]
xor eax, ebp
mov dword [ebp + 0x11c], eax
push esi
push edi
push eax
lea eax, [ebp - 0xc]
mov dword fs:[0], eax
mov esi, ecx
cmp dword [esi], 0
je 0x42f9f4
call fcn.0042fb40
cmp byte [0x551a28], 0
jne 0x42fa07
mov eax, 0x80000001
jmp 0x42fb1c
mov eax, dword [esi]
test eax, eax
jne 0x42fa72
push 8
call fcn.004d1497
mov edi, eax
mov dword [ebp - 0x10], edi
mov dword [ebp - 4], 0
push 1
call fcn.004d1497
mov dword [edi + 4], eax
push 0x118
push 0
mov byte [eax], 0
lea eax, [ebp + 4]
push eax
call fcn.004d4650
add esp, 0x14
mov dword [ebp], 0x11c
lea eax, [ebp]
push eax
call dword [sym.imp.KERNEL32.dll_GetVersionExW]
test eax, eax
je 0x42fa61
cmp dword [ebp + 4], 6
mov eax, dword [edi + 4]
setae cl
mov byte [eax], cl
mov dword [ebp - 4], 0xffffffff
mov dword [esi], edi
mov dword [edi], 0
mov eax, dword [esi]
cmp dword [eax], 0
jne 0x42fb0b
call fcn.00421f90
test al, al
jne 0x42faac
call dword [sym.imp.KERNEL32.dll_GetCurrentProcessId]
mov ecx, dword [esi]
push eax
add ecx, 4
call fcn.00422280
test al, al
je 0x42fb0b
mov ecx, dword [esi]
add ecx, 4
call fcn.00421af0
call fcn.00421f90
test al, al
je 0x42fb0b
push str.Advapi32.dll
lea ecx, [ebp - 0x28]
call fcn.0040a870
mov dword [ebp - 4], 2
lea eax, [ebp - 0x28]
push eax
call fcn.00424e80
mov ecx, eax
call fcn.00424f40
mov edi, eax
mov dword [ebp - 4], 0xffffffff
lea ecx, [ebp - 0x28]
call fcn.0040a7e0
test edi, edi
je 0x42fb0b
push 0x52a02c
push edi
call dword [sym.imp.KERNEL32.dll_GetProcAddress]
test eax, eax
je 0x42fb0b
push dword [esi]
push dword [ebp + 0x128]
call eax
test eax, eax
je 0x42fb0b
mov eax, dword [esi]
mov dword [eax], 0
mov eax, dword [esi]
cmp dword [eax], 0
jne 0x42fb1a
mov dword [eax], 0x80000001
mov eax, dword [esi]
mov eax, dword [eax]
mov ecx, dword [ebp - 0xc]
mov dword fs:[0], ecx
pop ecx
pop edi
pop esi
mov ecx, dword [ebp + 0x11c]
xor ecx, ebp
call fcn.004d1486
lea esp, [ebp + 0x120]
pop ebp
ret 4
Function at 0x42fdb0
Capabilities:
Get common file path

Disassembly:
push ebp
lea ebp, [esp - 0x628]
sub esp, 0x628
push 0xffffffffffffffff
push 0x4ffbb0
mov eax, dword fs:[0]
push eax
sub esp, 0x18
mov eax, dword [0x54e414]
xor eax, ebp
mov dword [ebp + 0x624], eax
push ebx
push esi
push edi
push eax
lea eax, [ebp - 0xc]
mov dword fs:[0], eax
mov esi, ecx
mov edi, dword [ebp + 0x630]
lea ecx, [ebp - 0x24]
mov ebx, dword [ebp + 0x634]
call fcn.0040a8b0
mov dword [ebp - 4], 0
lea ecx, [ebp]
push 0x551a94
mov dword [ebp], 0
call fcn.00403220
mov byte [ebp - 4], 1
mov ecx, 0x551a7c
call fcn.0040a670
test al, al
jne 0x42fe5e
mov ecx, 0x551a7c
call fcn.0040ad00
lea ecx, [ebp - 0x24]
cmp ecx, eax
je 0x42ff13
mov ecx, 0x551a7c
call fcn.0040ad00
mov ecx, eax
cmp dword [eax + 0x14], 8
jb 0x42fe55
mov ecx, dword [eax]
push dword [eax + 0x10]
push ecx
jmp 0x42ff0b
push 0x20c
lea eax, [ebp + 0x418]
push 0
push eax
call fcn.004d4650
add esp, 0xc
lea eax, [ebp + 0x418]
push eax
push 0x105
call dword [sym.imp.KERNEL32.dll_GetTempPathW]
dec eax
cmp eax, 0x103
ja 0x42ff9d
xor eax, eax
push 0x412
push eax
mov word [ebp + 0x622], ax
lea eax, [ebp + 4]
push eax
call fcn.004d4650
add esp, 0xc
lea eax, [ebp + 4]
push 0x208
push eax
lea eax, [ebp + 0x418]
push eax
call dword [sym.imp.KERNEL32.dll_GetLongPathNameW]
cmp eax, 0x208
ja 0x42fef4
test eax, eax
je 0x42fef4
add eax, eax
cmp eax, 0x412
jae 0x42ffe1
xor ecx, ecx
mov word [ebp + eax + 4], cx
lea eax, [ebp + 4]
push eax
call fcn.0040b080
add esp, 4
push eax
lea eax, [ebp + 4]
jmp 0x42ff0a
lea eax, [ebp + 0x418]
push eax
call fcn.0040b080
add esp, 4
push eax
lea eax, [ebp + 0x418]
push eax
lea ecx, [ebp - 0x24]
call fcn.0040af20
mov byte [ebp - 4], 0
lea ecx, [ebp]
call fcn.00403240
push ebx
push edi
lea eax, [ebp - 0x24]
mov ecx, esi
push eax
call fcn.0042fd40
test al, al
je 0x42ff34
mov bl, 1
jmp 0x42ffab
push 0x20c
lea eax, [ebp + 0x418]
push 0
push eax
call fcn.004d4650
add esp, 0xc
lea eax, [ebp + 0x418]
push 0x105
push eax
call dword [sym.imp.KERNEL32.dll_GetWindowsDirectoryW]
dec eax
cmp eax, 0x103
ja 0x42ffa9
xor eax, eax
mov word [ebp + 0x622], ax
lea eax, [ebp + 0x418]
push eax
call fcn.0040b080
add esp, 4
lea ecx, [ebp - 0x24]
push eax
lea eax, [ebp + 0x418]
push eax
call fcn.0040af20
push ebx
push edi
lea eax, [ebp - 0x24]
mov ecx, esi
push eax
call fcn.0042fd40
mov bl, al
jmp 0x42ffab
mov byte [ebp - 4], 0
lea ecx, [ebp]
call fcn.00403240
xor bl, bl
mov dword [ebp - 4], 0xffffffff
lea ecx, [ebp - 0x24]
call fcn.0040a7e0
mov al, bl
mov ecx, dword [ebp - 0xc]
mov dword fs:[0], ecx
pop ecx
pop edi
pop esi
pop ebx
mov ecx, dword [ebp + 0x624]
xor ecx, ebp
call fcn.004d1486
lea esp, [ebp + 0x628]
pop ebp
ret 8
call fcn.004d1a30
int3
Function at 0x431b30
Capabilities:
Get number of processors

Disassembly:
push ebp
mov ebp, esp
push 0xffffffffffffffff
push 0x4fff3f
mov eax, dword fs:[0]
push eax
push ecx
push esi
mov eax, dword [0x54e414]
xor eax, ebp
push eax
lea eax, [ebp - 0xc]
mov dword fs:[0], eax
mov esi, ecx
mov dword [ebp - 0x10], esi
mov dword [ebp - 4], 4
lea ecx, [esi + 0x7c]
call fcn.0040a7e0
mov byte [ebp - 4], 3
lea ecx, [esi + 0x64]
call fcn.0040a7e0
mov byte [ebp - 4], 2
lea ecx, [esi + 0x48]
call fcn.0040a7e0
mov byte [ebp - 4], 1
lea ecx, [esi + 0x30]
call fcn.0040a7e0
mov byte [ebp - 4], 0
lea ecx, [esi + 0x18]
call fcn.0040a7e0
mov dword [ebp - 4], 0xffffffff
mov ecx, esi
call fcn.0040a7e0
mov eax, esi
mov ecx, dword [ebp - 0xc]
mov dword fs:[0], ecx
pop ecx
pop esi
mov esp, ebp
pop ebp
ret 4

Function at 0x431bc0
Capabilities:
Get number of processors

Disassembly:
push ebp
mov ebp, esp
push 0xffffffffffffffff
push 0x4fff3f
mov eax, dword fs:[0]
push eax
push ecx
push esi
mov eax, dword [0x54e414]
xor eax, ebp
push eax
lea eax, [ebp - 0xc]
mov dword fs:[0], eax
mov esi, ecx
mov dword [ebp - 0x10], esi
mov dword [ebp - 4], 4
lea ecx, [esi + 0x7c]
call fcn.0040a7e0
mov byte [ebp - 4], 3
lea ecx, [esi + 0x64]
call fcn.0040a7e0
mov byte [ebp - 4], 2
lea ecx, [esi + 0x48]
call fcn.0040a7e0
mov byte [ebp - 4], 1
lea ecx, [esi + 0x30]
call fcn.0040a7e0
mov byte [ebp - 4], 0
lea ecx, [esi + 0x18]
call fcn.0040a7e0
mov dword [ebp - 4], 0xffffffff
mov ecx, esi
call fcn.0040a7e0
mov ecx, dword [ebp - 0xc]
mov dword fs:[0], ecx
pop ecx
pop esi
mov esp, ebp
pop ebp
ret

Function at 0x432e60
Capabilities:
Get number of processors

Disassembly:
push ebp
mov ebp, esp
push 0xffffffffffffffff
push 0x50010f
mov eax, dword fs:[0]
push eax
push ecx
push esi
push edi
mov eax, dword [0x54e414]
xor eax, ebp
push eax
lea eax, [ebp - 0xc]
mov dword fs:[0], eax
mov edi, ecx
mov dword [ebp - 0x10], edi
mov esi, dword [ebp + 8]
push esi
call fcn.0040a830
mov dword [ebp - 4], 0
lea eax, [esi + 0x18]
push eax
lea ecx, [edi + 0x18]
call fcn.0040a830
mov byte [ebp - 4], 1
lea eax, [esi + 0x30]
push eax
lea ecx, [edi + 0x30]
call fcn.0040a830
mov byte [ebp - 4], 2
lea eax, [esi + 0x48]
push eax
lea ecx, [edi + 0x48]
call fcn.0040a830
mov byte [ebp - 4], 3
lea ecx, [edi + 0x64]
mov al, byte [esi + 0x60]
mov byte [edi + 0x60], al
lea eax, [esi + 0x64]
push eax
call fcn.0040a830
mov byte [ebp - 4], 4
lea eax, [esi + 0x7c]
push eax
lea ecx, [edi + 0x7c]
call fcn.0040a830
mov dword [ebp - 4], 0xffffffff
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 4
Function at 0x433c70
Capabilities:
Encode data using xor

Disassembly:
push ebp
mov ebp, esp
push 0xffffffffffffffff
push 0x500398
mov eax, dword fs:[0]
push eax
sub esp, 0x40
mov eax, dword [0x54e414]
xor eax, ebp
mov dword [ebp - 0x14], eax
push ebx
push esi
push edi
push eax
lea eax, [ebp - 0xc]
mov dword fs:[0], eax
mov ebx, ecx
sub edx, ebx
mov eax, 0x2aaaaaab
imul edx
sar edx, 2
mov edi, edx
shr edi, 0x1f
add edi, edx
mov esi, edi
mov dword [ebp - 0x3c], edi
sar esi, 1
test esi, esi
jle 0x433e11
lea eax, [ebp - 0x2c]
push eax
call fcn.0040c380
mov dword [ebp - 0x44], eax
lea ecx, [esi + esi*2]
lea eax, [edi - 1]
add esp, 4
mov dword [ebp - 0x40], eax
sar eax, 1
mov dword [ebp - 0x34], eax
lea eax, [ebx + ecx*8]
nop
sub eax, 0x18
dec esi
push eax
mov dword [ebp - 0x38], esi
mov dword [ebp - 0x4c], eax
call fcn.0040c380
add esp, 4
lea ecx, [ebp - 0x2c]
push eax
call fcn.0040a830
mov dword [ebp - 4], 0
mov eax, esi
mov ecx, dword [ebp - 0x34]
mov edi, esi
mov dword [ebp - 0x30], eax
cmp esi, ecx
jge 0x433d5a
add esi, esi
lea eax, [esi + 2]
lea eax, [eax + eax*2]
lea ecx, [ebx + eax*8]
lea edx, [ecx - 0x18]
call fcn.0040c390
movzx eax, al
xor eax, 1
inc eax
add esi, eax
lea eax, [esi + esi*2]
lea eax, [ebx + eax*8]
push eax
call fcn.0040c380
add esp, 4
push eax
lea eax, [edi + edi*2]
lea ecx, [ebx + eax*8]
call fcn.0040a7f0
mov edi, esi
cmp esi, dword [ebp - 0x34]
jl 0x433d11
mov ecx, dword [ebp - 0x34]
mov eax, edi
mov dword [ebp - 0x30], esi
mov esi, dword [ebp - 0x38]
cmp eax, ecx
jne 0x433d86
mov eax, dword [ebp - 0x3c]
test al, 1
jne 0x433d86
lea eax, [eax + eax*2]
lea eax, [eax - 3]
lea eax, [ebx + eax*8]
push eax
call fcn.0040c380
add esp, 4
push eax
lea eax, [edi + edi*2]
lea ecx, [ebx + eax*8]
call fcn.0040a7f0
mov edi, dword [ebp - 0x40]
push dword [ebp - 0x44]
call fcn.0040c380
add esp, 4
mov ecx, eax
mov dword [ebp - 0x30], ecx
cmp esi, edi
jge 0x433de2
nop word [eax + eax]
lea esi, [edi - 1]
mov edx, ecx
sar esi, 1
lea eax, [esi + esi*2]
lea eax, [ebx + eax*8]
mov ecx, eax
mov dword [ebp - 0x48], eax
call fcn.0040c390
test al, al
je 0x433ddc
push dword [ebp - 0x48]
call fcn.0040c380
add esp, 4
push eax
lea eax, [edi + edi*2]
lea ecx, [ebx + eax*8]
call fcn.0040a7f0
mov edi, esi
mov ecx, dword [ebp - 0x30]
cmp dword [ebp - 0x38], esi
jl 0x433da0
mov esi, dword [ebp - 0x38]
mov ecx, dword [ebp - 0x30]
push ecx
call fcn.0040c380
add esp, 4
push eax
lea eax, [edi + edi*2]
lea ecx, [ebx + eax*8]
call fcn.0040a7f0
mov dword [ebp - 4], 0xffffffff
lea ecx, [ebp - 0x2c]
call fcn.0040a7e0
mov eax, dword [ebp - 0x4c]
test esi, esi
jg 0x433ce0
mov ecx, dword [ebp - 0xc]
mov dword fs:[0], ecx
pop ecx
pop edi
pop esi
pop ebx
mov ecx, dword [ebp - 0x14]
xor ecx, ebp
call fcn.004d1486
mov esp, ebp
pop ebp
ret
Function at 0x4346e0
Capabilities:
Encode data using xor

Disassembly:
sub esp, 0x10
mov eax, dword [esp + 0x14]
push ebx
push ebp
mov ebx, ecx
mov dword [esp + 8], eax
mov ecx, dword [esp + 0x20]
mov dword [esp + 0x14], ecx
lea ecx, [eax - 1]
push esi
mov ebp, ecx
mov dword [esp + 0x14], ecx
push edi
mov edi, edx
sar ebp, 1
mov dword [esp + 0x14], edi
mov esi, edi
cmp edi, ebp
jge 0x434751
add esi, esi
lea eax, [esi + 2]
lea eax, [eax + eax*2]
lea ecx, [ebx + eax*8]
lea edx, [ecx - 0x18]
call fcn.0040c390
movzx eax, al
xor eax, 1
inc eax
add esi, eax
lea eax, [esi + esi*2]
lea eax, [ebx + eax*8]
push eax
call fcn.0040c380
add esp, 4
push eax
lea eax, [edi + edi*2]
lea ecx, [ebx + eax*8]
call fcn.0040a7f0
mov edi, esi
cmp esi, ebp
jl 0x434710
mov eax, dword [esp + 0x10]
cmp esi, ebp
jne 0x43477b
test al, 1
jne 0x43477b
lea eax, [eax + eax*2]
lea eax, [eax - 3]
lea eax, [ebx + eax*8]
push eax
call fcn.0040c380
add esp, 4
push eax
lea eax, [edi + edi*2]
lea ecx, [ebx + eax*8]
call fcn.0040a7f0
mov edi, dword [esp + 0x18]
push dword [esp + 0x1c]
call fcn.0040c380
add esp, 4
mov ecx, eax
mov dword [esp + 0x10], ecx
cmp dword [esp + 0x14], edi
jge 0x4347d0
lea esi, [edi - 1]
mov edx, ecx
sar esi, 1
lea eax, [esi + esi*2]
lea ebp, [ebx + eax*8]
mov ecx, ebp
call fcn.0040c390
test al, al
je 0x4347cc
push ebp
call fcn.0040c380
add esp, 4
push eax
lea eax, [edi + edi*2]
lea ecx, [ebx + eax*8]
call fcn.0040a7f0
mov edi, esi
mov ecx, dword [esp + 0x10]
cmp dword [esp + 0x14], esi
jl 0x434793
mov ecx, dword [esp + 0x10]
push ecx
call fcn.0040c380
add esp, 4
push eax
lea eax, [edi + edi*2]
lea ecx, [ebx + eax*8]
call fcn.0040a7f0
pop edi
pop esi
pop ebp
pop ebx
add esp, 0x10
ret

Function at 0x4347f0
Capabilities:
Get number of processors

Disassembly:
push ebp
mov ebp, esp
push 0xffffffffffffffff
push 0x50042f
mov eax, dword fs:[0]
push eax
push ecx
push esi
push edi
mov eax, dword [0x54e414]
xor eax, ebp
push eax
lea eax, [ebp - 0xc]
mov dword fs:[0], eax
mov edi, ecx
mov dword [ebp - 0x10], edi
mov esi, dword [ebp + 8]
push esi
call fcn.0040a8d0
mov dword [ebp - 4], 0
lea eax, [esi + 0x18]
push eax
lea ecx, [edi + 0x18]
call fcn.0040a8d0
mov byte [ebp - 4], 1
lea eax, [esi + 0x30]
push eax
lea ecx, [edi + 0x30]
call fcn.0040a8d0
mov byte [ebp - 4], 2
lea eax, [esi + 0x48]
push eax
lea ecx, [edi + 0x48]
call fcn.0040a8d0
mov byte [ebp - 4], 3
lea ecx, [edi + 0x64]
mov al, byte [esi + 0x60]
mov byte [edi + 0x60], al
lea eax, [esi + 0x64]
push eax
call fcn.0040a8d0
mov byte [ebp - 4], 4
lea eax, [esi + 0x7c]
push eax
lea ecx, [edi + 0x7c]
call fcn.0040a8d0
mov dword [ebp - 4], 0xffffffff
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 4
Function at 0x435a00
Capabilities:
Get number of processors

Disassembly:
push ebp
mov ebp, esp
push 0xffffffffffffffff
push 0x50070f
mov eax, dword fs:[0]
push eax
push ecx
push esi
mov eax, dword [0x54e414]
xor eax, ebp
push eax
lea eax, [ebp - 0xc]
mov dword fs:[0], eax
mov esi, ecx
mov dword [ebp - 0x10], esi
call fcn.0040a8b0
mov dword [ebp - 4], 0
lea ecx, [esi + 0x18]
call fcn.0040a8b0
mov byte [ebp - 4], 1
lea ecx, [esi + 0x30]
call fcn.0040a8b0
mov byte [ebp - 4], 2
lea ecx, [esi + 0x48]
call fcn.0040a8b0
mov byte [ebp - 4], 3
lea ecx, [esi + 0x64]
call fcn.0040a8b0
mov byte [ebp - 4], 4
lea ecx, [esi + 0x7c]
call fcn.0040a8b0
mov byte [ebp - 4], 5
mov byte [esi + 0x60], 0
mov dword [ebp - 4], 0xffffffff
mov eax, esi
mov ecx, dword [ebp - 0xc]
mov dword fs:[0], ecx
pop ecx
pop esi
mov esp, ebp
pop ebp
ret

Function at 0x435b70
Capabilities:
Query environment variable

Disassembly:
push ebp
lea ebp, [esp - 0x414]
sub esp, 0x414
push 0xfffffffffffffffe
push 0x538308
push 0x4d3720
mov eax, dword fs:[0]
push eax
sub esp, 0x14
mov eax, dword [0x54e414]
xor dword [ebp - 8], eax
xor eax, ebp
mov dword [ebp + 0x410], eax
push ebx
push esi
push edi
push eax
lea eax, [ebp - 0x10]
mov dword fs:[0], eax
mov dword [ebp - 0x18], esp
mov esi, dword [ebp + 0x420]
mov dword [ebp - 0x20], esi
mov dword [ebp - 4], 0
mov ecx, esi
call fcn.0040ad00
mov dword [ebp - 0x24], 0
mov dword [eax + 0x10], 0
cmp dword [eax + 0x14], 8
jb 0x435be1
mov eax, dword [eax]
lea ecx, [ebp - 0x24]
push ecx
push eax
call fcn.0040b430
add esp, 8
mov edx, esi
mov edi, dword [ebp + 0x41c]
mov ecx, edi
call fcn.00435ce0
mov bl, al
mov byte [ebp - 0x19], bl
mov dword [ebp - 4], 0xfffffffe
jmp 0x435c29
test bl, bl
jne 0x435cac
cmp edi, 0x1a
jne 0x435cac
mov ecx, esi
call fcn.0040ad00
mov dword [ebp - 0x20], 0
mov dword [eax + 0x10], 0
cmp dword [eax + 0x14], 8
jb 0x435c4f
mov eax, dword [eax]
lea ecx, [ebp - 0x20]
push ecx
push eax
call fcn.0040b430
push 0x410
push 0
lea eax, [ebp]
push eax
call fcn.004d4650
add esp, 0x14
push 0x207
lea eax, [ebp]
push eax
push str.APPDATA
call dword [sym.imp.KERNEL32.dll_GetEnvironmentVariableW]
lea eax, [ebp]
push eax
call fcn.0040b080
add esp, 4
push eax
lea eax, [ebp]
push eax
mov ecx, esi
call fcn.0040af20
mov ecx, esi
call fcn.0040a670
movzx ebx, bl
mov ecx, 1
test al, al
cmove ebx, ecx
mov al, bl
mov ecx, dword [ebp - 0x10]
mov dword fs:[0], ecx
pop ecx
pop edi
pop esi
pop ebx
mov ecx, dword [ebp + 0x410]
xor ecx, ebp
call fcn.004d1486
lea esp, [ebp + 0x414]
pop ebp
ret
Function at 0x436980
Capabilities:
Read file on windows

Disassembly:
sub esp, 0xc
mov eax, dword [0x54e414]
xor eax, esp
mov dword [esp + 8], eax
mov eax, dword [esp + 0x18]
push ebx
push ebp
mov ebp, ecx
mov dword [esp + 8], eax
push esi
mov esi, dword [esp + 0x20]
xor ebx, ebx
push edi
cmp dword [ebp + 0x10], 0xffffffff
mov edi, dword [esp + 0x20]
je 0x436a02
mov ecx, 0x100000
nop dword [eax]
nop word [eax + eax]
cmp esi, 0x100000
mov dword [esp + 0x14], 0
push 0
mov eax, esi
cmova eax, ecx
lea ecx, [esp + 0x18]
push ecx
push eax
push edi
push dword [ebp + 0x10]
call dword [sym.imp.KERNEL32.dll_ReadFile]
mov ecx, dword [esp + 0x14]
add ebx, ecx
test eax, eax
je 0x436a02
test ecx, ecx
je 0x4369fe
add edi, ecx
sub esi, ecx
mov ecx, 0x100000
jne 0x4369c0
xor eax, eax
jmp 0x436a07
mov eax, 1
mov ecx, dword [esp + 0x10]
test ecx, ecx
je 0x436a11
mov dword [ecx], ebx
mov ecx, dword [esp + 0x18]
pop edi
pop esi
pop ebp
pop ebx
xor ecx, esp
call fcn.004d1486
add esp, 0xc
ret 0xc
Function at 0x438560
Capabilities:
Check for peb ntglobalflag flag

Disassembly:
push ebp
mov ebp, esp
push 0xffffffffffffffff
push 0x500ce4
mov eax, dword fs:[0]
push eax
push ecx
push esi
mov eax, dword [0x54e414]
xor eax, ebp
push eax
lea eax, [ebp - 0xc]
mov dword fs:[0], eax
mov esi, ecx
mov dword [ebp - 0x10], esi
call fcn.0040a8b0
mov dword [ebp - 4], 0
lea ecx, [esi + 0x18]
call fcn.0040a8b0
mov byte [ebp - 4], 1
lea ecx, [esi + 0x30]
call fcn.0040a8b0
mov byte [ebp - 4], 2
lea ecx, [esi + 0x48]
call fcn.0040a8b0
mov byte [ebp - 4], 3
lea ecx, [esi + 0x70]
mov word [esi + 0x60], 0x101
mov dword [esi + 0x64], 0
mov dword [esi + 0x68], 0
mov dword [esi + 0x6c], 0
call fcn.0040a8b0
mov dword [ebp - 4], 0xffffffff
mov eax, esi
mov ecx, dword [ebp - 0xc]
mov dword fs:[0], ecx
pop ecx
pop esi
mov esp, ebp
pop ebp
ret
Function at 0x441710
Capabilities:
Get file size

Disassembly:
sub esp, 8
mov eax, dword [0x54e414]
xor eax, esp
mov dword [esp + 4], eax
mov eax, dword [ecx]
push esi
push edi
mov edi, dword [esp + 0x14]
cmp eax, 0xffffffff
je 0x441775
lea ecx, [esp + 8]
mov dword [esp + 8], 0
push ecx
push eax
call dword [sym.imp.KERNEL32.dll_GetFileSize]
mov esi, eax
cmp esi, 0xffffffff
jne 0x441750
call dword [sym.imp.KERNEL32.dll_GetLastError]
test eax, eax
jne 0x441775
mov eax, dword [esp + 8]
xor ecx, ecx
add ecx, esi
mov dword [edi], ecx
adc eax, 0
mov dword [edi + 4], eax
mov al, 1
pop edi
pop esi
mov ecx, dword [esp + 4]
xor ecx, esp
call fcn.004d1486
add esp, 8
ret 4
mov ecx, dword [esp + 0xc]
xor al, al
pop edi
pop esi
xor ecx, esp
call fcn.004d1486
add esp, 8
ret 4
Function at 0x4418f0
Capabilities:
Get file size
Write file on windows

Disassembly:
push ebp
mov ebp, esp
push 0xffffffffffffffff
push 0x5020c8
mov eax, dword fs:[0]
push eax
sub esp, 0x2c
mov eax, dword [0x54e414]
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 edi, ecx
mov ecx, dword [ebp + 0x14]
mov esi, dword [ebp + 8]
mov eax, dword [ebp + 0x10]
mov dword [ebp - 0x20], esi
mov dword [ebp - 0x28], eax
mov dword [ebp - 0x2c], ecx
test ecx, ecx
je 0x441939
mov dword [ecx], 0
mov dword [eax], 0
cmp dword [edi], 0xffffffff
je 0x441a8b
mov eax, dword [ebp + 0xc]
mov ecx, 0x100000
push 0
mov ebx, eax
mov dword [ebp - 0x1c], 0
cmp eax, 0x100000
lea eax, [ebp - 0x1c]
push eax
cmova ebx, ecx
push ebx
push esi
push dword [edi]
call dword [sym.imp.KERNEL32.dll_WriteFile]
neg eax
sbb eax, eax
and eax, 0x7fffbffb
add eax, 0x80004005
cmp dword [edi + 0x1c], 0
je 0x441a56
test eax, eax
je 0x441a56
mov edx, dword [ebp - 0x1c]
cmp edx, ebx
jae 0x441a59
call dword [sym.imp.KERNEL32.dll_GetLastError]
mov ecx, dword [edi]
mov dword [ebp - 0x24], eax
cmp ecx, 0xffffffff
je 0x4419db
lea eax, [ebp - 0x14]
mov dword [ebp - 0x14], 0
push eax
push ecx
call dword [sym.imp.KERNEL32.dll_GetFileSize]
mov esi, eax
cmp esi, 0xffffffff
jne 0x4419cf
call dword [sym.imp.KERNEL32.dll_GetLastError]
test eax, eax
jne 0x4419db
mov eax, dword [ebp - 0x14]
xor ecx, ecx
add ecx, esi
adc eax, 0
jmp 0x4419e9
xorps xmm0, xmm0
movlpd qword [ebp - 0x38], xmm0
mov eax, dword [ebp - 0x34]
mov ecx, dword [ebp - 0x38]
push 0
push dword [ebp - 0x24]
push eax
push ecx
sub esp, 0x18
lea eax, [edi + 4]
mov ecx, esp
mov dword [ebp - 0x24], esp
push eax
call fcn.0040a8d0
mov dword [ebp - 4], 0
mov ecx, dword [edi + 0x1c]
mov eax, dword [ecx]
mov dword [ebp - 4], 0xffffffff
call dword [eax + 0x18]
mov esi, dword [ebp - 0x20]
test eax, eax
jne 0x441a56
push eax
mov dword [ebp - 0x18], eax
lea eax, [ebp - 0x18]
push eax
mov eax, dword [ebp - 0x1c]
push ebx
add eax, esi
push eax
push dword [edi]
call dword [sym.imp.KERNEL32.dll_WriteFile]
mov ecx, eax
xor edx, edx
test ecx, ecx
mov eax, 0x80004005
cmovne eax, edx
mov edx, dword [ebp - 0x1c]
add edx, dword [ebp - 0x18]
mov dword [ebp - 0x1c], edx
test ecx, ecx
je 0x441994
jmp 0x441a59
mov edx, dword [ebp - 0x1c]
mov ecx, dword [ebp - 0x28]
add dword [ecx], edx
test eax, eax
jne 0x441a82
test edx, edx
je 0x441a7e
mov eax, dword [ebp + 0xc]
add esi, edx
sub eax, edx
mov dword [ebp - 0x20], esi
mov dword [ebp + 0xc], eax
mov ecx, 0x100000
jne 0x441950
mov al, 1
jmp 0x441a8d
mov ecx, dword [ebp - 0x2c]
test ecx, ecx
je 0x441a8b
mov dword [ecx], eax
xor al, al
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.004d1486
mov esp, ebp
pop ebp
ret 0x10