joyce8/EMBER2024-capa huggingface dataset:
Function at 0x456083
Capabilities:
Open clipboard
Write clipboard data

Disassembly:
push ebp
mov ebp, esp
push dword [ebp + 8]
call dword [sym.imp.USER32.dll_OpenClipboard]
test eax, eax
jne 0x456097
xor eax, eax
pop ebp
ret
call dword [sym.imp.USER32.dll_EmptyClipboard]
test eax, eax
jne 0x4560a9
call dword [sym.imp.USER32.dll_CloseClipboard]
jmp 0x456093
push esi
push dword [ebp + 0x14]
push dword [ebp + 0xc]
call dword [sym.imp.KERNEL32.dll_GlobalAlloc]
mov esi, eax
test esi, esi
jne 0x4560c4
call dword [sym.imp.USER32.dll_CloseClipboard]
jmp 0x4560fb
push esi
call dword [sym.imp.KERNEL32.dll_GlobalLock]
push dword [ebp + 0x14]
push dword [ebp + 0x10]
push eax
call fcn.00478f50
add esp, 0xc
push esi
call dword [sym.imp.KERNEL32.dll_GlobalUnlock]
push esi
push 0xd
call dword [sym.imp.USER32.dll_SetClipboardData]
call dword [sym.imp.USER32.dll_CloseClipboard]
test eax, eax
jne 0x4560ff
push esi
call dword [sym.imp.KERNEL32.dll_GlobalFree]
xor eax, eax
jmp 0x456102
xor eax, eax
inc eax
pop esi
pop ebp
ret

Function at 0x458041
Capabilities:
Log keystrokes via polling

Disassembly:
push 0x88
mov eax, 0x4c0ad2
call fcn.00435dbd
mov esi, ecx
cmp dword [esi + 0x4f0], 0
mov ebx, dword [ebp + 0x14]
je 0x458135
cmp dword [ebp + 8], 0x100
jne 0x45811b
cmp word [ebp + 0xc], 0xd
jne 0x4580b4
cmp byte [esi + 0x4f6], 0
je 0x458095
push 0x11
call dword [sym.imp.USER32.dll_GetKeyState]
test ax, ax
jns 0x4580b4
cmp byte [esi + 0x4f7], 0
jne 0x4580b4
mov ecx, dword [esi + 0x40]
test ecx, ecx
je 0x4580ad
push 0
push 0
push 0
push str.return
push esi
call fcn.0043c8a5
xor eax, eax
jmp 0x458138
cmp dword [ebp + 0xc], 0x43
jne 0x45811b
push 0x11
call dword [sym.imp.USER32.dll_GetKeyState]
test ax, ax
jns 0x45811b
lea eax, [ebp - 0x94]
mov ecx, esi
push eax
call fcn.0045687a
and dword [ebp - 4], 0
lea ecx, [ebp - 0x94]
call fcn.004388f1
lea ecx, [ebp - 0x94]
lea eax, [eax*2 + 2]
push eax
call fcn.004388e7
mov ecx, dword [esi + 0x40]
push eax
push 0x2042
call fcn.0044311d
push eax
call fcn.00456083
add esp, 0x10
lea ecx, [ebp - 0x94]
call fcn.004383aa
jmp 0x4580ad
mov eax, dword [esi + 0x4f0]
push ebx
push dword [ebp + 0x10]
mov ecx, dword [eax + 0xc]
push dword [ebp + 0xc]
push dword [ebp + 8]
mov eax, dword [ecx]
call dword [eax + 0xc]
jmp 0x458138
xor eax, eax
inc eax
call fcn.00435d67
ret 0x10
Function at 0x45867b
Capabilities:
Create directory

Disassembly:
push ebp
mov ebp, esp
sub esp, 0x414
mov eax, dword [0x4f130c]
xor eax, ebp
mov dword [ebp - 4], eax
push ebx
mov ebx, dword [ebp + 8]
push esi
mov esi, dword [ebp + 0xc]
test esi, esi
je 0x458731
movzx eax, word [esi]
test ax, ax
je 0x458731
push edi
mov edi, esi
mov ecx, esi
cmp ax, 0x2f
je 0x4586bb
cmp ax, 0x5c
jne 0x4586bd
mov edi, ecx
add ecx, 2
movzx eax, word [ecx]
test ax, ax
jne 0x4586af
cmp edi, esi
je 0x458704
sub edi, esi
lea eax, [ebp - 0x20c]
sar edi, 1
push edi
push esi
push eax
call fcn.0048592e
add edi, edi
add esp, 0xc
cmp edi, 0x208
jae 0x458741
xor eax, eax
mov word [ebp + edi - 0x20c], ax
lea eax, [ebp - 0x20c]
push eax
push ebx
call fcn.0045867b
pop ecx
pop ecx
lea eax, [ebp - 0x414]
push ebx
push eax
call fcn.0047d971
lea eax, [ebp - 0x414]
push esi
push eax
call fcn.00481430
add esp, 0x10
lea eax, [ebp - 0x414]
push 0
push eax
call dword [sym.imp.KERNEL32.dll_CreateDirectoryW]
pop edi
mov ecx, dword [ebp - 4]
pop esi
xor ecx, ebp
pop ebx
call fcn.00435d41
mov esp, ebp
pop ebp
ret
call fcn.004361f5
int3

Function at 0x458d06
Capabilities:
Get common file path

Disassembly:
push ebp
mov ebp, esp
push ecx
push edi
mov edi, ecx
cmp dword [edi], 0
jne 0x458d82
cmp dword [edi + 4], 0xffffffff
jne 0x458d82
push esi
lea esi, [edi + 0x138]
push esi
push 0x104
call dword [sym.imp.KERNEL32.dll_GetCurrentDirectoryW]
push 0x4c6da8
push esi
call fcn.00481430
cmp dword [ebp + 0x10], 1
pop ecx
pop ecx
pop esi
jne 0x458d54
push dword [ebp + 8]
call dword [sym.imp.KERNEL32.dll_GetFileType]
cmp eax, 1
je 0x458d54
mov eax, 0x2000000
jmp 0x458d87
lea eax, [ebp - 4]
push eax
push dword [ebp + 0x10]
push dword [ebp + 0xc]
push dword [ebp + 8]
call fcn.0045b221
add esp, 0x10
test eax, eax
jne 0x458d72
mov eax, dword [ebp - 4]
jmp 0x458d87
push eax
call fcn.0045b929
mov dword [edi], eax
mov eax, dword [0x4f8ec0]
pop ecx
jmp 0x458d87
mov eax, 0x1000000
pop edi
mov esp, ebp
pop ebp
ret 0xc
Function at 0x45b32e
Capabilities:
Read file on windows

Disassembly:
push ebp
mov ebp, esp
push esi
mov esi, dword [ebp + 0xc]
imul esi, dword [ebp + 0x10]
push edi
mov edi, dword [ebp + 0x14]
cmp byte [edi], 0
je 0x45b362
push 0
lea eax, [ebp + 0x10]
push eax
push esi
push dword [ebp + 8]
push dword [edi + 4]
call dword [sym.imp.KERNEL32.dll_ReadFile]
test eax, eax
jne 0x45b35d
mov byte [edi + 8], 1
mov eax, dword [ebp + 0x10]
jmp 0x45b389
mov edx, dword [edi + 0x18]
lea eax, [edx + esi]
cmp eax, dword [edi + 0x14]
jbe 0x45b372
mov esi, dword [edi + 0x14]
sub esi, edx
mov ecx, dword [edi + 0x10]
push esi
add ecx, edx
push ecx
push dword [ebp + 8]
call fcn.00478f50
add esp, 0xc
mov eax, esi
add dword [edi + 0x18], esi
xor edx, edx
div dword [ebp + 0xc]
pop edi
pop esi
pop ebp
ret

Function at 0x45b4fc
Capabilities:
Encode data using xor
Hash data with crc32

Disassembly:
push ebp
mov ebp, esp
mov edx, dword [ebp + 0xc]
test edx, edx
jne 0x45b50a
xor eax, eax
pop ebp
ret
mov ecx, dword [ebp + 8]
push esi
mov esi, dword [ebp + 0x10]
not ecx
cmp esi, 8
jb 0x45b5c9
push edi
mov edi, esi
shr edi, 3
movzx eax, byte [edx]
sub esi, 8
xor eax, ecx
shr ecx, 8
movzx eax, al
xor ecx, dword [eax*4 + 0x4cee90]
movzx eax, byte [edx + 1]
xor eax, ecx
shr ecx, 8
movzx eax, al
xor ecx, dword [eax*4 + 0x4cee90]
movzx eax, byte [edx + 2]
xor eax, ecx
shr ecx, 8
movzx eax, al
xor ecx, dword [eax*4 + 0x4cee90]
movzx eax, byte [edx + 3]
xor eax, ecx
shr ecx, 8
movzx eax, al
xor ecx, dword [eax*4 + 0x4cee90]
movzx eax, byte [edx + 4]
xor eax, ecx
shr ecx, 8
movzx eax, al
xor ecx, dword [eax*4 + 0x4cee90]
movzx eax, byte [edx + 5]
xor eax, ecx
shr ecx, 8
movzx eax, al
xor ecx, dword [eax*4 + 0x4cee90]
movzx eax, byte [edx + 6]
xor eax, ecx
shr ecx, 8
movzx eax, al
xor ecx, dword [eax*4 + 0x4cee90]
movzx eax, byte [edx + 7]
add edx, 8
xor eax, ecx
shr ecx, 8
movzx eax, al
xor ecx, dword [eax*4 + 0x4cee90]
sub edi, 1
jne 0x45b522
pop edi
test esi, esi
je 0x45b5e5
movzx eax, byte [edx]
xor eax, ecx
shr ecx, 8
movzx eax, al
xor ecx, dword [eax*4 + 0x4cee90]
inc edx
sub esi, 1
jne 0x45b5cd
not ecx
mov eax, ecx
pop esi
pop ebp
ret
Function at 0x464b1b
Capabilities:
Encrypt data using rc4 prga

Disassembly:
push ebp
mov ebp, esp
push esi
mov esi, dword [ebp + 8]
push edi
mov edi, dword [esi + 8]
and edi, 7
je 0x464b3f
cmp dword [esi + 8], edi
jge 0x464b37
push esi
call fcn.00462dbc
pop ecx
mov ecx, edi
shr dword [esi + 0xc], cl
sub dword [esi + 8], edi
mov edx, dword [esi + 8]
xor ecx, ecx
test edx, edx
jle 0x464b68
mov edi, dword [esi + 0xc]
mov al, byte [esi + 0xc]
sub edx, 8
mov byte [ebp + ecx + 8], al
inc ecx
shr edi, 8
mov dword [esi + 0xc], edi
test edx, edx
jg 0x464b4b
mov dword [esi + 8], edx
cmp ecx, 4
jge 0x464b85
mov edx, dword [esi]
cmp edx, dword [esi + 4]
jb 0x464b73
xor eax, eax
jmp 0x464b7b
mov al, byte [edx]
inc edx
mov dword [esi], edx
movzx eax, al
mov byte [ebp + ecx + 8], al
inc ecx
cmp ecx, 4
jl 0x464b6a
mov eax, dword [ebp + 8]
movzx ecx, byte [ebp + 0xb]
movzx edi, ah
movzx eax, al
shl edi, 8
add edi, eax
shl ecx, 8
movzx eax, byte [ebp + 0xa]
add ecx, eax
mov eax, edi
xor eax, 0xffff
cmp ecx, eax
je 0x464bba
push str.zlib_corrupt
call fcn.00462c77
add esp, 4
jmp 0x464bf7
mov eax, dword [esi]
add eax, edi
cmp eax, dword [esi + 4]
jbe 0x464bca
push str.read_past_buffer
jmp 0x464bb0
mov eax, dword [esi + 0x10]
add eax, edi
cmp eax, dword [esi + 0x18]
jbe 0x464be1
push edi
push esi
call fcn.00462c86
pop ecx
pop ecx
test eax, eax
je 0x464bf7
push edi
push dword [esi]
push dword [esi + 0x10]
call fcn.00478f50
add dword [esi], edi
xor eax, eax
add dword [esi + 0x10], edi
add esp, 0xc
inc eax
pop edi
pop esi
pop ebp
ret
Function at 0x46d0c2
Capabilities:
Get file size
Read file on windows

Disassembly:
push 0x2cc
mov eax, 0x4c1e54
call fcn.00435dbd
mov dword [ebp - 0x2d8], ecx
mov ebx, dword [ebp + 8]
mov dword [ebp - 0x2cc], ebx
call fcn.0043a186
push eax
lea ecx, [ebp - 0x94]
call fcn.0043826f
xor edi, edi
mov dword [ebp - 4], edi
call fcn.0043a18c
mov ecx, eax
call fcn.00438a41
test al, al
je 0x46d1b0
push ebx
lea ecx, [ebp - 0x94]
call fcn.004384ae
push edi
push 0x80
push 3
push edi
push 1
push SysReAllocStringLen
lea ecx, [ebp - 0x94]
call fcn.004388e7
push eax
call dword [sym.imp.KERNEL32.dll_CreateFileW]
mov ebx, eax
cmp ebx, 0xffffffff
jne 0x46d153
or dword [ebp - 4], 0xffffffff
lea ecx, [ebp - 0x94]
call fcn.004383aa
jmp 0x46d291
push edi
push ebx
call dword [sym.imp.KERNEL32.dll_GetFileSize]
mov esi, eax
test esi, esi
je 0x46d13f
push esi
mov dword [ebp - 0x2c8], edi
call fcn.0043674a
pop ecx
push 0
mov edi, eax
lea eax, [ebp - 0x2c8]
push eax
push esi
push edi
push ebx
call dword [sym.imp.KERNEL32.dll_ReadFile]
push ebx
call dword [sym.imp.KERNEL32.dll_CloseHandle]
cmp dword [ebp - 0x2c8], esi
je 0x46d27c
push edi
call fcn.00435e65
pop ecx
or dword [ebp - 4], 0xffffffff
lea ecx, [ebp - 0x94]
call fcn.004383aa
jmp 0x46d28f
call fcn.0043a18c
push eax
lea ecx, [ebp - 0x94]
call fcn.00438491
call fcn.0043a2bf
test al, al
je 0x46d1d1
call fcn.0043a192
jmp 0x46d1e8
push 2
push edi
lea ecx, [ebp - 0x94]
call fcn.004388e7
push eax
call fcn.00458d8e
add esp, 0xc
mov ebx, eax
test ebx, ebx
je 0x46d13f
lea eax, [ebp - 0x2c4]
push eax
lea eax, [ebp - 0x2d4]
push eax
push 1
push dword [ebp - 0x2cc]
push ebx
call fcn.004587cf
add esp, 0x14
test eax, eax
jne 0x46d13f
mov esi, dword [ebp - 0x98]
test esi, esi
je 0x46d13f
push esi
call fcn.0043674a
push 3
push esi
mov edi, eax
push edi
push dword [ebp - 0x2d4]
push ebx
call fcn.0045914e
add esp, 0x18
test eax, eax
je 0x46d26c
cmp eax, 0x600
je 0x46d26c
push edi
call fcn.00435e65
pop ecx
call fcn.0043a2bf
test al, al
jne 0x46d19c
push ebx
call fcn.00458629
jmp 0x46d19b
call fcn.0043a2bf
test al, al
jne 0x46d27c
push ebx
call fcn.00458629
pop ecx
or dword [ebp - 4], 0xffffffff
lea ecx, [ebp - 0x94]
call fcn.004383aa
test edi, edi
jne 0x46d303
xor edi, edi
push edi
push 0x80
push 3
push edi
push 1
push SysReAllocStringLen
push dword [ebp - 0x2cc]
call dword [sym.imp.KERNEL32.dll_CreateFileW]
mov ebx, eax
cmp ebx, 0xffffffff
je 0x46d2ff
push edi
push ebx
call dword [sym.imp.KERNEL32.dll_GetFileSize]
mov esi, eax
test esi, esi
je 0x46d2ff
push esi
mov dword [ebp - 0x2d0], edi
call fcn.0043674a
pop ecx
push 0
mov edi, eax
lea eax, [ebp - 0x2d0]
push eax
push esi
push edi
push ebx
call dword [sym.imp.KERNEL32.dll_ReadFile]
push ebx
call dword [sym.imp.KERNEL32.dll_CloseHandle]
cmp dword [ebp - 0x2d0], esi
je 0x46d2fb
push edi
call fcn.00435e65
pop ecx
xor edi, edi
test edi, edi
jne 0x46d303
xor eax, eax
jmp 0x46d31e
mov ecx, dword [ebp - 0x2d8]
push esi
push edi
call fcn.0046d326
push 1
push edi
mov esi, eax
call fcn.00435d33
pop ecx
pop ecx
mov eax, esi
call fcn.00435d67
ret 4
Function at 0x4741af
Capabilities:
Get file size
Read file on windows

Disassembly:
push 0x8c
mov eax, 0x4c01ff
call fcn.00435dbd
mov esi, dword [ebp + 8]
mov ebx, dword [ebp + 0xc]
call fcn.0043a186
push eax
lea ecx, [ebp - 0x94]
call fcn.0043826f
xor edi, edi
lea ecx, [ebp - 0x94]
push esi
mov dword [ebp - 4], edi
call fcn.004384ae
push edi
push 0x80
push 3
push edi
push 1
push SysReAllocStringLen
lea ecx, [ebp - 0x94]
call fcn.004388e7
push eax
call dword [sym.imp.KERNEL32.dll_CreateFileW]
mov edi, eax
cmp edi, 0xffffffff
je 0x474259
push 0
push edi
call dword [sym.imp.KERNEL32.dll_GetFileSize]
mov dword [ebx], eax
test eax, eax
je 0x474259
and dword [ebp - 0x98], 0
push eax
call fcn.0043674a
pop ecx
push 0
mov esi, eax
lea eax, [ebp - 0x98]
push eax
push dword [ebx]
push esi
push edi
call dword [sym.imp.KERNEL32.dll_ReadFile]
push edi
call dword [sym.imp.KERNEL32.dll_CloseHandle]
mov eax, dword [ebp - 0x98]
cmp eax, dword [ebx]
je 0x47425b
push esi
call fcn.00435e65
pop ecx
xor esi, esi
lea ecx, [ebp - 0x94]
call fcn.004383aa
mov eax, esi
call fcn.00435d67
ret
Function at 0x4747b6
Capabilities:
Check if file exists

Disassembly:
push 0xb0
mov eax, 0x4c2513
call fcn.00435dbd
mov edi, dword [ebp + 8]
xor ebx, ebx
mov esi, dword [ebp + 0xc]
xor eax, eax
mov dword [ebp - 0xbc], ebx
mov dword [ebp - 0x44], 7
mov dword [ebp - 0x48], ebx
mov word [ebp - 0x58], ax
cmp dword [esi + 0x14], 8
mov dword [ebp - 4], ebx
jb 0x4747f0
mov eax, dword [esi]
jmp 0x4747f2
mov eax, esi
push eax
lea eax, [ebp - 0xa0]
push eax
call fcn.00474663
pop ecx
pop ecx
cmp dword [esi + 0x14], 8
mov byte [ebp - 4], 1
jb 0x47480d
mov esi, dword [esi]
lea eax, [ebp - 0x40]
push esi
push eax
call fcn.004744ca
cmp dword [ebp - 0x2c], 8
lea eax, [ebp - 0x40]
mov byte [ebp - 4], 2
cmovae eax, dword [ebp - 0x40]
push eax
lea eax, [ebp - 0x88]
push eax
call fcn.00474366
cmp dword [ebp - 0x2c], 8
lea eax, [ebp - 0x40]
mov byte [ebp - 4], 3
cmovae eax, dword [ebp - 0x40]
push eax
lea eax, [ebp - 0x70]
push eax
call fcn.0047441b
add esp, 0x18
xor eax, eax
mov dword [ebp - 0x14], 7
mov dword [ebp - 0x18], ebx
mov word [ebp - 0x28], ax
xor esi, esi
mov byte [ebp - 4], 5
inc esi
push 0xffffffffffffffff
push ebx
lea eax, [ebp - 0xa0]
push eax
lea ecx, [ebp - 0x28]
call fcn.004023a4
push 0xffffffffffffffff
push ebx
lea eax, [ebp - 0x88]
push eax
lea ecx, [ebp - 0x28]
call fcn.00427195
push 0x4d4110
call fcn.0047d993
pop ecx
push eax
push 0x4d4110
lea ecx, [ebp - 0x28]
call fcn.00427234
mov eax, esi
cdq
push edx
push eax
lea eax, [ebp - 0xb8]
push eax
call fcn.00475c7d
add esp, 0xc
push 0xffffffffffffffff
push ebx
push eax
lea ecx, [ebp - 0x28]
mov byte [ebp - 4], 6
call fcn.00427195
push ebx
push 1
lea ecx, [ebp - 0xb8]
mov byte [ebp - 4], 5
call fcn.0040230d
push 0x4d4114
call fcn.0047d993
pop ecx
push eax
push 0x4d4114
lea ecx, [ebp - 0x28]
call fcn.00427234
push 0xffffffffffffffff
push ebx
lea eax, [ebp - 0x70]
push eax
lea ecx, [ebp - 0x28]
call fcn.00427195
cmp dword [ebp - 0x14], 8
lea eax, [ebp - 0x28]
cmovae eax, dword [ebp - 0x28]
push eax
call dword [sym.imp.SHLWAPI.dll_PathFileExistsW]
test eax, eax
je 0x474929
inc esi
cmp esi, 0x3e8
jl 0x474866
lea eax, [ebp - 0x58]
jmp 0x47492c
lea eax, [ebp - 0x28]
push eax
mov ecx, edi
call fcn.00427356
xor esi, esi
lea ecx, [ebp - 0x28]
push ebx
inc esi
push esi
call fcn.0040230d
push ebx
push esi
lea ecx, [ebp - 0x70]
call fcn.0040230d
push ebx
push esi
lea ecx, [ebp - 0x88]
call fcn.0040230d
push ebx
push esi
lea ecx, [ebp - 0x40]
call fcn.0040230d
push ebx
push esi
lea ecx, [ebp - 0xa0]
call fcn.0040230d
push ebx
push esi
lea ecx, [ebp - 0x58]
call fcn.0040230d
mov eax, edi
call fcn.00435d67
ret
Function at 0x4760d2
Capabilities:
Check if file exists
Create directory

Disassembly:
push ebp
mov ebp, esp
sub esp, 0xc
push ebx
push esi
push edi
push dword [ebp + 8]
call fcn.0047d993
mov dword [ebp - 8], eax
xor ecx, ecx
push 2
inc eax
pop edx
mul edx
seto cl
neg ecx
or ecx, eax
push ecx
call fcn.0043674a
push dword [ebp + 8]
mov edi, eax
push edi
mov dword [ebp - 4], edi
call fcn.0047d971
add esp, 0x10
call fcn.004780b5
test al, al
je 0x476135
pop ecx
pop edx
push esi
pop edx
push ebx
push esp
pop esp
push edi
pop esp
pop esi
push ecx
pop esp
pop ebp
pop eax
push edx
pop edi
pop esp
pop ecx
push ebx
pop edi
push ebp
pop edi
pop edx
push esi
push ecx
pop ebp
pop eax
pop ecx
push esi
mov edi, dword [ebp - 4]
mov eax, dword [ebp - 8]
xor esi, esi
xor ebx, ebx
inc esi
mov dword [ebp - 0xc], ebx
test eax, eax
js 0x4761aa
cmp word [edi + ebx*2], 0x5c
jne 0x47619f
call fcn.00478184
test al, al
je 0x476177
pop eax
push esp
pop ebx
push ebx
pop eax
pop ebp
pop edi
pop ebx
push ebp
pop eax
push ecx
push edi
push eax
push edi
pop esi
pop ebx
pop esi
push ecx
pop esi
pop ecx
pop ecx
pop ebx
pop eax
push ebp
pop eax
push ecx
pop esp
pop ebx
push edx
mov ebx, dword [ebp - 0xc]
mov edi, dword [ebp - 4]
movzx esi, word [edi + ebx*2]
xor eax, eax
push edi
mov word [edi + ebx*2], ax
call dword [sym.imp.SHLWAPI.dll_PathFileExistsW]
test eax, eax
jne 0x476198
push eax
push edi
call dword [sym.imp.KERNEL32.dll_CreateDirectoryW]
test eax, eax
je 0x4761ba
mov eax, dword [ebp - 8]
mov word [edi + ebx*2], si
inc ebx
mov dword [ebp - 0xc], ebx
cmp ebx, eax
jle 0x476144
xor esi, esi
inc esi
push edi
call fcn.00435e65
pop ecx
pop edi
mov eax, esi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret
xor esi, esi
jmp 0x4761aa

Function at 0x4761be
Capabilities:
Get common file path

Disassembly:
push ebp
mov ebp, esp
sub esp, 0x214
mov eax, dword [0x4f130c]
xor eax, ebp
mov dword [ebp - 4], eax
push ebx
mov ebx, dword [ebp + 8]
lea eax, [ebp - 0x20c]
push esi
push edi
xor esi, esi
mov dword [ebp - 0x210], ebx
push 0x208
push esi
push eax
mov dword [ebp - 0x214], esi
call fcn.00479e90
add esp, 0xc
lea eax, [ebp - 0x20c]
push esi
push 0x1a
push eax
push esi
call dword [sym.imp.SHELL32.dll_SHGetSpecialFolderPathW]
call fcn.00478184
test al, al
je 0x476237
pop eax
push esp
pop ebx
push ebx
pop eax
pop ebp
pop edi
pop ebx
push ebp
pop eax
push ecx
push edi
push eax
push edi
pop esi
pop ebx
pop esi
push ecx
pop esi
pop ecx
pop ecx
pop ebx
pop eax
push ebp
pop eax
push ecx
pop esp
pop ebx
push edx
mov ebx, dword [ebp - 0x210]
lea eax, [ebp - 0x20c]
mov ecx, ebx
push eax
call fcn.00401dcf
mov ecx, dword [ebp - 4]
mov eax, ebx
pop edi
pop esi
xor ecx, ebp
pop ebx
call fcn.00435d41
mov esp, ebp
pop ebp
ret
Function at 0x476348
Capabilities:
Get common file path
Get program files directory

Disassembly:
push ebp
mov ebp, esp
sub esp, 0x210
mov eax, dword [0x4f130c]
xor eax, ebp
mov dword [ebp - 4], eax
push ebx
push esi
push edi
mov edi, dword [ebp + 8]
lea eax, [ebp - 0x20c]
xor esi, esi
push 0x208
push esi
push eax
mov dword [ebp - 0x210], esi
call fcn.00479e90
add esp, 0xc
lea eax, [ebp - 0x20c]
push esi
push 0x26
push eax
push esi
call dword [sym.imp.SHELL32.dll_SHGetSpecialFolderPathW]
call fcn.00477cef
test al, al
je 0x4763b8
push ecx
push edi
push ebp
push ebx
pop ebx
pop ebp
pop ecx
push edi
push ecx
pop esi
push esp
pop edx
push edi
push ebp
pop ebp
push ebx
pop ebp
pop esi
push ebp
pop ebx
push ecx
push esp
pop ecx
push ebx
push ebx
pop esi
pop esi
pop edx
pop ebx
push ebx
pop ebp
push ecx
lea eax, [ebp - 0x20c]
mov ecx, edi
push eax
call fcn.00401dcf
mov ecx, dword [ebp - 4]
mov eax, edi
pop edi
pop esi
xor ecx, ebp
pop ebx
call fcn.00435d41
mov esp, ebp
pop ebp
ret

Function at 0x4763d9
Capabilities:
Get common file path

Disassembly:
push ebp
mov ebp, esp
sub esp, 0x210
mov eax, dword [0x4f130c]
xor eax, ebp
mov dword [ebp - 4], eax
and dword [ebp - 0x210], 0
lea eax, [ebp - 0x20c]
push ebx
push esi
push edi
mov edi, dword [ebp + 8]
push 0x208
push 0
push eax
call fcn.00479e90
add esp, 0xc
lea eax, [ebp - 0x20c]
push eax
push 0x104
call dword [sym.imp.KERNEL32.dll_GetTempPathW]
call fcn.00477cef
test al, al
je 0x47644a
push ecx
push edi
push ebp
push ebx
pop ebx
pop ebp
pop ecx
push edi
push ecx
pop esi
push esp
pop edx
push edi
push ebp
pop ebp
push ebx
pop ebp
pop esi
push ebp
pop ebx
push ecx
push esp
pop ecx
push ebx
push ebx
pop esi
pop esi
pop edx
pop ebx
push ebx
pop ebp
push ecx
lea eax, [ebp - 0x20c]
mov ecx, edi
push eax
call fcn.00401dcf
mov ecx, dword [ebp - 4]
mov eax, edi
pop edi
pop esi
xor ecx, ebp
pop ebx
call fcn.00435d41
mov esp, ebp
pop ebp
ret
Function at 0x47646b
Capabilities:
Create process on windows
Get common file path

Disassembly:
push ebp
mov ebp, esp
sub esp, 0x24c
mov eax, dword [0x4f130c]
xor eax, ebp
mov dword [ebp - 4], eax
push ebx
push esi
mov esi, dword [ebp + 8]
push edi
push esi
mov dword [ebp - 0x210], esi
call fcn.0047d993
pop ecx
test eax, eax
je 0x476584
call fcn.0047813f
test al, al
je 0x4764c2
push edx
pop ebp
push ebp
pop esp
push esp
push esp
push edx
push edi
push esp
push edx
push ecx
pop edi
pop ecx
push eax
pop ecx
push edi
push ebp
pop esp
push esp
push edx
push ecx
push edx
pop eax
push edi
pop esp
push eax
push ebx
push eax
push esp
pop ecx
push ecx
pop ebx
push 0x104
lea eax, [ebp - 0x20c]
push eax
call dword [sym.imp.KERNEL32.dll_GetWindowsDirectoryW]
lea eax, [ebp - 0x200]
push str.Program_FilesInternet_Exploreriexplore.exe
push eax
call fcn.0047d971
lea eax, [ebp - 0x20c]
push esi
push eax
call fcn.00481430
push 0x3c
xor ebx, ebx
lea eax, [ebp - 0x24c]
push ebx
push eax
call fcn.00479e90
add esp, 0x1c
mov dword [ebp - 0x240], str.open
mov dword [ebp - 0x248], 0x200
mov dword [ebp - 0x238], esi
mov dword [ebp - 0x230], 1
call fcn.00477cef
test al, al
je 0x476558
pop edi
push esp
push eax
pop edx
pop ebx
pop esi
pop ebp
pop ebp
push ecx
push eax
push eax
pop esp
pop esp
push ebp
pop esi
push esi
push esp
push esi
push ebx
pop esp
push edx
pop ebp
pop edx
pop ebp
push esp
pop edx
pop ecx
push edi
push eax
mov esi, dword [ebp - 0x210]
xor ebx, ebx
push 1
push ebx
push ebx
push esi
push str.open
push ebx
call dword [sym.imp.SHELL32.dll_ShellExecuteW]
cmp eax, 0x20
ja 0x476581
push ebx
push ebx
push ebx
lea ecx, [ebp - 0x20c]
push ebx
push ecx
call fcn.00475dd7
add esp, 0x14
xor eax, eax
inc eax
mov ecx, dword [ebp - 4]
pop edi
pop esi
xor ecx, ebp
pop ebx
call fcn.00435d41
mov esp, ebp
pop ebp
ret
Function at 0x47856d
Capabilities:
Check if file exists
Write file on windows

Disassembly:
push ebp
mov ebp, esp
mov eax, 0x1018
call fcn.00436cf0
mov eax, dword [0x4f130c]
xor eax, ebp
mov dword [ebp - 4], eax
mov eax, dword [ebp + 8]
push ebx
push esi
push edi
mov edi, dword [ebp + 0xc]
xor ebx, ebx
push ebx
mov dword [ebp - 0x1008], eax
call fcn.00486542
mov dword [ebp - 0x1018], eax
lea eax, [ebp - 0x1018]
push eax
mov dword [ebp - 0x1014], edx
call fcn.0048680e
pop ecx
pop ecx
mov esi, eax
call dword [sym.imp.KERNEL32.dll_GetCurrentProcessId]
mov ecx, dword [esi + 0x10]
push edi
push eax
push dword [esi]
mov eax, dword [esi + 0x14]
inc ecx
push dword [esi + 4]
add eax, 0x76c
push dword [esi + 8]
push dword [esi + 0xc]
push ecx
push eax
lea eax, [ebp - 0x1004]
push str.__d__d__d__d__d__d___d_:_s
push eax
call fcn.004783ac
add esp, 0x28
call fcn.00478184
test al, al
je 0x47860a
pop ecx
pop ebx
push edi
pop eax
pop ebx
pop edi
push eax
push ebx
push edi
push ebx
push eax
push edi
pop ecx
push ebx
pop eax
pop eax
push ebx
pop edi
push ebx
xor ebx, ebx
push dword [ebp - 0x1008]
call dword [sym.imp.SHLWAPI.dll_PathFileExistsW]
xor esi, esi
inc esi
test eax, eax
cmovne ebx, esi
call fcn.004780b5
test al, al
je 0x478647
pop ecx
pop edx
push esi
pop edx
push ebx
push esp
pop esp
push edi
pop esp
pop esi
push ecx
pop esp
pop ebp
pop eax
push edx
pop edi
pop esp
pop ecx
push ebx
pop edi
push ebp
pop edi
pop edx
push esi
push ecx
pop ebp
pop eax
pop ecx
push esi
xor esi, esi
inc esi
push 0x4c9768
push dword [ebp - 0x1008]
call fcn.00482cba
mov dword [ebp - 0x1010], eax
pop ecx
pop ecx
test eax, eax
je 0x478746
test ebx, ebx
jne 0x478688
push eax
push 2
lea eax, [ebp - 0x100c]
mov dword [ebp - 0x100c], 0xfeff
push esi
push eax
call fcn.0048128c
add esp, 0x10
call fcn.004780fa
test al, al
je 0x4786a3
pop esi
push esi
pop ebx
push ebx
push ecx
push ecx
push esi
pop eax
push eax
pop esi
push esi
push esp
push esp
pop edx
pop eax
pop eax
push ebx
pop esi
call fcn.00478253
test al, al
je 0x4786c7
pop edx
push edx
pop ebx
push edi
push ebp
pop edi
push ebp
push edx
push eax
pop esi
push esp
pop ebp
push esi
pop ebx
push esi
pop ebp
push edx
push esp
push eax
pop edx
pop eax
pop edi
pop eax
pop ecx
push esp
pop ecx
pop esp
call fcn.00477f5c
test al, al
je 0x4786e3
pop eax
pop ebp
pop edi
push eax
push edx
pop ebp
pop ebx
pop esi
pop esi
pop ecx
push eax
push ecx
push edx
pop ebp
pop edx
push edx
pop ebx
pop edi
push ecx
lea eax, [ebp - 0x1004]
push eax
call fcn.0047d993
mov esi, dword [ebp - 0x1010]
add eax, eax
push esi
push eax
lea eax, [ebp - 0x1004]
push 1
push eax
call fcn.0048128c
push esi
push 2
lea eax, [ebp - 0x1008]
mov dword [ebp - 0x1008], 0xd
push 1
push eax
call fcn.0048128c
push esi
push 2
lea eax, [ebp - 0x1008]
mov dword [ebp - 0x1008], 0xa
push 1
push eax
call fcn.0048128c
push esi
call fcn.00480e46
add esp, 0x38
mov ecx, dword [ebp - 4]
pop edi
pop esi
xor ecx, ebp
pop ebx
call fcn.00435d41
mov esp, ebp
pop ebp
ret

Function at 0x48dbbc
Capabilities:
Set environment variable

Disassembly:
mov edi, edi
push ebp
mov ebp, esp
pop ebp
jmp fcn.0048d87c