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

Disassembly:
push ebp
mov ebp, esp
push ebx
push edi
push esi
sub esp, 0x50
mov eax, dword [ebp + 0xc]
mov ecx, dword [ebp + 8]
mov edx, dword [0x10016b84]
add edx, 0xffffe66c
mov dword [0x10016b88], edx
cmp ecx, 0
sete bl
cmp eax, 0
sete bh
and bl, bh
mov dword [ebp - 0x10], eax
mov dword [ebp - 0x14], ecx
mov byte [ebp - 0x15], bl
mov eax, 0xffffffff
mov cl, byte [ebp - 0x15]
test cl, 1
mov dword [ebp - 0x1c], eax
jne 0x1000de7f
jmp 0x1000dd1d
mov eax, dword [ebp - 0x20]
mov ecx, dword [ebp - 0x24]
mov dx, word [ecx + 0x24]
mov esi, dword [ecx + 0x28]
mov dword [0x10016b84], 0x5d2
mov edi, dword [ecx + 0x10]
mov ebx, dword [ebp - 0x10]
cmp edi, ebx
sete bl
mov bh, byte [ebp - 0x25]
and bh, bl
test bh, 1
mov dword [ebp - 0x2c], eax
mov dword [ebp - 0x30], ecx
mov word [ebp - 0x32], dx
mov dword [ebp - 0x38], esi
mov dword [ebp - 0x3c], edi
jne 0x1000dd9a
jmp 0x1000ddaa
mov eax, dword [ebp - 0x40]
xor ecx, ecx
add eax, 0xfffff932
mov dword [0x10016b88], eax
mov edx, dword [ebp - 0x30]
mov esi, dword [edx]
mov edi, dword [ebp - 0x44]
cmp esi, edi
mov dword [ebp - 0x20], eax
mov dword [ebp - 0x24], esi
mov dword [ebp - 0x1c], ecx
je 0x1000de7f
jmp 0x1000dcae
mov dword [0x10016b84], 0x1c04
mov ecx, dword fs:[0x18]
xor eax, eax
mov edx, dword [0x10016b84]
add edx, 0xfffffea8
mov dword [0x10016b88], edx
mov ecx, dword [ecx + 0x30]
mov dword [0x10016b84], 0x4d7
mov ecx, dword [ecx + 0xc]
mov edx, ecx
add edx, 0x14
mov dword [0x10016b88], 0xffffe9ae
mov ecx, dword [ecx + 0x14]
cmp ecx, edx
mov dword [ebp - 0x48], ecx
mov dword [ebp - 0x44], edx
mov dword [ebp - 0x1c], eax
je 0x1000de7f
mov eax, 0xffffe9ae
mov ecx, dword [ebp - 0x10]
cmp ecx, 0
setne dl
mov esi, dword [ebp - 0x48]
mov dword [ebp - 0x24], esi
mov byte [ebp - 0x25], dl
mov dword [ebp - 0x20], eax
jmp 0x1000dcae
mov eax, dword [ebp - 0x30]
add eax, 0xfffffff8
mov dword [ebp - 0x1c], eax
jmp 0x1000de7f
xor eax, eax
mov ecx, dword [ebp - 0x2c]
add ecx, 0x257d
mov dword [0x10016b84], ecx
mov dx, word [ebp - 0x32]
shr dx, 1
movzx esi, dx
cmp dx, 0
mov dword [ebp - 0x40], ecx
mov dword [ebp - 0x4c], esi
mov dword [ebp - 0x50], eax
je 0x1000dcf3
mov eax, dword [ebp - 0x50]
mov ecx, dword [ebp - 0x38]
mov dx, word [ecx + eax*2]
mov si, dx
add si, 0xffbf
mov di, dx
add di, 0x20
cmp si, 0x1a
mov dword [ebp - 0x54], eax
mov word [ebp - 0x56], dx
mov word [ebp - 0x58], di
jb 0x1000de0e
mov ax, word [ebp - 0x56]
mov word [ebp - 0x58], ax
mov ax, word [ebp - 0x58]
mov ecx, dword [ebp - 0x14]
mov edx, dword [ebp - 0x54]
cmp word [ecx + edx*2], ax
sete bl
cmp ax, 0
sete bh
mov al, bl
xor al, 1
or bh, al
test bh, 1
mov byte [ebp - 0x59], bl
jne 0x1000de50
mov dword [0x10016b88], 0x15b2
mov eax, dword [ebp - 0x54]
add eax, 1
mov ecx, dword [ebp - 0x4c]
cmp eax, ecx
mov dword [ebp - 0x50], eax
jb 0x1000ddda
mov eax, 0x3fa0
mov dword [0x10016b84], 0x3fa0
mov cl, byte [ebp - 0x59]
test cl, 1
mov dword [ebp - 0x40], eax
jne 0x1000de6f
jmp 0x1000dcf3
mov dword [0x10016b88], 0xa83
mov eax, dword [ebp - 0x3c]
mov dword [ebp - 0x1c], eax
mov eax, dword [ebp - 0x1c]
add esp, 0x50
pop esi
pop edi
pop ebx
pop ebp
ret
Function at 0x1000dec2
Capabilities:
Encrypt data using rc4 prga

Disassembly:
push ebp
mov ebp, esp
push ebx
push edi
push esi
sub esp, 0x30
mov eax, dword [ebp + 0x14]
mov ecx, dword [ebp + 0x10]
mov edx, dword [ebp + 0xc]
mov esi, dword [ebp + 8]
xor edi, edi
mov ebx, 0x149
mov dword [0x10016b8c], 0
mov dword [0x10016b90], 0
mov dword [0x10016b98], 0
mov dword [0x10016b84], 0x54d
mov dword [0x10016b88], 0x149
cmp eax, 0
mov dword [ebp - 0x10], eax
mov eax, edi
mov dword [ebp - 0x14], eax
mov eax, edi
mov dword [ebp - 0x18], eax
mov dword [ebp - 0x1c], ecx
mov dword [ebp - 0x20], edx
mov dword [ebp - 0x24], esi
mov dword [ebp - 0x28], ebx
mov dword [ebp - 0x2c], edi
je 0x1000e033
mov eax, dword [ebp - 0x2c]
mov ecx, dword [ebp - 0x18]
mov edx, dword [ebp - 0x28]
mov esi, dword [ebp - 0x14]
mov edi, 0x100
add ecx, 1
mov dword [ebp - 0x30], eax
mov eax, ecx
mov dword [ebp - 0x34], edx
cdq
idiv edi
mov dword [0x10016b8c], edx
mov ecx, dword [ebp - 0x34]
add ecx, 0xffffff3b
mov dword [0x10016b84], ecx
mov ecx, dword [ebp - 0x24]
movzx ebx, byte [ecx + edx]
add ebx, esi
mov eax, ebx
mov dword [ebp - 0x38], edx
cdq
idiv edi
mov dword [0x10016b90], edx
mov esi, dword [ebp - 0x34]
add esi, 0x2bc
mov dword [0x10016b84], esi
mov esi, dword [ebp - 0x38]
mov cl, byte [ecx + esi]
mov byte [0x10016b94], cl
mov edi, dword [ebp - 0x34]
add edi, 0xffffecdd
mov dword [0x10016b88], edi
mov edi, dword [ebp - 0x24]
mov cl, byte [edi + edx]
mov byte [edi + esi], cl
mov cl, byte [0x10016b94]
mov edx, dword [0x10016b90]
mov byte [edi + edx], cl
mov edx, dword [0x10016b8c]
movzx edx, byte [edi + edx]
mov ebx, dword [0x10016b90]
movzx ebx, byte [edi + ebx]
add ebx, edx
and ebx, 0xff
mov dword [0x10016b98], ebx
mov edx, dword [ebp - 0x1c]
mov ecx, dword [ebp - 0x30]
mov cl, byte [edx + ecx]
xor cl, byte [edi + ebx]
mov ebx, dword [ebp - 0x20]
mov edx, dword [ebp - 0x30]
mov byte [ebx + edx], cl
add edx, 1
mov ecx, dword [ebp - 0x10]
cmp edx, ecx
mov dword [ebp - 0x3c], edx
je 0x1000e033
mov eax, dword [0x10016b8c]
mov ecx, dword [0x10016b88]
mov edx, dword [0x10016b90]
mov esi, dword [ebp - 0x3c]
mov dword [ebp - 0x28], ecx
mov dword [ebp - 0x14], edx
mov dword [ebp - 0x18], eax
mov dword [ebp - 0x2c], esi
jmp 0x1000df37
add esp, 0x30
pop esi
pop edi
pop ebx
pop ebp
ret
Function at 0x1000e03b
Capabilities:
Get number of processors

Disassembly:
push ebp
mov ebp, esp
sub esp, 0x2c
mov eax, dword [0x10016b88]
add eax, 0x1700
mov dword [0x10016b84], eax
mov dword [ebp - 4], 0
mov eax, dword fs:[0x30]
mov dword [ebp - 4], eax
xor ecx, ecx
mov edx, dword [ebp - 4]
mov edx, dword [edx + 0x10]
mov edx, dword [edx + 0x3c]
mov dword [ebp - 8], eax
mov dword [ebp - 0xc], edx
mov dword [ebp - 0x10], ecx
jmp 0x1000e0b1
xor eax, eax
mov ecx, dword [0x10016b88]
add ecx, 0x109a
mov dword [0x10016b84], ecx
mov dword [ebp - 0x14], eax
jmp 0x1000e1bb
mov eax, dword [ebp - 0x18]
add eax, 0xfffffff6
mov dword [ebp - 0x1c], eax
mov eax, dword [ebp - 0xc]
mov ecx, dword [ebp - 0x1c]
cmp word [eax + ecx*2], 0x64
je 0x1000e199
jmp 0x1000e076
mov eax, dword [ebp - 0x10]
mov ecx, dword [ebp - 0xc]
cmp word [ecx + eax*2], 0
mov edx, eax
mov dword [ebp - 0x20], eax
mov dword [ebp - 0x24], edx
je 0x1000e0f3
jmp 0x1000e150
mov eax, 1
mov dword [0x10016b84], 0x882
mov ecx, dword [ebp - 0xc]
mov edx, dword [ebp - 0x18]
cmp word [ecx + edx*2 - 0xe], 0x6c
mov dword [ebp - 0x14], eax
je 0x1000e1bb
jmp 0x1000e076
mov eax, dword [ebp - 0x24]
mov ecx, dword [ebp - 0xc]
cmp word [ecx + eax*2 - 0x1a], 0x6c
mov dword [ebp - 0x18], eax
je 0x1000e128
jmp 0x1000e076
mov dword [0x10016b84], 0x1a94
mov eax, dword [ebp - 0xc]
mov ecx, dword [ebp - 0x18]
cmp word [eax + ecx*2 - 0x10], 0x6c
je 0x1000e0cc
jmp 0x1000e076
mov dword [0x10016b84], 0x2137
mov eax, dword [ebp - 0x18]
add eax, 0xfffffff4
mov dword [ebp - 0x28], eax
mov eax, dword [ebp - 0xc]
mov ecx, dword [ebp - 0x28]
cmp word [eax + ecx*2], 0x6f
je 0x1000e177
jmp 0x1000e076
mov eax, dword [ebp - 0x20]
add eax, 1
mov dword [ebp - 0x2c], eax
mov eax, dword [ebp - 0x2c]
cmp eax, 0x104
mov ecx, dword [ebp - 0x2c]
mov dword [ebp - 0x10], eax
mov dword [ebp - 0x24], ecx
jl 0x1000e0b1
jmp 0x1000e0f3
mov dword [0x10016b84], 0x949
mov eax, dword [ebp - 0xc]
mov ecx, dword [ebp - 0x18]
cmp word [eax + ecx*2 - 0x16], 0x61
je 0x1000e092
jmp 0x1000e076
mov dword [0x10016b84], 0x1996
mov eax, dword [ebp - 0xc]
mov ecx, dword [ebp - 0x18]
cmp word [eax + ecx*2 - 0x12], 0x64
je 0x1000e10a
jmp 0x1000e076
mov eax, dword [ebp - 0x14]
add esp, 0x2c
pop ebp
ret
Function at 0x1000e455
Capabilities:
Encrypt data using rc4 ksa

Disassembly:
push ebp
mov ebp, esp
push ebx
push edi
push esi
sub esp, 0x18
mov eax, dword [ebp + 0x10]
mov ecx, dword [ebp + 0xc]
mov edx, dword [ebp + 8]
xor esi, esi
mov dword [0x10016b90], 0
mov dword [0x10016b84], 0x25ca
mov byte [0x10016b94], 0
mov dword [0x10016b8c], 0
mov dword [ebp - 0x10], eax
mov dword [ebp - 0x14], ecx
mov dword [ebp - 0x18], edx
mov dword [ebp - 0x1c], esi
jmp 0x1000e4ad
xor eax, eax
mov dword [0x10016b8c], 0
mov dword [ebp - 0x20], eax
jmp 0x1000e4df
mov eax, dword [ebp - 0x1c]
mov ecx, eax
mov dl, cl
mov ecx, dword [ebp - 0x18]
mov byte [ecx + eax], dl
mov dword [0x10016b84], 0x262f
mov eax, dword [0x10016b8c]
add eax, 1
mov dword [0x10016b8c], eax
cmp eax, 0x100
mov dword [ebp - 0x1c], eax
jl 0x1000e4ad
jmp 0x1000e49c
mov eax, dword [ebp - 0x20]
mov ecx, 0x100
mov dword [ebp - 0x24], eax
xor edx, edx
mov esi, dword [ebp - 0x10]
div esi
mov dword [0x10016b88], 0xfde
mov edi, dword [0x10016b90]
mov ebx, dword [ebp - 0x18]
mov esi, dword [ebp - 0x24]
movzx esi, byte [ebx + esi]
add esi, edi
mov edi, dword [ebp - 0x14]
movzx edx, byte [edi + edx]
add esi, edx
mov eax, esi
cdq
idiv ecx
mov dword [0x10016b90], edx
mov dword [0x10016b88], 0xeda
mov ecx, dword [ebp - 0x24]
mov cl, byte [ebx + ecx]
mov byte [0x10016b94], cl
mov cl, byte [ebx + edx]
mov edx, dword [ebp - 0x24]
mov byte [ebx + edx], cl
mov cl, byte [0x10016b94]
mov esi, dword [0x10016b90]
mov byte [ebx + esi], cl
mov dword [0x10016b84], 0x1c74
mov esi, dword [0x10016b8c]
add esi, 1
mov dword [0x10016b8c], esi
cmp esi, 0x100
mov dword [ebp - 0x20], esi
jl 0x1000e4df
mov dword [0x10016b88], 0x1255
add esp, 0x18
pop esi
pop edi
pop ebx
pop ebp
ret
Function at 0x1000e641
Capabilities:
Resolve function by parsing pe exports

Disassembly:
push ebp
mov ebp, esp
push ebx
push edi
push esi
sub esp, 0x40
mov eax, dword [ebp + 8]
mov dword [ebp - 0x10], eax
call fcn.1000e1c3
xor ecx, ecx
mov dword [0x10016b84], 0x198d
mov edx, eax
mov esi, dword [eax + 0x3c]
mov dword [0x10016b88], 0x102
mov esi, dword [eax + esi + 0x78]
mov dword [0x10016b88], 0x29dd
mov edi, edx
add edi, dword [eax + esi + 0x20]
mov dword [0x10016b84], 0x1f1d
mov eax, dword [eax + esi + 0x18]
cmp eax, 0
mov dword [ebp - 0x14], edi
mov dword [ebp - 0x18], eax
mov dword [ebp - 0x1c], edx
mov dword [ebp - 0x20], esi
mov dword [ebp - 0x24], ecx
je 0x1000e79f
jmp 0x1000e6ed
mov eax, dword [ebp - 0x28]
movzx ecx, word [eax]
mov edx, dword [ebp - 0x20]
add edx, 0x1c
mov esi, dword [ebp - 0x1c]
add esi, edx
mov dword [ebp - 0x2c], ecx
mov dword [ebp - 0x30], esi
mov eax, dword [ebp - 0x1c]
mov ecx, dword [ebp - 0x30]
add eax, dword [ecx]
mov edx, dword [ebp - 0x2c]
mov eax, dword [eax + edx*4]
mov dword [0x10016b84], 0x2880
mov esi, dword [ebp - 0x1c]
add esi, eax
mov dword [ebp - 0x24], esi
jmp 0x1000e79f
xor eax, eax
mov ecx, dword [ebp - 0x1c]
mov edx, dword [ebp - 0x20]
add ecx, dword [ecx + edx + 0x24]
mov dword [ebp - 0x34], ecx
mov dword [ebp - 0x38], eax
mov eax, dword [ebp - 0x38]
mov ecx, dword [ebp - 0x34]
xor edx, edx
mov esi, dword [ebp - 0x14]
mov edi, dword [esi + eax*4]
mov dword [ebp - 0x3c], eax
mov dword [ebp - 0x28], ecx
mov dword [ebp - 0x40], edi
mov dword [ebp - 0x44], edx
mov eax, dword [ebp - 0x44]
mov ecx, eax
mov edx, dword [ebp - 0x40]
add ecx, edx
mov esi, dword [ebp - 0x1c]
mov bl, byte [esi + ecx]
mov ecx, dword [ebp - 0x10]
mov bh, byte [ecx + eax]
cmp bl, bh
sete cl
cmp bl, 0
mov dword [ebp - 0x48], eax
mov byte [ebp - 0x49], bh
mov byte [ebp - 0x4a], cl
je 0x1000e76a
mov eax, dword [ebp - 0x48]
add eax, 1
mov cl, byte [ebp - 0x49]
cmp cl, 0
setne dl
mov ch, byte [ebp - 0x4a]
and ch, dl
cmp eax, 0x20
setb dl
and ch, dl
test ch, 1
mov dword [ebp - 0x44], eax
jne 0x1000e719
mov al, byte [ebp - 0x4a]
test al, 1
jne 0x1000e6ae
jmp 0x1000e777
xor eax, eax
mov ecx, dword [ebp - 0x28]
add ecx, 2
mov edx, dword [ebp - 0x3c]
add edx, 1
mov esi, dword [ebp - 0x18]
cmp edx, esi
mov dword [ebp - 0x38], edx
mov dword [ebp - 0x34], ecx
mov dword [ebp - 0x24], eax
jb 0x1000e6ff
mov eax, dword [ebp - 0x24]
add esp, 0x40
pop esi
pop edi
pop ebx
pop ebp
ret
Function at 0x1000ea16
Capabilities:
Parse pe header

Disassembly:
push ebp
mov ebp, esp
push esi
and esp, 0xfffffff8
sub esp, 0xa0
lea eax, [esp + 0x30]
lea ecx, [esp + 0x40]
mov dword [0x10016b84], 0x19be
mov dword [esp], eax
mov dword [esp + 0x2c], ecx
call fcn.1000f108
lea ecx, [esp + 0x40]
mov edx, dword [esp + 0x30]
mov dword [esp + 0x44], edx
mov dword [esp + 0x5c], 0x118000
mov edx, dword [0x10016b70]
mov dword [esp + 0x88], edx
mov edx, dword [0x10016b74]
mov dword [esp + 0x68], edx
mov edx, dword [0x10016b78]
add ecx, 0x50
mov dword [esp + 0x28], eax
mov dword [esp + 0x24], edx
mov dword [esp + 0x20], ecx
lea eax, [0x1000e311]
mov ecx, dword [esp + 0x20]
mov edx, dword [esp + 0x24]
mov dword [ecx], edx
mov esi, dword [0x10016b7c]
mov dword [esp + 0x50], esi
mov esi, dword [0x10016b80]
mov dword [esp + 0x48], esi
mov dword [0x10016b88], 0x26bb
mov dword [0x10016b84], 0xa27
mov dword [esp + 0x1c], eax
jmp 0x1000eb15
mov eax, dword [esp + 0x18]
mov ecx, dword [eax + 0x3c]
cmp dword [eax + ecx], 0x4550
mov dword [esp + 0x14], ecx
jne 0x1000eb24
mov eax, dword [esp + 0x18]
mov dword [esp + 0x84], eax
mov dword [0x10016b84], 0xaa5
mov dword [0x10016b88], 0x102
mov ecx, dword [esp + 0x14]
mov edx, dword [eax + ecx + 0x50]
mov dword [esp + 0x6c], edx
call fcn.1000e03b
xor ecx, ecx
cmp eax, 0
mov dword [esp + 0x10], ecx
je 0x1000eb40
jmp 0x1000eb90
mov eax, dword [esp + 0x1c]
cmp word [eax], 0x5a4d
mov dword [esp + 0x18], eax
je 0x1000eac2
mov eax, dword [esp + 0x18]
add eax, 0xfffff000
and eax, 0xfffff000
mov dword [esp + 0xc], eax
mov eax, dword [esp + 0xc]
mov dword [esp + 0x1c], eax
jmp 0x1000eb15
lea eax, [esp + 0x40]
mov dword [0x10016b88], 0x10a4
mov ecx, dword [esp + 0x38]
mov dword [esp], eax
mov dword [esp + 4], ecx
call fcn.1000ef85
mov ecx, dword [0x10016b84]
add ecx, 0xc07
mov dword [0x10016b84], ecx
mov ecx, esp
lea edx, [esp + 0x40]
mov dword [ecx], edx
call eax
sub esp, 4
mov eax, 2
mov dword [0x10016b84], 0x1087
mov dword [esp + 0x10], eax
mov eax, dword [esp + 0x10]
lea esp, [ebp - 4]
pop esi
pop ebp
ret
Function at 0x1000ef85
Capabilities:
Parse pe header

Disassembly:
push ebp
mov ebp, esp
push esi
sub esp, 0x50
mov eax, dword [ebp + 0xc]
mov ecx, dword [ebp + 8]
xor edx, edx
mov dword [0x10016b84], 0x11ee
mov dword [0x10016b88], 0x18a3
mov dword [ebp - 0x28], eax
mov dword [ebp - 0x2c], ecx
mov dword [ebp - 0x30], edx
jmp 0x1000efbc
mov eax, dword [ebp - 0x34]
add esp, 0x50
pop esi
pop ebp
ret
mov eax, dword [ebp - 0x30]
mov cl, byte [eax + 0x100101a0]
mov dl, byte [eax + 0x10010171]
sub dl, cl
mov byte [ebp + eax - 0x24], dl
add eax, 1
cmp eax, 0xe
mov dword [ebp - 0x30], eax
je 0x1000f08f
jmp 0x1000efbc
mov eax, dword [ebp - 0x38]
mov dword [0x10016b84], 0xf37
mov ecx, esp
mov dword [ecx + 0xc], 0x40
mov dword [ecx + 8], 0x1000
mov dword [ecx + 4], 0x6000
mov dword [ecx], 0
call eax
sub esp, 0x10
mov dword [0x10016b84], 0x488
mov dword [esp], eax
mov ecx, dword [ebp - 0x28]
mov dword [esp + 4], ecx
mov dword [ebp - 0x3c], eax
call fcn.1000e852
mov eax, dword [ebp - 0x3c]
mov word [eax], 0x5a4d
mov dword [eax + 0x3c], pe_nt_image_headers32
add eax, 0xd0
mov dword [ebp - 0x40], eax
xor eax, eax
mov ecx, dword [ebp - 0x40]
mov dword [ecx], 0x4550
mov edx, dword [ebp - 0x3c]
add edx, 0xffc00000
mov dword [0x10016b88], 0x3137
mov esi, dword [ebp - 0x2c]
mov dword [esi + 0x40], edx
mov edx, dword [ebp - 0x3c]
mov dword [esi + 0x18], edx
mov dword [0x10016b84], 0x25d3
cmp edx, 0
mov dword [ebp - 0x34], eax
je 0x1000efb3
jmp 0x1000f0cb
lea eax, [ebp - 0x24]
mov dword [0x10016b84], 0x13b0
mov dword [ebp - 0x44], eax
call fcn.1000ecfe
mov dword [esp], eax
mov eax, dword [ebp - 0x44]
mov dword [esp + 4], eax
call fcn.1000ee0b
xor ecx, ecx
cmp eax, 0
mov dword [ebp - 0x38], eax
mov dword [ebp - 0x34], ecx
je 0x1000efb3
jmp 0x1000efe8
mov eax, dword [ebp - 0x3c]
add eax, 0x26be
mov ecx, dword [0x10016b88]
add ecx, 0x1ce9
mov dword [0x10016b84], ecx
mov dword [ebp - 0x34], eax
jmp 0x1000efb3
Function at 0x4058b0
Capabilities:
Query environment variable

Disassembly:
push ebp
lea ebp, [esp - 0x414]
sub esp, 0x414
push 0xfffffffffffffffe
push 0x419310
push 0x4139db
mov eax, dword fs:[0]
push eax
sub esp, 0x14
mov eax, dword [0x41c038]
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, edx
mov dword [ebp - 0x20], esi
mov dword [ebp - 4], 0
mov ecx, esi
call fcn.00402170
mov dword [ebp - 0x24], 0
mov dword [eax + 0x10], 0
cmp dword [eax + 0x14], 8
jb 0x40591d
mov eax, dword [eax]
lea edx, [ebp - 0x24]
mov ecx, eax
call fcn.00402250
mov edx, esi
call fcn.00405a00
mov bl, al
mov byte [ebp - 0x19], bl
mov dword [ebp - 4], 0xfffffffe
jmp 0x405954
test bl, bl
jne 0x4059d0
mov ecx, esi
call fcn.00402170
mov dword [ebp - 0x20], 0
mov dword [eax + 0x10], 0
cmp dword [eax + 0x14], 8
jb 0x405975
mov eax, dword [eax]
lea edx, [ebp - 0x20]
mov ecx, eax
call fcn.00402250
push 0x410
push 0
lea eax, [ebp]
push eax
call sub.VCRUNTIME140.dll_memset
add esp, 0xc
push 0x207
lea eax, [ebp]
push eax
push str.APPDATA
call dword [sym.imp.KERNEL32.dll_GetEnvironmentVariableW]
lea ecx, [ebp]
call fcn.00402220
push eax
lea eax, [ebp]
push eax
mov ecx, esi
call fcn.004034c0
mov ecx, esi
call fcn.00402170
movzx ebx, bl
mov ecx, 1
cmp dword [eax + 0x10], 0
cmovne 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.00412c8c
lea esp, [ebp + 0x414]
pop ebp
ret
mov edx, dword [esp + 4]
jmp 0x4058b0
Function at 0x405c10
Capabilities:
Query environment variable

Disassembly:
push ebp
lea ebp, [esp - 0x414]
sub esp, 0x414
push 0xfffffffffffffffe
push 0x419310
push 0x4139db
mov eax, dword fs:[0]
push eax
sub esp, 0x14
mov eax, dword [0x41c038]
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, edx
mov dword [ebp - 0x20], esi
mov dword [ebp - 4], 0
mov ecx, esi
call fcn.00402170
mov dword [ebp - 0x24], 0
mov dword [eax + 0x10], 0
cmp dword [eax + 0x14], 8
jb 0x40591d
mov eax, dword [eax]
lea edx, [ebp - 0x24]
mov ecx, eax
call fcn.00402250
mov edx, esi
call fcn.00405a00
mov bl, al
mov byte [ebp - 0x19], bl
mov dword [ebp - 4], 0xfffffffe
jmp 0x405954
test bl, bl
jne 0x4059d0
mov ecx, esi
call fcn.00402170
mov dword [ebp - 0x20], 0
mov dword [eax + 0x10], 0
cmp dword [eax + 0x14], 8
jb 0x405975
mov eax, dword [eax]
lea edx, [ebp - 0x20]
mov ecx, eax
call fcn.00402250
push 0x410
push 0
lea eax, [ebp]
push eax
call sub.VCRUNTIME140.dll_memset
add esp, 0xc
push 0x207
lea eax, [ebp]
push eax
push str.APPDATA
call dword [sym.imp.KERNEL32.dll_GetEnvironmentVariableW]
lea ecx, [ebp]
call fcn.00402220
push eax
lea eax, [ebp]
push eax
mov ecx, esi
call fcn.004034c0
mov ecx, esi
call fcn.00402170
movzx ebx, bl
mov ecx, 1
cmp dword [eax + 0x10], 0
cmovne 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.00412c8c
lea esp, [ebp + 0x414]
pop ebp
ret
mov edx, dword [esp + 4]
jmp 0x4058b0

Function at 0x405c20
Capabilities:
Check os version

Disassembly:
sub esp, 0x120
mov eax, dword [0x41c038]
xor eax, esp
mov dword [esp + 0x11c], eax
push esi
push 1
mov esi, ecx
call fcn.00412c9d
mov dword [esi], eax
push 0x118
push 0
mov byte [eax], 0
lea eax, [esp + 0x14]
push eax
call sub.VCRUNTIME140.dll_memset
add esp, 0x10
mov dword [esp + 4], 0x11c
lea eax, [esp + 4]
push eax
call dword [sym.imp.KERNEL32.dll_GetVersionExW]
test eax, eax
mov eax, esi
je 0x405c7c
cmp dword [esp + 8], 6
mov ecx, dword [esi]
setae dl
mov byte [ecx], dl
mov ecx, dword [esp + 0x120]
pop esi
xor ecx, esp
call fcn.00412c8c
add esp, 0x120
ret
Function at 0x40bfd0
Capabilities:
Check os version

Disassembly:
sub esp, 0x118
mov eax, dword [0x41c038]
xor eax, esp
mov dword [esp + 0x114], eax
push esi
mov esi, ecx
mov dword [esp + 4], 0x114
push 0x110
lea eax, [esp + 0xc]
push 0
push eax
mov dword [esi + 4], 0
mov dword [esi + 8], 0
mov dword [esi + 0xc], 0
mov dword [esi + 0x10], 0
mov dword [esi + 0x14], 0
mov dword [esi + 0x18], 0
mov dword [esi + 0x1c], 0
mov dword [esi + 0x20], 0
mov dword [esi + 0x24], 0
mov dword [esi + 0x28], 0
mov byte [esi], 0
call sub.VCRUNTIME140.dll_memset
add esp, 0xc
lea eax, [esp + 4]
push eax
call dword [sym.imp.KERNEL32.dll_GetVersionExW]
test eax, eax
mov eax, esi
je 0x40c067
cmp dword [esp + 8], 6
jb 0x40c067
mov byte [esi], 1
mov ecx, dword [esp + 0x118]
pop esi
xor ecx, esp
call fcn.00412c8c
add esp, 0x118
ret

Function at 0x40c080
Capabilities:
Link many functions at runtime

Disassembly:
push ebp
mov ebp, esp
push 0xffffffffffffffff
push 0x415540
mov eax, dword fs:[0]
push eax
sub esp, 0x34
push ebx
push esi
push edi
mov eax, dword [0x41c038]
xor eax, ebp
push eax
lea eax, [ebp - 0xc]
mov dword fs:[0], eax
mov edi, ecx
lea ecx, [ebp - 0x28]
call fcn.00402430
call fcn.00402170
lea edx, [ebp - 0x10]
mov dword [ebp - 0x10], 0
mov ecx, eax
mov dword [eax + 0x10], 0
mov dword [eax + 0x14], 7
call fcn.00402250
mov ecx, str.wintrust.dll
call fcn.00402220
push eax
push str.wintrust.dll
lea ecx, [ebp - 0x28]
call fcn.004034c0
mov dword [ebp - 4], 0
lea eax, [ebp - 0x28]
push eax
call fcn.0040cb40
mov ecx, eax
call fcn.0040cc00
mov ebx, eax
mov dword [ebp - 4], 0xffffffff
lea ecx, [ebp - 0x28]
call fcn.00402030
lea ecx, [ebp - 0x40]
call fcn.00402430
call fcn.00402170
lea edx, [ebp - 0x10]
mov dword [ebp - 0x10], 0
mov ecx, eax
mov dword [eax + 0x10], 0
mov dword [eax + 0x14], 7
call fcn.00402250
mov ecx, str.crypt32.dll
call fcn.00402220
push eax
push str.crypt32.dll
lea ecx, [ebp - 0x40]
call fcn.004034c0
mov dword [ebp - 4], 1
lea eax, [ebp - 0x40]
push eax
call fcn.0040cb40
mov ecx, eax
call fcn.0040cc00
mov esi, eax
mov dword [ebp - 0x10], esi
mov dword [ebp - 4], 0xffffffff
lea ecx, [ebp - 0x40]
call fcn.00402030
test ebx, ebx
je 0x40c203
test esi, esi
je 0x40c203
mov esi, dword [sym.imp.KERNEL32.dll_GetProcAddress]
push str.CryptCATAdminCalcHashFromFileHandle
push ebx
call esi
push str.CryptCATAdminAcquireContext
push ebx
mov dword [edi + 4], eax
call esi
push str.CryptCATAdminEnumCatalogFromHash
push ebx
mov dword [edi + 8], eax
call esi
push str.CryptCATCatalogInfoFromContext
push ebx
mov dword [edi + 0xc], eax
call esi
push str.CryptCATAdminReleaseCatalogContext
push ebx
mov dword [edi + 0x10], eax
call esi
push str.CryptCATAdminReleaseContext
push ebx
mov dword [edi + 0x14], eax
call esi
push str.WTHelperProvDataFromStateData
push ebx
mov dword [edi + 0x18], eax
call esi
push str.WTHelperGetProvSignerFromChain
push ebx
mov dword [edi + 0x1c], eax
call esi
push str.WinVerifyTrust
push ebx
mov dword [edi + 0x20], eax
call esi
push str.CertNameToStrW
push dword [ebp - 0x10]
mov dword [edi + 0x24], eax
call esi
mov dword [edi + 0x28], eax
mov ecx, dword [ebp - 0xc]
mov dword fs:[0], ecx
pop ecx
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret
Function at 0x40d610
Capabilities:
Check if file exists
Get file attributes

Disassembly:
push ebp
mov ebp, esp
push 0xffffffffffffffff
push 0x4157b8
mov eax, dword fs:[0]
push eax
sub esp, 0x20
mov eax, dword [0x41c038]
xor eax, ebp
mov dword [ebp - 0x10], eax
push ebx
push esi
push eax
lea eax, [ebp - 0xc]
mov dword fs:[0], eax
mov ebx, ecx
call fcn.00401fa0
push eax
call dword [sym.imp.KERNEL32.dll_GetFileAttributesW]
mov esi, eax
cmp esi, 0xffffffff
jne 0x40d6b2
lea ecx, [ebp - 0x28]
call fcn.00402430
call fcn.00402170
lea edx, [ebp - 0x2c]
mov dword [ebp - 0x2c], 0
mov ecx, eax
mov dword [eax + 0x10], 0
mov dword [eax + 0x14], 7
call fcn.00402250
mov dword [ebp - 4], 0
lea edx, [ebp - 0x28]
mov ecx, ebx
call fcn.0040d6d0
test al, al
je 0x40d6a1
lea ecx, [ebp - 0x28]
call fcn.00401fa0
push eax
call dword [sym.imp.KERNEL32.dll_GetFileAttributesW]
mov esi, eax
mov dword [ebp - 4], 0xffffffff
lea ecx, [ebp - 0x28]
call fcn.00402030
mov eax, esi
mov ecx, dword [ebp - 0xc]
mov dword fs:[0], ecx
pop ecx
pop esi
pop ebx
mov ecx, dword [ebp - 0x10]
xor ecx, ebp
call fcn.00412c8c
mov esp, ebp
pop ebp
ret