joyce8/EMBER2024-capa huggingface dataset:
Function at 0x410b80
Capabilities:
Delete file

Disassembly:
sub esp, 8
push ebx
push ebp
mov ebp, dword [esp + 0x14]
push esi
push edi
test ebp, ebp
je 0x410c1f
mov eax, ebp
lea edx, [eax + 2]
jmp 0x410ba0
mov cx, word [eax]
add eax, 2
test cx, cx
jne 0x410ba0
sub eax, edx
sar eax, 1
dec eax
cmp eax, 0x103
ja 0x410c1f
push 0x214
call fcn.004a8876
mov edi, eax
push ebp
lea eax, [edi + 0xc]
push 0x104
push eax
mov dword [edi], 0x214
mov dword [edi + 4], 1
mov dword [edi + 8], eax
call fcn.004a8254
xor eax, eax
lea ebx, [esp + 0x20]
mov dword [esp + 0x20], eax
mov dword [esp + 0x24], eax
call fcn.00410ad0
push edi
mov esi, eax
call fcn.004a6d91
add esp, 0x14
test esi, esi
jne 0x410c13
push ebp
call dword [sym.imp.KERNEL32.dll_DeleteFileW]
pop edi
pop esi
pop ebp
pop ebx
add esp, 8
ret
mov eax, dword [esp + 0x10]
pop edi
pop esi
pop ebp
pop ebx
add esp, 8
ret
pop edi
pop esi
pop ebp
xor eax, eax
pop ebx
add esp, 8
ret

Function at 0x410c30
Capabilities:
Write file on windows

Disassembly:
sub esp, 8
push ebx
mov ebx, dword [esp + 0x10]
push ebp
mov ebp, dword [esp + 0x1c]
push esi
push edi
test ebx, ebx
je 0x410d4c
cmp ebp, 0x1000
ja 0x410d4c
mov eax, ebx
lea edx, [eax + 2]
jmp 0x410c60
mov cx, word [eax]
add eax, 2
test cx, cx
jne 0x410c60
sub eax, edx
sar eax, 1
dec eax
cmp eax, 0x103
ja 0x410d4c
push 0x121c
call fcn.004a8876
mov edi, eax
push ebx
lea esi, [edi + 0xc]
push 0x104
push esi
mov dword [edi], 0x121c
mov dword [edi + 4], 5
mov dword [edi + 8], esi
call fcn.004a8254
mov eax, dword [esp + 0x30]
push ebp
push eax
lea ecx, [esi + 0x210]
push 0x1000
push ecx
call fcn.004a6868
xor eax, eax
mov dword [esi + 0x208], 4
mov dword [esi + 0x20c], ebp
lea ebx, [esp + 0x30]
mov dword [esp + 0x30], eax
mov dword [esp + 0x34], eax
call fcn.00410ad0
push edi
mov esi, eax
call fcn.004a6d91
add esp, 0x24
test esi, esi
jne 0x410d3f
mov edx, dword [esp + 0x1c]
push esi
push 0x80
push 4
push esi
push 3
push 0x10000000
push edx
call dword [sym.imp.KERNEL32.dll_CreateFileW]
mov esi, eax
test esi, esi
je 0x410d4c
mov ecx, dword [esp + 0x20]
push 0
lea eax, [esp + 0x20]
push eax
push ebp
push ecx
push esi
mov dword [esp + 0x30], 0
call dword [sym.imp.KERNEL32.dll_WriteFile]
push esi
mov edi, eax
call dword [sym.imp.KERNEL32.dll_CloseHandle]
test edi, edi
je 0x410d4c
cmp ebp, dword [esp + 0x1c]
jne 0x410d4c
mov eax, 1
pop edi
pop esi
pop ebp
pop ebx
add esp, 8
ret
pop edi
pop esi
pop ebp
xor eax, eax
pop ebx
add esp, 8
ret
Function at 0x410d60
Capabilities:
Set registry value

Disassembly:
sub esp, 8
push ebx
push ebp
mov ebp, dword [esp + 0x14]
push esi
push edi
test ebp, ebp
je 0x410ea4
mov eax, str.SoftwareBkav_CorporationHomeVN
lea edx, [eax + 2]
jmp 0x410d80
mov cx, word [eax]
add eax, 2
test cx, cx
jne 0x410d80
sub eax, edx
sar eax, 1
mov edx, eax
mov eax, ebp
lea esi, [eax + 2]
mov cx, word [eax]
add eax, 2
test cx, cx
jne 0x410d96
sub eax, esi
sar eax, 1
test edx, edx
je 0x410ea4
cmp edx, 0x104
jg 0x410ea4
cmp eax, 0x104
jg 0x410ea4
push 0x82c
call fcn.004a8876
mov edi, eax
lea esi, [edi + 0xc]
push str.SoftwareBkav_CorporationHomeVN
lea ebx, [esi + 4]
push 0x104
mov dword [edi], 0x82c
mov dword [edi + 4], 6
mov dword [edi + 8], esi
push ebx
mov dword [esi], reloc.OLEAUT32.dll_SysReAllocString
call fcn.004a8254
push ebp
lea eax, [esi + 0x20c]
push 0x104
push eax
call fcn.004a8254
mov ecx, dword [esp + 0x3c]
push 4
push ecx
lea edx, [esi + 0x418]
push 0x400
push edx
call fcn.004a6868
mov byte [ebx + 0x418], 0
mov byte [ebx + 0x419], 0
mov eax, 4
mov dword [esi + 0x818], eax
mov dword [esi + 0x414], eax
mov eax, dword [esp + 0x50]
mov dword [esi + 0x81c], eax
xor eax, eax
lea ebx, [esp + 0x3c]
mov dword [esp + 0x3c], eax
mov dword [esp + 0x40], eax
call fcn.00410ad0
push edi
mov esi, eax
call fcn.004a6d91
add esp, 0x30
test esi, esi
jne 0x410e98
mov ecx, dword [esp + 0x20]
push 4
push ecx
push 4
push ebp
push str.SoftwareBkav_CorporationHomeVN
push reloc.OLEAUT32.dll_SysReAllocString
call dword [sym.imp.SHLWAPI.dll_SHSetValueW]
neg eax
sbb eax, eax
inc eax
pop edi
pop esi
pop ebp
pop ebx
add esp, 8
ret
mov eax, dword [esp + 0x10]
pop edi
pop esi
pop ebp
pop ebx
add esp, 8
ret
pop edi
pop esi
pop ebp
xor eax, eax
pop ebx
add esp, 8
ret

Function at 0x410eb0
Capabilities:
Move file

Disassembly:
sub esp, 0xc
push ebx
push ebp
mov ebp, dword [esp + 0x1c]
push esi
push edi
test ebp, ebp
je 0x410f4a
mov ebx, dword [esp + 0x20]
test ebx, ebx
je 0x410f4a
push 0x41c
call fcn.004a8876
mov edi, eax
push ebx
lea esi, [edi + 0xc]
push 0x104
push esi
mov dword [edi], 0x41c
mov dword [edi + 4], 0xb
mov dword [edi + 8], esi
call fcn.004a8254
push ebp
push 0x104
add esi, 0x208
push esi
call fcn.004a8254
xor eax, eax
lea ebx, [esp + 0x2c]
mov dword [esp + 0x2c], eax
mov dword [esp + 0x30], eax
call fcn.00410ad0
push edi
mov esi, eax
call fcn.004a6d91
add esp, 0x20
test esi, esi
jne 0x410f3e
mov eax, dword [esp + 0x20]
push ebp
push eax
call dword [sym.imp.KERNEL32.dll_MoveFileW]
pop edi
pop esi
pop ebp
pop ebx
add esp, 0xc
ret
mov eax, dword [esp + 0x10]
pop edi
pop esi
pop ebp
pop ebx
add esp, 0xc
ret
pop edi
pop esi
pop ebp
xor eax, eax
pop ebx
add esp, 0xc
ret
Function at 0x410f60
Capabilities:
Copy file

Disassembly:
sub esp, 0xc
push ebx
push ebp
mov ebp, dword [esp + 0x1c]
push esi
push edi
test ebp, ebp
je 0x41100a
mov ebx, dword [esp + 0x20]
test ebx, ebx
je 0x41100a
push 0x420
call fcn.004a8876
mov edi, eax
push ebx
lea esi, [edi + 0xc]
push 0x104
push esi
mov dword [edi], 0x420
mov dword [edi + 4], 0xc
mov dword [edi + 8], esi
call fcn.004a8254
push ebp
lea eax, [esi + 0x208]
push 0x104
push eax
call fcn.004a8254
xor eax, eax
mov dword [esi + 0x410], 1
lea ebx, [esp + 0x2c]
mov dword [esp + 0x2c], eax
mov dword [esp + 0x30], eax
call fcn.00410ad0
push edi
mov esi, eax
call fcn.004a6d91
add esp, 0x20
test esi, esi
jne 0x410ffe
mov ecx, dword [esp + 0x20]
push 1
push ebp
push ecx
call dword [sym.imp.KERNEL32.dll_CopyFileW]
pop edi
pop esi
pop ebp
pop ebx
add esp, 0xc
ret
mov eax, dword [esp + 0x10]
pop edi
pop esi
pop ebp
pop ebx
add esp, 0xc
ret
pop edi
pop esi
pop ebp
xor eax, eax
pop ebx
add esp, 0xc
ret
Function at 0x411460
Capabilities:
Get common file path

Disassembly:
push 0xffffffffffffffff
push 0x4c3b12
mov eax, dword fs:[0]
push eax
sub esp, 0x218
mov eax, dword [0x4e5d60]
xor eax, esp
mov dword [esp + 0x214], eax
mov eax, dword [0x4e5d60]
xor eax, esp
push eax
lea eax, [esp + 0x21c]
mov dword fs:[0], eax
mov dword [esp + 0x224], 0
mov dword [esp + 0xc], esi
mov dword [esp + 8], 0
call fcn.004990cf
xor ecx, ecx
test eax, eax
setne cl
test ecx, ecx
jne 0x4114c8
push 0x80004005
call fcn.0040f160
mov edx, dword [eax]
mov ecx, eax
mov eax, dword [edx + 0xc]
call eax
add eax, 0x10
mov dword [esi], eax
mov edx, dword [esp + 0x22c]
lea ecx, [esp + 4]
push ecx
push edx
mov dword [esp + 0x22c], 0
push 0
mov dword [esp + 0x14], 1
call dword [sym.imp.SHELL32.dll_SHGetSpecialFolderLocation]
test eax, eax
jl 0x41153c
mov ecx, dword [esp + 4]
lea eax, [esp + 0x10]
push eax
push ecx
call dword [sym.imp.SHELL32.dll_SHGetPathFromIDListW]
test eax, eax
je 0x41153c
lea eax, [esp + 0x10]
lea edx, [eax + 2]
lea ecx, [ecx]
mov cx, word [eax]
add eax, 2
test cx, cx
jne 0x411520
sub eax, edx
sar eax, 1
push eax
lea edx, [esp + 0x14]
push edx
mov ecx, esi
call fcn.0040f1b0
mov eax, esi
mov ecx, dword [esp + 0x21c]
mov dword fs:[0], ecx
pop ecx
mov ecx, dword [esp + 0x214]
xor ecx, esp
call fcn.004a6859
add esp, 0x224
ret

Function at 0x411bf0
Capabilities:
Create process on windows

Disassembly:
sub esp, 0x58
push esi
push edi
push 0x44
lea eax, [esp + 0x1c]
push 0
push eax
call fcn.004aaf30
add esp, 0xc
xor eax, eax
lea ecx, [esp + 8]
push ecx
lea edx, [esp + 0x1c]
push edx
push eax
push eax
push 8
push eax
push eax
push eax
mov dword [esp + 0x28], eax
mov dword [esp + 0x2c], eax
mov dword [esp + 0x30], eax
mov dword [esp + 0x34], eax
mov eax, dword [esp + 0x84]
push eax
push 0
mov dword [esp + 0x40], 0x44
call dword [sym.imp.KERNEL32.dll_CreateProcessW]
mov ecx, dword [esp + 8]
mov edi, dword [sym.imp.KERNEL32.dll_CloseHandle]
push ecx
mov esi, eax
call edi
mov edx, dword [esp + 0xc]
push edx
call edi
pop edi
mov eax, esi
pop esi
add esp, 0x58
ret
Function at 0x411c60
Capabilities:
Get disk information

Disassembly:
push ecx
push ebx
push ebp
mov ebp, dword [esp + 0x10]
push esi
push edi
push 0x20a
mov dword [esp + 0x14], 0x105
call fcn.00498c53
mov ebx, eax
add esp, 4
test ebx, ebx
je 0x411cc7
mov edi, dword [sym.imp.KERNEL32.dll_GetVolumePathNamesForVolumeNameW]
mov esi, dword [sym.imp.KERNEL32.dll_GetLastError]
mov ecx, dword [esp + 0x10]
lea eax, [esp + 0x10]
push eax
push ecx
push ebx
push ebp
call edi
test eax, eax
jne 0x411ccf
call esi
cmp eax, 0xea
jne 0x411d1a
push ebx
call fcn.00498c5e
mov edx, dword [esp + 0x14]
lea eax, [edx + edx]
push eax
call fcn.00498c53
mov ebx, eax
add esp, 8
test ebx, ebx
jne 0x411c90
pop edi
pop esi
pop ebp
xor eax, eax
pop ebx
pop ecx
ret
cmp word [ebx], 0
mov edi, ebx
je 0x411d1a
mov eax, edi
lea edx, [eax + 2]
lea esp, [esp]
mov cx, word [eax]
add eax, 2
test cx, cx
jne 0x411ce0
mov esi, dword [esp + 0x1c]
sub eax, edx
sar eax, 1
push eax
mov eax, edi
call fcn.0040cb10
mov eax, edi
lea edx, [eax + 2]
mov cx, word [eax]
add eax, 2
test cx, cx
jne 0x411d00
sub eax, edx
sar eax, 1
cmp word [edi + eax*2 + 2], cx
lea edi, [edi + eax*2 + 2]
jne 0x411cd7
test ebx, ebx
je 0x411d27
push ebx
call fcn.00498c5e
add esp, 4
pop edi
pop esi
pop ebp
mov eax, 1
pop ebx
pop ecx
ret
Function at 0x411d40
Capabilities:
Enumerate disk volumes
Get disk information

Disassembly:
sub esp, 0x420
mov eax, dword [0x4e5d60]
xor eax, esp
mov dword [esp + 0x41c], eax
mov eax, dword [esp + 0x424]
push ebx
xor edx, edx
push 0x206
mov dword [esp + 0x10], eax
push edx
lea eax, [esp + 0x222]
push eax
mov dword [esp + 0x14], ecx
mov dword [esp + 0x10], 0
mov word [esp + 0x224], dx
call fcn.004aaf30
xor ecx, ecx
push 0x206
push ecx
lea edx, [esp + 0x26]
push edx
mov word [esp + 0x28], cx
call fcn.004aaf30
add esp, 0x18
push 0x104
lea eax, [esp + 0x14]
push eax
call dword [sym.imp.KERNEL32.dll_FindFirstVolumeW]
mov ebx, eax
cmp ebx, 0xffffffff
jne 0x411dd2
xor eax, eax
pop ebx
mov ecx, dword [esp + 0x41c]
xor ecx, esp
call fcn.004a6859
add esp, 0x420
ret
lea eax, [esp + 0x10]
lea edx, [eax + 2]
lea esp, [esp]
mov cx, word [eax]
add eax, 2
test cx, cx
jne 0x411de0
sub eax, edx
sar eax, 1
push edi
mov edi, 0x5c
dec eax
cmp word [esp + 0x14], di
jne 0x411edd
push ebp
mov ebp, dword [sym.imp.KERNEL32.dll_QueryDosDeviceW]
push esi
lea esp, [esp]
cmp word [esp + 0x1e], di
jne 0x411edb
cmp word [esp + 0x20], 0x3f
jne 0x411edb
cmp word [esp + 0x22], di
jne 0x411edb
cmp word [esp + eax*2 + 0x1c], di
lea esi, [esp + eax*2 + 0x1c]
jne 0x411edb
push 0x104
lea edx, [esp + 0x228]
push edx
lea eax, [esp + 0x2c]
xor ecx, ecx
push eax
mov word [esi], cx
call ebp
mov ecx, edi
mov word [esi], cx
test eax, eax
je 0x411edb
mov eax, dword [esp + 0x18]
lea edx, [esp + 0x224]
push edx
push eax
call fcn.004a6c9d
add esp, 8
test eax, eax
je 0x411ebd
push 0x104
lea ecx, [esp + 0x20]
push ecx
push ebx
call dword [sym.imp.KERNEL32.dll_FindNextVolumeW]
test eax, eax
je 0x411ed5
lea eax, [esp + 0x1c]
lea edx, [eax + 2]
jmp 0x411ea0
mov cx, word [eax]
add eax, 2
test cx, cx
jne 0x411ea0
sub eax, edx
sar eax, 1
dec eax
cmp word [esp + 0x1c], di
je 0x411e10
jmp 0x411edb
mov edx, dword [esp + 0x14]
push edx
lea eax, [esp + 0x20]
push eax
call fcn.00411c60
add esp, 8
mov dword [esp + 0x10], eax
jmp 0x411edb
call dword [sym.imp.KERNEL32.dll_GetLastError]
pop esi
pop ebp
push ebx
call dword [sym.imp.KERNEL32.dll_FindVolumeClose]
mov ecx, dword [esp + 0x424]
mov eax, dword [esp + 8]
pop edi
pop ebx
xor ecx, esp
call fcn.004a6859
add esp, 0x420
ret
Function at 0x4121a0
Capabilities:
Enumerate processes

Disassembly:
push 0xffffffffffffffff
push 0x4c4c8b
mov eax, dword fs:[0]
push eax
sub esp, 0x250
mov eax, dword [0x4e5d60]
xor eax, esp
mov dword [esp + 0x24c], eax
push ebx
push ebp
push esi
push edi
mov eax, dword [0x4e5d60]
xor eax, esp
push eax
lea eax, [esp + 0x264]
mov dword fs:[0], eax
mov ebp, dword [esp + 0x274]
push 0x228
xor esi, esi
lea eax, [esp + 0x3c]
push esi
push eax
mov edi, ecx
mov dword [esp + 0x40], 0x22c
call fcn.004aaf30
add esp, 0xc
push esi
push 0xf
call sub.KERNEL32.dll_CreateToolhelp32Snapshot
mov ebx, eax
cmp ebx, 0xffffffff
jne 0x412217
xor eax, eax
jmp 0x4122f1
lea ecx, [esp + 0x34]
push ecx
push ebx
call sub.KERNEL32.dll_Process32FirstW
test eax, eax
je 0x4122e8
lea ebx, [ebx]
lea edx, [esp + 0x58]
push edx
push ebp
call fcn.004a6c9d
add esp, 8
test eax, eax
je 0x412256
lea eax, [esp + 0x34]
push eax
push ebx
call sub.KERNEL32.dll_Process32NextW
test eax, eax
jne 0x412230
jmp 0x4122e8
xor ebp, ebp
cmp dword [edi + 0x14], ebp
jne 0x4122cb
mov ecx, dword [esp + 0x3c]
push ecx
lea ecx, [esp + 0x1c]
call fcn.00411f00
add esp, 4
push 0xffffffffffffffff
push ebp
mov ecx, edi
mov dword [esp + 0x274], ebp
call fcn.0040bbd0
lea esi, [esp + 0x18]
mov dword [esp + 0x26c], 0xffffffff
call fcn.0040b1c0
cmp dword [edi + 0x18], 8
jb 0x41229e
mov edi, dword [edi + 4]
jmp 0x4122a1
add edi, 4
push edi
lea ecx, [esp + 0x18]
call fcn.0040f300
mov eax, dword [esp + 0x14]
add eax, 0xfffffff0
lea edx, [eax + 0xc]
or ecx, 0xffffffff
lock xadd dword [edx], ecx
dec ecx
test ecx, ecx
jg 0x4122cb
mov ecx, dword [eax]
mov edx, dword [ecx]
push eax
mov eax, dword [edx + 4]
call eax
mov ecx, dword [esp + 0x3c]
push ecx
push 0x412360
mov esi, 1
mov dword [0x4eb64c], ebp
call fcn.00412320
add esp, 8
push ebx
call dword [sym.imp.KERNEL32.dll_CloseHandle]
mov eax, esi
mov ecx, dword [esp + 0x264]
mov dword fs:[0], ecx
pop ecx
pop edi
pop esi
pop ebp
pop ebx
mov ecx, dword [esp + 0x24c]
xor ecx, esp
call fcn.004a6859
add esp, 0x25c
ret
Function at 0x413410
Capabilities:
Get common file path
Get startup folder

Disassembly:
push 0xffffffffffffffff
push 0x4c2789
mov eax, dword fs:[0]
push eax
sub esp, 0xc
push ebx
push esi
push edi
mov eax, dword [0x4e5d60]
xor eax, esp
push eax
lea eax, [esp + 0x1c]
mov dword fs:[0], eax
mov esi, ecx
mov dword [esp + 0x14], 0
lea edi, [esi + 4]
xor eax, eax
mov dword [esi + 0x18], 7
mov dword [esi + 0x14], 0
mov dword [esp + 0x18], esi
mov word [edi], ax
lea ecx, [esp + 0x10]
push ecx
push edx
mov dword [esp + 0x2c], eax
push eax
mov dword [esp + 0x20], 1
call dword [sym.imp.SHELL32.dll_SHGetSpecialFolderLocation]
test eax, eax
jl 0x4134b3
mov eax, dword [esi + 0x14]
mov ebx, 0x104
cmp eax, ebx
jb 0x41348d
or eax, 0xffffffff
call fcn.0040bc80
jmp 0x413494
sub ebx, eax
call fcn.0040bb70
cmp dword [esi + 0x14], 0
ja 0x41349f
call fcn.004c0b0c
cmp dword [esi + 0x18], 8
jb 0x4134a7
mov edi, dword [edi]
mov eax, dword [esp + 0x10]
push edi
push eax
call dword [sym.imp.SHELL32.dll_SHGetPathFromIDListW]
mov eax, esi
mov ecx, dword [esp + 0x1c]
mov dword fs:[0], ecx
pop ecx
pop edi
pop esi
pop ebx
add esp, 0x18
ret
Function at 0x4159d0
Capabilities:
Check if file exists

Disassembly:
push 0xffffffffffffffff
push 0x4c41b6
mov eax, dword fs:[0]
push eax
sub esp, 0x41c
mov eax, dword [0x4e5d60]
xor eax, esp
mov dword [esp + 0x418], eax
push ebx
push ebp
push esi
push edi
mov eax, dword [0x4e5d60]
xor eax, esp
push eax
lea eax, [esp + 0x430]
mov dword fs:[0], eax
mov ebp, dword [esp + 0x440]
test ebp, ebp
je 0x415add
cmp dword [esp + 0x444], 0
jle 0x415add
call fcn.004990cf
xor ecx, ecx
test eax, eax
setne cl
test ecx, ecx
jne 0x415a42
push 0x80004005
call fcn.0040f160
mov edx, dword [eax]
mov ecx, eax
mov eax, dword [edx + 0xc]
call eax
lea edi, [eax + 0x10]
mov dword [esp + 0x14], edi
xor ecx, ecx
push 0x40e
push ecx
lea edx, [esp + 0x26]
mov dword [esp + 0x440], 0
push edx
mov word [esp + 0x28], cx
call fcn.004aaf30
add esp, 0xc
push 0x207
lea esi, [esp + 0x20]
mov ebx, str.szHomeVNDir
mov ecx, str.SoftwareBkav_CorporationHomeVN
mov edx, reloc.OLEAUT32.dll_SysReAllocString
call fcn.004108e0
add esp, 4
test eax, eax
je 0x415aab
mov eax, esi
push eax
lea ecx, [esp + 0x18]
call fcn.0040f2c0
mov edi, dword [esp + 0x14]
push edi
call dword [sym.imp.SHLWAPI.dll_PathFileExistsW]
test eax, eax
jne 0x415b07
lea eax, [edi - 0x10]
mov dword [esp + 0x438], 0xffffffff
lea ecx, [eax + 0xc]
or edx, 0xffffffff
lock xadd dword [ecx], edx
dec edx
test edx, edx
jg 0x415add
mov ecx, dword [eax]
mov edx, dword [ecx]
push eax
mov eax, dword [edx + 4]
call eax
xor eax, eax
mov ecx, dword [esp + 0x430]
mov dword fs:[0], ecx
pop ecx
pop edi
pop esi
pop ebp
pop ebx
mov ecx, dword [esp + 0x418]
xor ecx, esp
call fcn.004a6859
add esp, 0x428
ret
lea ecx, [esp + 0x18]
push str.HomeVNRpt.log
push ecx
call fcn.00401bb0
add esp, 8
mov ebx, 1
push eax
lea ecx, [esp + 0x18]
mov byte [esp + 0x43c], bl
call fcn.0040ebc0
mov byte [esp + 0x438], 0
mov eax, dword [esp + 0x18]
add eax, 0xfffffff0
lea edx, [eax + 0xc]
or ecx, 0xffffffff
lock xadd dword [edx], ecx
dec ecx
test ecx, ecx
jg 0x415b57
mov ecx, dword [eax]
mov edx, dword [ecx]
push eax
mov eax, dword [edx + 4]
call eax
mov esi, dword [esp + 0x14]
cmp dword [esi - 4], ebx
jle 0x415b71
mov ecx, dword [esi - 0xc]
push ecx
lea ecx, [esp + 0x18]
call fcn.0040f010
mov esi, dword [esp + 0x14]
mov edx, dword [esp + 0x444]
push edx
push ebp
push esi
call fcn.00410c30
mov edi, eax
mov eax, dword [esi - 8]
add esp, 0xc
push eax
push esi
call fcn.004a7602
add esp, 8
test eax, eax
jl 0x415bd2
cmp eax, dword [esi - 8]
jg 0x415bd2
xor ecx, ecx
mov dword [esi - 0xc], eax
mov word [esi + eax*2], cx
lea eax, [esi - 0x10]
mov dword [esp + 0x438], 0xffffffff
lea edx, [eax + 0xc]
or ecx, 0xffffffff
lock xadd dword [edx], ecx
dec ecx
test ecx, ecx
jg 0x415bcb
mov ecx, dword [eax]
mov edx, dword [ecx]
push eax
mov eax, dword [edx + 4]
call eax
mov eax, edi
jmp 0x415adf
push 0x80070057
call fcn.0040f160
int3
Function at 0x415c60
Capabilities:
Set registry value

Disassembly:
sub esp, 8
lea eax, [esp]
push eax
push 0xf013f
push 0
push str.SOFTWAREMicrosoftWindowsCurrentVersionExplorerShell_Icons_
push reloc.OLEAUT32.dll_SysReAllocString
mov dword [esp + 0x14], 0
call dword [sym.imp.ADVAPI32.dll_RegOpenKeyExW]
cmp dword [esp], 0
jne 0x415cb9
lea ecx, [esp + 4]
push ecx
lea edx, [esp + 4]
push edx
push 0
push 0xf013f
push 0
push 0
push 0
push str.SOFTWAREMicrosoftWindowsCurrentVersionExplorerShell_Icons_
push reloc.OLEAUT32.dll_SysReAllocString
call dword [sym.imp.ADVAPI32.dll_RegCreateKeyExW]
cmp dword [esp], 0
je 0x415d16
push str._windir_System32_shell32.dll__30
lea ecx, [esp + 8]
call fcn.0040f300
mov eax, dword [esp + 4]
mov ecx, dword [eax - 0xc]
mov edx, dword [esp]
add ecx, ecx
push ecx
push eax
push 1
push 0
push 0x4d3dcc
push edx
call dword [sym.imp.ADVAPI32.dll_RegSetValueExW]
mov eax, dword [esp]
push eax
call dword [sym.imp.ADVAPI32.dll_RegCloseKey]
mov eax, dword [esp + 4]
add eax, 0xfffffff0
mov dword [esp], 0
lea ecx, [eax + 0xc]
or edx, 0xffffffff
lock xadd dword [ecx], edx
dec edx
test edx, edx
jg 0x415d16
mov ecx, dword [eax]
mov edx, dword [ecx]
push eax
mov eax, dword [edx + 4]
call eax
add esp, 8
ret
Function at 0x4168c0
Capabilities:
Get common file path

Disassembly:
push ebp
mov ebp, esp
and esp, 0xfffffff8
mov eax, 0x1664
call fcn.004acaf0
mov eax, dword [0x4e5d60]
xor eax, esp
mov dword [esp + 0x1660], eax
mov eax, dword [ebp + 8]
push ebx
push esi
push edi
mov ecx, 0xc
mov esi, str.C:UsersPublicDesktop
lea edi, [esp + 0x218]
rep movsd dword es:[edi], dword [esi]
push 0x1d6
lea ecx, [esp + 0x24e]
push 0
push ecx
mov dword [esp + 0x18], eax
movsw word es:[edi], word [esi]
call fcn.004aaf30
add esp, 0xc
push 0x180
lea edx, [esp + 0x4ac]
push 0
mov ecx, 0x22
mov esi, str.C:ProgramDataMicrosoftWindowsStart_MenuProgramsGoogle_Chrome
lea edi, [esp + 0x428]
push edx
rep movsd dword es:[edi], dword [esi]
call fcn.004aaf30
mov ecx, 0x16
mov esi, str.C:Documents_and_SettingsAll_UsersDesktop
lea edi, [esp + 0x634]
rep movsd dword es:[edi], dword [esi]
add esp, 0xc
push 0x1ae
lea eax, [esp + 0x686]
push 0
push eax
movsw word es:[edi], word [esi]
call fcn.004aaf30
mov ecx, 0x23
mov esi, str.C:Documents_and_SettingsAll_UsersStart_MenuProgramsGoogle_Chrome
lea edi, [esp + 0x83c]
rep movsd dword es:[edi], dword [esi]
add esp, 0xc
push 0x17a
lea ecx, [esp + 0x8c2]
push 0
push ecx
movsw word es:[edi], word [esi]
call fcn.004aaf30
add esp, 0xc
push 0xc30
lea edx, [esp + 0xa3c]
push 0
push edx
call fcn.004aaf30
add esp, 0xc
xor eax, eax
push 0x206
push eax
lea ecx, [esp + 0x1a]
push ecx
mov esi, 3
mov word [esp + 0x1c], ax
call fcn.004aaf30
mov edi, dword [sym.imp.SHELL32.dll_SHGetSpecialFolderPathW]
add esp, 0xc
push 0
push 0x28
lea edx, [esp + 0x18]
push edx
push 0
call edi
test eax, eax
je 0x416a50
lea eax, [esp + 0x10]
push eax
lea ecx, [esp + 0xa3c]
push 0x104
push ecx
call fcn.004a8254
add esp, 0xc
push str.Desktop
lea edx, [esp + 0xa3c]
push 0x104
push edx
call fcn.004a8940
add esp, 0xc
lea eax, [esp + 0x10]
push eax
lea ecx, [esp + 0xc44]
push 0x104
push ecx
mov esi, 5
call fcn.004a8254
add esp, 0xc
push str.Application_DataGoogle_Chrome
lea edx, [esp + 0xc44]
push 0x104
push edx
call fcn.004a8940
add esp, 0xc
push 0
push 0x1a
lea eax, [esp + 0x18]
push eax
push 0
call edi
test eax, eax
je 0x416b05
inc esi
mov ecx, esi
imul ecx, ecx, 0x208
lea edx, [esp + 0x10]
push edx
lea edi, [esp + ecx + 0x21c]
push 0x104
push edi
call fcn.004a8254
add esp, 0xc
push str.MicrosoftInternet_ExplorerQuick_LaunchUser_PinnedTaskBar
push 0x104
push edi
call fcn.004a8940
inc esi
mov eax, esi
imul eax, eax, 0x208
add esp, 0xc
lea ecx, [esp + 0x10]
push ecx
lea edi, [esp + eax + 0x21c]
push 0x104
push edi
call fcn.004a8254
add esp, 0xc
push str.MicrosoftInternet_ExplorerQuick_LaunchUser_PinnedStartMenu
push 0x104
push edi
call fcn.004a8940
inc esi
imul esi, esi, 0x208
add esp, 0xc
lea edx, [esp + 0x10]
push edx
lea esi, [esp + esi + 0x21c]
push 0x104
push esi
call fcn.004a8254
add esp, 0xc
push str.MicrosoftInternet_ExplorerQuick_Launch
push 0x104
push esi
call fcn.004a8940
add esp, 0xc
lea ebx, [esp + 0x218]
mov esi, 0xa
mov ecx, dword [esp + 0xc]
push str.chrome.exe
call fcn.00416b50
add esp, 4
add ebx, 0x208
sub esi, 1
jne 0x416b11
mov ecx, dword [esp + 0x166c]
pop edi
pop esi
pop ebx
xor ecx, esp
call fcn.004a6859
mov esp, ebp
pop ebp
ret
Function at 0x416b50
Capabilities:
Check if file exists
Enumerate files on windows

Disassembly:
sub esp, 0x46c
mov eax, dword [0x4e5d60]
xor eax, esp
mov dword [esp + 0x468], eax
mov eax, dword [esp + 0x470]
push ebp
push esi
push edi
push ebx
mov dword [esp + 0x14], eax
mov dword [esp + 0x18], ecx
call dword [sym.imp.SHLWAPI.dll_PathFileExistsW]
test eax, eax
jne 0x416b9b
xor eax, eax
pop edi
pop esi
pop ebp
mov ecx, dword [esp + 0x468]
xor ecx, esp
call fcn.004a6859
add esp, 0x46c
ret
push ebx
lea edx, [esp + 0x26c]
push 0x104
push edx
call fcn.004a8254
push str..lnk
lea eax, [esp + 0x278]
push 0x104
push eax
call fcn.004a8940
add esp, 0x18
lea ecx, [esp + 0x18]
push ecx
lea edx, [esp + 0x26c]
push edx
call dword [sym.imp.KERNEL32.dll_FindFirstFileW]
mov ebp, eax
call dword [sym.imp.KERNEL32.dll_GetLastError]
cmp ebp, 0xffffffff
je 0x416b81
mov eax, dword [esp + 0x14]
mov ecx, dword [esp + 0x10]
push eax
push ecx
sub esp, 0x250
mov ecx, 0x94
lea esi, [esp + 0x270]
mov edi, esp
mov edx, ebx
rep movsd dword es:[edi], dword [esi]
call fcn.00416c50
add esp, 0x258
lea edx, [esp + 0x18]
push edx
push ebp
call dword [sym.imp.KERNEL32.dll_FindNextFileW]
test eax, eax
jne 0x416be8
mov ecx, dword [esp + 0x474]
pop edi
pop esi
pop ebp
xor ecx, esp
mov eax, 1
call fcn.004a6859
add esp, 0x46c
ret