joyce8/EMBER2024-capa huggingface dataset:
Function at 0x10050f60
Capabilities:
Log keystrokes

Disassembly:
push ebx
push esi
mov esi, dword [esp + 0xc]
mov eax, dword [esi + 0x18]
mov dword [esp + 0xc], eax
mov eax, eax
call fcn.10013fc0
test eax, eax
jne 0x10050f92
mov dword [esi + 0x2650], 0xf
test bh, bh
mov dword [esi + 0x264c], 1
test ecx, ecx
jmp 0x10050f9e
mov dword [esi + 0x264c], 0
mov ecx, ecx
cmp dword [0x101a639c], 0x1000
je 0x10050fc4
mov dword [esi + 0x2650], 0x28
push edx
pop edx
mov ebx, 1
mov dword [esi + 0x264c], ebx
nop
jmp 0x10050fd5
mov dword [esi + 0x264c], 0
mov esi, esi
mov ebx, 1
cmp dword [esi + 0x264c], 0
je 0x10050ffa
call fcn.10013720
cdq
mov ecx, 0x64
idiv ecx
test ecx, ecx
cmp dword [esi + 0x2650], edx
jl 0x10050ffa
pop esi
mov eax, ebx
pop ebx
ret
push ebp
push edi
mov edi, dword [esp + 0x18]
cmp edi, 0xa0
je 0x10051010
cmp edi, 0xa1
jne 0x10051019
mov edi, 0x10
test ch, ch
jmp 0x10051049
cmp edi, 0xa4
je 0x10051029
cmp edi, 0xa5
jne 0x10051032
mov edi, 0x12
mov edi, edi
jmp 0x10051049
cmp edi, 0xa2
je 0x10051042
cmp edi, 0xa3
jne 0x10051049
mov edi, 0x11
mov bh, bh
cmp dword [esi + 0x3374], 0
jne 0x1005105c
add dword [esi + 0x3360], ebx
test edi, edi
test dh, dh
mov eax, dword [esi + 0x3c]
test eax, eax
jne 0x1005107b
push ebx
push esi
mov eax, edi
call fcn.10050450
add esp, 8
mov dl, dl
pop edi
pop ebp
pop esi
mov eax, 1
pop ebx
ret
cmp eax, ebx
jne 0x100511b9
push 0
push edi
call dword [sym.imp.USER32.dll_MapVirtualKeyA]
push edx
pop edx
shl eax, 0x10
or eax, ebx
mov ebx, eax
test bl, bl
push ecx
pop ecx
push edi
call fcn.10047830
add esp, 4
test eax, eax
je 0x100510ae
or ebx, 0x1000000
test bh, bh
xor ebp, ebp
test bl, bl
cmp dword [esi + 0x14], ebp
je 0x100510df
cmp dword [esi + 0x32c8], ebp
jne 0x100510df
push 0x717be38b
push esi
call fcn.10049ed0
add esp, 8
test eax, eax
jne 0x100510df
or ebx, 0x4000000
nop
mov ebp, 0x4000000
push ecx
pop ecx
cmp edi, 0x12
jne 0x100510ed
mov dword [esi + 0x60], 1
test dl, dl
cmp dword [esi + 0x60], 0
jne 0x10051156
cmp edi, 0x79
je 0x10051156
cmp dword [esi + 0x32a8], 0
je 0x10051105
mov ebx, ebp
mov bl, bl
cmp dword [esi + 0x32a4], 0
je 0x10051139
mov edx, dword [esi + 0x32ac]
mov eax, dword [esp + 0x14]
push 0
push edx
push 1
push ebx
push edi
push 0x100
push eax
call fcn.1004d860
add esp, 0x1c
test dl, dl
pop edi
pop ebp
pop esi
mov eax, 1
pop ebx
ret
mov ecx, dword [esp + 0x14]
push ebx
push edi
push 0x100
push ecx
call fcn.1004d720
test ah, ah
pop edi
pop ebp
pop esi
mov eax, 1
pop ebx
ret
or ebx, 0x20000000
mov dh, dh
cmp dword [esi + 0x32a8], 0
je 0x1005116b
mov ebx, ebp
test bh, bh
cmp dword [esi + 0x32a4], 0
je 0x1005119c
mov edx, dword [esi + 0x32ac]
mov eax, dword [esp + 0x14]
push 0
push edx
push 1
push ebx
push edi
push 0x104
push eax
call fcn.1004d730
mov bh, bh
pop edi
pop ebp
pop esi
mov eax, 1
pop ebx
ret
mov ecx, dword [esp + 0x14]
push ebx
push edi
push 0x104
push ecx
call fcn.1004d720
mov bl, bl
pop edi
pop ebp
pop esi
mov eax, 1
pop ebx
ret
cmp eax, 2
jne 0x100511d5
cmp edi, 0x12
jne 0x100511c8
mov dword [esi + 0x60], ebx
test ah, ah
push ebx
push edi
push esi
call fcn.100aa1a0
add esp, 0xc
push edx
pop edx
pop edi
pop ebp
pop esi
mov eax, 1
pop ebx
ret
Function at 0x10052110
Capabilities:
Get keyboard layout

Disassembly:
push 0xffffffffffffffff
push 0x101520ab
mov eax, dword fs:[0]
push eax
sub esp, 0x20c
mov eax, dword [0x101a42b4]
xor eax, esp
mov dword [esp + 0x208], eax
push ebp
push esi
push edi
mov eax, dword [0x101a42b4]
xor eax, esp
push eax
lea eax, [esp + 0x21c]
mov dword fs:[0], eax
mov eax, dword [esp + 0x230]
push 0
push eax
call fcn.1004d700
test edi, edi
push eax
call dword [sym.imp.USER32.dll_GetKeyboardLayout]
mov ebp, eax
test ecx, ecx
lea ecx, [esp + 0x10]
call fcn.100cdb10
mov dword [esp + 0x224], 0
mov ah, ah
lea ecx, [esp + 0x10]
call fcn.100ccae0
mov esi, eax
test ah, ah
test esi, esi
mov edi, dword [esp + 0x234]
je 0x100521df
mov ecx, edi
lea eax, [esi + 0xf]
lea esp, [esp]
mov dl, byte [eax]
cmp dl, byte [ecx]
jne 0x100521c0
test dl, dl
je 0x100521bc
mov dl, byte [eax + 1]
cmp dl, byte [ecx + 1]
jne 0x100521c0
add eax, 2
add ecx, 2
test dl, dl
jne 0x100521a0
xor eax, eax
jmp 0x100521c5
sbb eax, eax
sbb eax, 0xffffffff
test eax, eax
je 0x100521d7
mov esi, dword [esi + 0x90]
mov al, al
test esi, esi
jne 0x10052194
jmp 0x100521df
test esi, esi
jne 0x1005226b
lea ecx, [esp + 0x10]
call fcn.100ccaf0
mov esi, eax
test bl, bl
test esi, esi
je 0x1005222a
mov ecx, edi
lea eax, [esi + 0xf]
mov dl, byte [eax]
cmp dl, byte [ecx]
jne 0x10052215
test dl, dl
je 0x10052211
mov dl, byte [eax + 1]
cmp dl, byte [ecx + 1]
jne 0x10052215
add eax, 2
add ecx, 2
test dl, dl
jne 0x100521f5
xor eax, eax
jmp 0x1005221a
sbb eax, eax
sbb eax, 0xffffffff
test eax, eax
je 0x10052267
mov esi, dword [esi + 0x90]
test ch, ch
test esi, esi
jne 0x100521f0
mov dword [esp + 0x224], 0xffffffff
lea ecx, [esp + 0x10]
call fcn.100ccb00
xor eax, eax
mov ecx, dword [esp + 0x21c]
mov dword fs:[0], ecx
pop ecx
pop edi
pop esi
pop ebp
mov ecx, dword [esp + 0x208]
xor ecx, esp
call fcn.100f43d6
add esp, 0x218
ret
test esi, esi
je 0x1005222a
push 0xff
lea eax, [esp + 0x11d]
push 0
push eax
mov byte [esp + 0x124], 0
call fcn.100f4ed0
add esp, 0xc
mov ebp, ebp
push 0xff
lea ecx, [esp + 0x1d]
push 0
push ecx
mov byte [esp + 0x24], 0
call fcn.100f4ed0
add esp, 0xc
mov al, al
lea edx, [esp + 0x18]
mov eax, esi
sub edx, esi
nop
mov cl, byte [eax]
mov byte [edx + eax], cl
add eax, 1
test cl, cl
jne 0x100522b0
test edx, edx
lea edx, [esp + 0x18]
push edx
call fcn.1014b399
add esp, 4
test dl, dl
push 0x10
lea eax, [esp + 0x11c]
push eax
push ebp
call fcn.1014b43b
add esp, 0xc
push ebx
pop ebx
mov dh, dh
lea ecx, [esp + 0x18]
lea eax, [esp + 0x118]
nop
mov dl, byte [eax]
cmp dl, byte [ecx]
jne 0x10052310
test dl, dl
je 0x1005230c
mov dl, byte [eax + 1]
cmp dl, byte [ecx + 1]
jne 0x10052310
add eax, 2
add ecx, 2
test dl, dl
jne 0x100522f0
xor eax, eax
jmp 0x10052315
sbb eax, eax
sbb eax, 0xffffffff
test eax, eax
jne 0x1005222a
mov dword [esp + 0x224], 0xffffffff
lea ecx, [esp + 0x10]
call fcn.100ccb00
mov eax, 1
jmp 0x10052240
Function at 0x10052340
Capabilities:
Contain obfuscated stackstrings

Disassembly:
sub esp, 0x68
mov eax, dword [0x101a42b4]
xor eax, esp
mov dword [esp + 0x64], eax
call fcn.1004b250
test eax, eax
jne 0x10052366
mov ecx, dword [esp + 0x64]
xor ecx, esp
call fcn.100f43d6
add esp, 0x68
ret
push ebx
xor ebx, ebx
cmp dword [0x102a8ee8], ebx
je 0x1005240d
call fcn.1004b250
test eax, eax
je 0x1005240d
push 0x3f
lea eax, [esp + 0x2d]
push ebx
push eax
mov byte [esp + 0x34], bl
call fcn.100f4ed0
add esp, 0xc
mov edx, edx
test dl, dl
mov dword [esp + 0x28], 2
push ecx
pop ecx
mov dword [esp + 0x2c], 0x17
mov ebp, ebp
mov dword [esp + 4], ebx
test edx, edx
mov ch, ch
mov ecx, dword [esp + 0x70]
mov dword [esp + 0x30], ecx
mov ah, ah
lea eax, [esp + 4]
cdq
mov dword [esp + 0x38], eax
mov dword [esp + 0x3c], edx
mov ebx, ebx
push ebx
lea edx, [esp + 0xc]
push edx
push ebx
push ebx
lea eax, [esp + 0x38]
push 0x18
push eax
call fcn.10021e70
add esp, 0x18
mov ebp, ebp
cmp eax, ebx
je 0x100524b7
cmp dword [esp + 4], ebx
jne 0x100524b7
lea eax, [ebx + 1]
pop ebx
mov ecx, dword [esp + 0x64]
xor ecx, esp
call fcn.100f43d6
add esp, 0x68
ret
cmp dword [fcn.102b5680], ebx
jne 0x100524c9
mov cl, 0x65
mov byte [esp + 0xc], 0x6b
mov byte [esp + 0xd], cl
mov byte [esp + 0xe], 0x72
mov byte [esp + 0xf], 0x6e
mov byte [esp + 0x10], cl
mov byte [esp + 0x11], 0x6c
mov byte [esp + 0x12], 0x33
mov byte [esp + 0x13], 0x32
mov byte [esp + 0x14], bl
test eax, eax
mov al, 0x73
mov dl, 0x6f
mov byte [esp + 0x18], 0x49
mov byte [esp + 0x19], al
mov byte [esp + 0x1a], 0x57
mov byte [esp + 0x1b], dl
mov byte [esp + 0x1c], 0x77
mov byte [esp + 0x1d], 0x36
mov byte [esp + 0x1e], 0x34
mov byte [esp + 0x1f], 0x50
mov byte [esp + 0x20], 0x72
mov byte [esp + 0x21], dl
mov byte [esp + 0x22], 0x63
mov byte [esp + 0x23], cl
mov byte [esp + 0x24], al
mov byte [esp + 0x25], al
mov byte [esp + 0x26], bl
test eax, eax
lea ecx, [esp + 0x18]
push ecx
lea edx, [esp + 0x10]
push edx
call dword [sym.imp.KERNEL32.DLL_GetModuleHandleA]
push eax
call dword [sym.imp.KERNEL32.DLL_GetProcAddress]
mov dword [fcn.102b5680], eax
test eax, eax
cmp dword [fcn.102b5680], ebx
jne 0x100524c9
xor eax, eax
pop ebx
mov ecx, dword [esp + 0x64]
xor ecx, esp
call fcn.100f43d6
add esp, 0x68
ret
push esi
mov ah, ah
mov dword [esp + 8], ebx
test bl, bl
mov eax, dword [esp + 0x74]
push ebx
push ebx
push eax
push ebx
push 0x400
call fcn.1004d2d0
add esp, 0x14
mov esi, eax
mov al, al
cmp esi, ebx
jne 0x10052502
pop esi
xor eax, eax
pop ebx
mov ecx, dword [esp + 0x64]
xor ecx, esp
call fcn.100f43d6
add esp, 0x68
ret
lea ecx, [esp + 8]
push ecx
push esi
call dword [fcn.102b5680]
mov bl, bl
push esi
call fcn.10032590
add esp, 4
test al, al
mov ecx, dword [esp + 0x6c]
xor eax, eax
cmp dword [esp + 8], ebx
pop esi
sete al
pop ebx
xor ecx, esp
call fcn.100f43d6
add esp, 0x68
ret
Function at 0x10052a40
Capabilities:
Contain obfuscated stackstrings

Disassembly:
sub esp, 0x20
mov eax, dword [0x101a42b4]
xor eax, esp
mov dword [esp + 0x1c], eax
mov cl, 0x6c
mov al, 0x65
mov dl, 0x64
push esi
mov byte [esp + 0x10], 0x6b
mov byte [esp + 0x11], al
mov byte [esp + 0x12], 0x72
mov byte [esp + 0x13], 0x6e
mov byte [esp + 0x14], al
mov byte [esp + 0x15], cl
mov byte [esp + 0x16], 0x33
mov byte [esp + 0x17], 0x32
mov byte [esp + 0x18], 0x2e
mov byte [esp + 0x19], dl
mov byte [esp + 0x1a], cl
mov byte [esp + 0x1b], cl
mov byte [esp + 0x1c], 0
test bl, bl
mov byte [esp + 4], 0x4f
mov byte [esp + 5], 0x70
mov byte [esp + 6], al
mov byte [esp + 7], 0x6e
mov byte [esp + 8], 0x54
mov byte [esp + 9], 0x68
mov byte [esp + 0xa], 0x72
mov byte [esp + 0xb], al
mov byte [esp + 0xc], 0x61
mov byte [esp + 0xd], dl
mov byte [esp + 0xe], 0
test eax, 0x2cb5
lea eax, [esp + 4]
push eax
lea ecx, [esp + 0x14]
push ecx
call dword [sym.imp.KERNEL32.DLL_GetModuleHandleA]
push eax
call dword [sym.imp.KERNEL32.DLL_GetProcAddress]
mov esi, eax
test eax, 0x1278
test esi, esi
jne 0x10052afd
pop esi
mov ecx, dword [esp + 0x1c]
xor ecx, esp
call fcn.100f43d6
add esp, 0x20
ret
push ebp
push edi
call fcn.1002d010
mov edi, eax
test bh, bh
mov ebp, dword [esp + 0x34]
push ebp
push 0
push 0x1f03ff
call esi
mov esi, eax
mov al, al
push edi
call fcn.1002d0e0
add esp, 4
test dl, dl
test esi, esi
jne 0x10052b3d
pop edi
pop ebp
xor eax, eax
pop esi
mov ecx, dword [esp + 0x1c]
xor ecx, esp
call fcn.100f43d6
add esp, 0x20
ret
push 0
push 0
push 0xbb8
push ebp
call fcn.1004d750
test ch, ch
push 0xffffffffffffffff
push esi
call dword [sym.imp.KERNEL32.DLL_WaitForSingleObject]
test eax, 0x268d
push esi
call dword [sym.imp.KERNEL32.DLL_CloseHandle]
xchg ebx, eax
xchg ebx, eax
mov ecx, dword [esp + 0x28]
pop edi
pop ebp
pop esi
xor ecx, esp
mov eax, 1
call fcn.100f43d6
add esp, 0x20
ret

Function at 0x10053e50
Capabilities:
Check if file exists
Get file attributes

Disassembly:
push 0xffffffffffffffff
push 0x10152208
mov eax, dword fs:[0]
push eax
push esi
mov eax, dword [0x101a42b4]
xor eax, esp
push eax
lea eax, [esp + 8]
mov dword fs:[0], eax
xor esi, esi
mov dword [esp + 0x10], esi
test ah, ah
mov eax, dword [esp + 0x18]
push eax
call dword [sym.imp.KERNEL32.DLL_GetFileAttributesA]
test dh, dh
cmp eax, 0xffffffff
je 0x10053e94
test al, 0x10
je 0x10053e94
mov esi, 1
mov dword [esp + 0x10], 0xffffffff
lea ecx, [esp + 0x18]
call fcn.1001f8c0
mov eax, esi
mov ecx, dword [esp + 8]
mov dword fs:[0], ecx
pop ecx
pop esi
add esp, 0xc
ret
Function at 0x1005ba50
Capabilities:
Access peb ldr_data
Create directory

Disassembly:
push 0xffffffffffffffff
push 0x10152418
mov eax, dword fs:[0]
push eax
sub esp, 0x14
push ebx
push esi
mov eax, dword [0x101a42b4]
xor eax, esp
push eax
lea eax, [esp + 0x20]
mov dword fs:[0], eax
xor ebx, ebx
mov dword [esp + 0x28], ebx
mov eax, dword [esp + 0x30]
mov ecx, dword [eax - 0xc]
mov edi, edi
cmp ecx, 2
jl 0x1005bbbf
lea eax, [ecx - 1]
cmp eax, ebx
jl 0x1005bc78
mov edx, dword [esp + 0x30]
cmp eax, dword [edx - 0xc]
jg 0x1005bc78
mov dl, byte [eax + edx]
cmp dl, 0x5c
jne 0x1005bae2
push eax
lea ecx, [esp + 0x14]
push ecx
lea ecx, [esp + 0x38]
call fcn.1003f920
mov byte [esp + 0x28], 1
push eax
lea ecx, [esp + 0x34]
call fcn.1003f9d0
mov byte [esp + 0x28], bl
lea ecx, [esp + 0x10]
call fcn.1001f8c0
test edi, edi
mov edx, dword [esp + 0x30]
mov ecx, dword [edx - 0xc]
nop
cmp ecx, ebx
jle 0x1005bbbf
push ecx
cmp ecx, 3
mov dword [esp + 0x14], esp
mov ecx, esp
jg 0x1005bb41
lea eax, [esp + 0x34]
push eax
call fcn.1003f7b0
mov byte [esp + 0x2c], 2
mov byte [esp + 0x2c], bl
call fcn.10053e50
add esp, 4
cmp eax, ebx
je 0x1005bbbf
mov dword [esp + 0x28], 0xffffffff
lea ecx, [esp + 0x30]
call fcn.1001f8c0
mov eax, 1
mov ecx, dword [esp + 0x20]
mov dword fs:[0], ecx
pop ecx
pop esi
pop ebx
add esp, 0x20
ret
lea edx, [esp + 0x34]
push edx
call fcn.1003f7b0
mov byte [esp + 0x2c], 3
mov byte [esp + 0x2c], bl
call fcn.10053e50
add esp, 4
cmp eax, ebx
jne 0x1005bb19
lea ecx, [esp + 0xc]
call fcn.1001f850
mov byte [esp + 0x28], 4
mov ebx, ebx
push 0x5c
lea ecx, [esp + 0x34]
call fcn.10052f10
push eax
lea eax, [esp + 0x14]
push eax
lea ecx, [esp + 0x38]
call fcn.1003f920
mov byte [esp + 0x28], 5
push eax
lea ecx, [esp + 0x10]
call fcn.1003f9d0
mov byte [esp + 0x28], 4
lea ecx, [esp + 0x10]
call fcn.1001f8c0
test bh, bh
mov ecx, dword [esp + 0xc]
cmp dword [ecx - 0xc], ebx
jg 0x1005bbe4
mov byte [esp + 0x28], bl
lea ecx, [esp + 0xc]
call fcn.1001f8c0
mov dword [esp + 0x28], 0xffffffff
lea ecx, [esp + 0x30]
call fcn.1001f8c0
xor eax, eax
mov ecx, dword [esp + 0x20]
mov dword fs:[0], ecx
pop ecx
pop esi
pop ebx
add esp, 0x20
ret
push ecx
lea edx, [esp + 0x10]
mov ecx, esp
mov dword [esp + 0x14], esp
push edx
call fcn.1003f7b0
mov byte [esp + 0x2c], 6
mov byte [esp + 0x2c], 4
call fcn.1005ba50
add esp, 4
test ch, ch
cmp eax, ebx
je 0x1005bbb2
mov eax, eax
mov dword [esp + 0x14], 0xc
test eax, 0x744f
mov dword [esp + 0x18], ebx
mov al, al
mov dword [esp + 0x1c], ebx
mov edx, edx
mov ecx, dword [esp + 0x30]
lea eax, [esp + 0x14]
push eax
push ecx
call dword [sym.imp.KERNEL32.DLL_CreateDirectoryA]
mov esi, eax
sub esi, 1
neg esi
sbb esi, esi
add esi, 1
test cl, cl
mov byte [esp + 0x28], bl
lea ecx, [esp + 0xc]
call fcn.1001f8c0
mov dword [esp + 0x28], 0xffffffff
lea ecx, [esp + 0x30]
call fcn.1001f8c0
mov eax, esi
mov ecx, dword [esp + 0x20]
mov dword fs:[0], ecx
pop ecx
pop esi
pop ebx
add esp, 0x20
ret
push 0x80070057
call fcn.10001140
Function at 0x1005cfd0
Capabilities:
Access peb ldr_data
Get ntdll base address

Disassembly:
push 0xffffffffffffffff
push 0x101527c1
mov eax, dword fs:[0]
push eax
sub esp, 0x24
push ebx
push esi
mov eax, dword [0x101a42b4]
xor eax, esp
push eax
lea eax, [esp + 0x30]
mov dword fs:[0], eax
xor ebx, ebx
mov dword [esp + 0x38], ebx
mov esi, dword [esp + 0x40]
mov eax, dword [esp + 0x44]
mov ecx, dword [esp + 0x5c]
mov edx, dword [esp + 0x60]
mov dword [esp + 0xc], ebx
mov dword [esi + 0x18], 0xf
mov dword [esi + 0x14], ebx
mov dword [esp + 0x10], esi
mov byte [esi + 4], bl
mov dword [esp + 0x38], ebx
mov dword [esp + 0xc], 1
test eax, 0x3ba6
fld qword [esp + 0x64]
push 1
sub esp, 8
fstp qword [esp]
push edx
mov edx, dword [esp + 0x64]
push ecx
mov ecx, dword [esp + 0x6c]
push ecx
mov ecx, dword [esp + 0x68]
push edx
mov edx, dword [esp + 0x68]
push ecx
mov ecx, dword [esp + 0x68]
push edx
push ecx
push eax
lea edx, [esp + 0x40]
push edx
call fcn.10044100
add esp, 0x30
mov dword [esp + 0x38], 1
push 0xffffffffffffffff
push ebx
push eax
mov ecx, esi
call fcn.10009fd0
mov byte [esp + 0x38], bl
cmp dword [esp + 0x2c], 0x10
jb 0x1005d091
mov eax, dword [esp + 0x18]
push eax
call fcn.100e2dad
add esp, 4
mov dword [esp + 0x2c], 0xf
mov dword [esp + 0x28], ebx
mov byte [esp + 0x18], bl
push ebx
pop ebx
mov eax, esi
mov ecx, dword [esp + 0x30]
mov dword fs:[0], ecx
pop ecx
pop esi
pop ebx
add esp, 0x30
ret

Function at 0x1005d280
Capabilities:
Access peb ldr_data
Get ntdll base address

Disassembly:
push 0xffffffffffffffff
push 0x101527c1
mov eax, dword fs:[0]
push eax
sub esp, 0x24
push ebx
push esi
mov eax, dword [0x101a42b4]
xor eax, esp
push eax
lea eax, [esp + 0x30]
mov dword fs:[0], eax
xor ebx, ebx
mov dword [esp + 0x38], ebx
mov esi, dword [esp + 0x40]
mov eax, dword [esp + 0x44]
mov ecx, dword [esp + 0x58]
mov edx, dword [esp + 0x5c]
mov dword [esp + 0xc], ebx
mov dword [esi + 0x18], 0xf
mov dword [esi + 0x14], ebx
mov dword [esp + 0x10], esi
mov byte [esi + 4], bl
mov dword [esp + 0x38], ebx
mov dword [esp + 0xc], 1
test eax, eax
fld qword [esp + 0x60]
push 1
sub esp, 8
fstp qword [esp]
push edx
mov edx, dword [esp + 0x60]
push ecx
mov ecx, dword [esp + 0x68]
push ecx
mov ecx, dword [esp + 0x64]
push edx
mov edx, dword [esp + 0x64]
push ecx
push edx
push eax
lea eax, [esp + 0x3c]
push eax
call fcn.10044ba0
add esp, 0x2c
mov dword [esp + 0x38], 1
push 0xffffffffffffffff
push ebx
push eax
mov ecx, esi
call fcn.10009fd0
mov byte [esp + 0x38], bl
cmp dword [esp + 0x2c], 0x10
jb 0x1005d339
mov ecx, dword [esp + 0x18]
push ecx
call fcn.100e2dad
add esp, 4
mov dword [esp + 0x2c], 0xf
mov dword [esp + 0x28], ebx
mov byte [esp + 0x18], bl
mov esi, esi
mov eax, esi
mov ecx, dword [esp + 0x30]
mov dword fs:[0], ecx
pop ecx
pop esi
pop ebx
add esp, 0x30
ret
Function at 0x1005d360
Capabilities:
Access peb ldr_data

Disassembly:
push 0xffffffffffffffff
push 0x101527f9
mov eax, dword fs:[0]
push eax
sub esp, 0x14
mov eax, dword [0x101a42b4]
xor eax, esp
mov dword [esp + 0x10], eax
push ebx
push esi
mov eax, dword [0x101a42b4]
xor eax, esp
push eax
lea eax, [esp + 0x20]
mov dword fs:[0], eax
mov esi, dword [esp + 0x30]
xor ebx, ebx
mov dword [esp + 0xc], ebx
mov al, 0x33
mov dword [esp + 0x10], esi
mov byte [esp + 0x14], 0x37
mov byte [esp + 0x15], 0x2e
mov byte [esp + 0x16], 0x32
mov byte [esp + 0x17], al
mov byte [esp + 0x18], al
mov byte [esp + 0x19], 0x36
mov byte [esp + 0x1a], bl
mov ebx, ebx
lea eax, [esp + 0x14]
mov dword [esi + 0x18], 0xf
mov dword [esi + 0x14], ebx
mov byte [esi + 4], bl
lea edx, [eax + 1]
mov cl, byte [eax]
add eax, 1
cmp cl, bl
jne 0x1005d3d6
sub eax, edx
push eax
lea eax, [esp + 0x18]
push eax
mov ecx, esi
call fcn.1000a1e0
mov dword [esp + 0x28], ebx
mov dword [esp + 0xc], 1
mov eax, esi
mov ecx, dword [esp + 0x20]
mov dword fs:[0], ecx
pop ecx
pop esi
pop ebx
mov ecx, dword [esp + 0x10]
xor ecx, esp
call fcn.100f43d6
add esp, 0x20
ret
Function at 0x1005ff10
Capabilities:
Get common file path

Disassembly:
push 0xffffffffffffffff
push 0x101529a2
mov eax, dword fs:[0]
push eax
sub esp, 0x80c
mov eax, dword [0x101a42b4]
xor eax, esp
mov dword [esp + 0x808], eax
push ebx
push esi
mov eax, dword [0x101a42b4]
xor eax, esp
push eax
lea eax, [esp + 0x818]
mov dword fs:[0], eax
mov esi, dword [esp + 0x828]
xor ebx, ebx
push 0x7ff
lea eax, [esp + 0x19]
push ebx
mov dword [esp + 0x14], ebx
push eax
mov dword [esp + 0x1c], esi
mov byte [esp + 0x20], bl
call fcn.100f4ed0
add esp, 0xc
test cl, cl
mov eax, dword [esp + 0x830]
cmp eax, ebx
jne 0x1005ff95
lea ecx, [esp + 0x14]
push ecx
push 0x800
call dword [sym.imp.KERNEL32.DLL_GetCurrentDirectoryA]
test cl, cl
jmp 0x1006004a
cmp eax, 1
jne 0x1005ffb1
push 0x800
lea edx, [esp + 0x18]
push edx
call dword [sym.imp.KERNEL32.DLL_GetSystemDirectoryA]
test eax, eax
jmp 0x1006004a
cmp eax, 2
jne 0x1005ffcd
push 0x800
lea eax, [esp + 0x18]
push eax
call dword [sym.imp.KERNEL32.DLL_GetWindowsDirectoryA]
push eax
pop eax
jmp 0x1006004a
cmp eax, 3
jne 0x1005ffe6
lea ecx, [esp + 0x14]
push ecx
push 0x800
call dword [sym.imp.KERNEL32.DLL_GetTempPathA]
test edi, edi
jmp 0x1006004a
cmp eax, 4
jne 0x1006004a
xor eax, eax
lea ecx, [ecx]
mov cl, byte [eax + 0x101a5e90]
mov byte [esp + eax + 0x14], cl
add eax, 1
cmp cl, bl
jne 0x1005fff0
mov ch, ch
lea eax, [esp + 0x14]
lea edx, [eax + 1]
lea ebx, [ebx]
mov cl, byte [eax]
add eax, 1
cmp cl, bl
jne 0x10060010
sub eax, edx
add eax, 0xffffffff
test eax, 0x1d94
cmp eax, ebx
jl 0x1006004a
mov cl, 0x5c
lea esp, [esp]
cmp byte [esp + eax + 0x14], cl
je 0x10060044
sub eax, 1
test eax, 0x22dd
cmp eax, ebx
jge 0x10060030
jmp 0x1006004a
mov byte [esp + eax + 0x14], bl
mov ah, ah
lea eax, [esp + 0x14]
mov dword [esi + 0x18], 0xf
mov dword [esi + 0x14], ebx
mov byte [esi + 4], bl
lea edx, [eax + 1]
mov edi, edi
mov cl, byte [eax]
add eax, 1
cmp cl, bl
jne 0x10060060
sub eax, edx
push eax
lea edx, [esp + 0x18]
push edx
mov ecx, esi
call fcn.1000a1e0
mov dword [esp + 0x820], ebx
mov dword [esp + 0xc], 1
mov eax, esi
mov ecx, dword [esp + 0x818]
mov dword fs:[0], ecx
pop ecx
pop esi
pop ebx
mov ecx, dword [esp + 0x808]
xor ecx, esp
call fcn.100f43d6
add esp, 0x818
ret
Function at 0x100603c0
Capabilities:
Get number of processors

Disassembly:
push 0xffffffffffffffff
push 0x10152aa2
mov eax, dword fs:[0]
push eax
sub esp, 0x120
mov eax, dword [0x101a42b4]
xor eax, esp
mov dword [esp + 0x11c], eax
push ebx
push esi
push edi
mov eax, dword [0x101a42b4]
xor eax, esp
push eax
lea eax, [esp + 0x130]
mov dword fs:[0], eax
mov edi, dword [esp + 0x140]
mov esi, dword [esp + 0x144]
xor ebx, ebx
push 0xff
lea eax, [esp + 0x31]
push ebx
mov dword [esp + 0x1c], ebx
push eax
mov dword [esp + 0x24], edi
mov byte [esp + 0x38], bl
call fcn.100f4ed0
add esp, 0xc
test eax, 0x7c2d
push 0x16cc25d5
push esi
call fcn.10049ed0
add esp, 8
test eax, eax
je 0x10060525
mov dword [esp + 0x10], ebx
test eax, 0x56f3
cmp dword [esi + 0x32c4], ebx
jne 0x100604b6
cmp dword [esi + 0x32b0], ebx
je 0x10060483
mov eax, dword [esi + 0x32b4]
mov esi, dword [esi + 0x18]
lea ecx, [esp + 0x10]
push ecx
push eax
push 1
push ebx
push 0x4a83
push 0xd3e1
push esi
call fcn.1004d730
test eax, eax
jmp 0x100604d4
mov esi, dword [esi + 0x18]
mov dword [esp + 0x1c], ebx
test dl, dl
lea edx, [esp + 0x1c]
push edx
push 0x9c4
push 1
push ebx
push 0x4a83
push 0xd3e1
push esi
call fcn.1004d730
mov bl, bl
mov eax, dword [esp + 0x1c]
mov dword [esp + 0x10], eax
nop
jmp 0x100604d4
mov ecx, dword [esi + 0x18]
push ebx
push 0x4a83
push 0xd3e1
push ecx
push esi
call fcn.100a4450
add esp, 0x14
mov dword [esp + 0x10], eax
mov ebx, ebx
cmp dword [esp + 0x10], 0xffffffff
je 0x10060590
mov cl, 0x25
mov al, 0x64
mov byte [esp + 0x1c], cl
mov byte [esp + 0x1d], al
mov byte [esp + 0x1e], 0x2c
mov byte [esp + 0x1f], cl
mov byte [esp + 0x20], al
mov byte [esp + 0x21], bl
test cl, cl
mov eax, dword [esp + 0x10]
mov edx, eax
shr edx, 0x10
movsx ecx, dx
push ecx
movsx edx, ax
push edx
lea eax, [esp + 0x24]
push eax
lea ecx, [esp + 0x38]
push ecx
call fcn.100f5cb0
add esp, 0x10
mov bh, bh
jmp 0x10060590
mov edx, edx
lea edx, [esp + 0x1c]
push edx
lea eax, [esp + 0x14]
push eax
push esi
call fcn.1003bc00
add esp, 0xc
mov eax, eax
cmp eax, ebx
je 0x10060549
push eax
call dword [sym.imp.GDI32.dll_DeleteObject]
test al, al
cmp dword [esp + 0x10], 0xffff
je 0x10060590
mov cl, 0x25
mov al, 0x64
mov byte [esp + 0x24], cl
mov byte [esp + 0x25], al
mov byte [esp + 0x26], 0x2c
mov byte [esp + 0x27], cl
mov byte [esp + 0x28], al
mov byte [esp + 0x29], bl
mov bh, bh
mov ecx, dword [esp + 0x1c]
mov edx, dword [esp + 0x10]
push ecx
push edx
lea eax, [esp + 0x2c]
push eax
lea ecx, [esp + 0x38]
push ecx
call fcn.100f5cb0
add esp, 0x10
mov ch, ch
lea eax, [esp + 0x2c]
mov dword [edi + 0x18], 0xf
mov dword [edi + 0x14], ebx
mov byte [edi + 4], bl
lea edx, [eax + 1]
mov cl, byte [eax]
add eax, 1
cmp cl, bl
jne 0x100605a4
sub eax, edx
push eax
lea edx, [esp + 0x30]
push edx
mov ecx, edi
call fcn.1000a1e0
mov dword [esp + 0x138], ebx
mov dword [esp + 0x14], 1
mov eax, edi
mov ecx, dword [esp + 0x130]
mov dword fs:[0], ecx
pop ecx
pop edi
pop esi
pop ebx
mov ecx, dword [esp + 0x11c]
xor ecx, esp
call fcn.100f43d6
add esp, 0x12c
ret