joyce8/EMBER2024-capa huggingface dataset:
Function at 0x44b725
Capabilities:
Terminate process

Disassembly:
push 0x4c
mov eax, 0x695856
call fcn.00637bba
mov esi, ecx
push 0x2710
call fcn.00458a27
mov ecx, dword [esi + 0x44]
push dword [ebp + 8]
mov eax, dword [ecx]
call dword [eax + 0x30]
push 0x73938c
lea ecx, [ebp - 0x58]
call fcn.0040d4cf
xor edi, edi
lea ecx, [ebp - 0x40]
push str.exitProcessDidNotExit
mov dword [ebp - 4], edi
call fcn.0040d4cf
push str.failGeneral
lea ecx, [ebp - 0x28]
mov byte [ebp - 4], 1
call fcn.0040d4cf
lea eax, [ebp - 0x58]
mov byte [ebp - 4], 2
push eax
lea eax, [ebp - 0x40]
mov ecx, esi
push eax
push edi
lea eax, [ebp - 0x28]
push eax
call fcn.0044f451
push edi
push 1
lea ecx, [ebp - 0x28]
call fcn.0040daff
push edi
push 1
lea ecx, [ebp - 0x40]
call fcn.0040daff
push edi
push 1
lea ecx, [ebp - 0x58]
call fcn.0040daff
push dword [ebp + 8]
call fcn.0065feec
int3

Function at 0x44b817
Capabilities:
Get session information
Get session user name

Disassembly:
push ecx
push ecx
push ebx
push ebp
push esi
push edi
mov ebp, ecx
call fcn.00448948
test al, al
jne 0x44b82c
xor eax, eax
jmp 0x44b87c
call dword [sym.imp.KERNEL32.DLL_WTSGetActiveConsoleSessionId]
lea ecx, [esp + 0x14]
xor edi, edi
push ecx
lea ecx, [esp + 0x14]
push ecx
push 5
push eax
push edi
call sub.WTSAPI32.dll_WTSQuerySessionInformationW
mov esi, dword [esp + 0x1c]
mov ecx, esi
push dword [esp + 0x10]
mov eax, dword [esi]
call dword [eax + 0x44]
mov ebx, dword [esp + 0x20]
push ebx
sub esp, 0x1c
mov ecx, esp
push esi
call fcn.00445f3d
mov ecx, ebp
call fcn.0044bbb0
cmp dword [esi + 0x14], edi
jne 0x44b877
cmp dword [ebx + 0x14], edi
je 0x44b87a
xor edi, edi
inc edi
mov eax, edi
pop edi
pop esi
pop ebp
pop ebx
pop ecx
pop ecx
ret 8
Function at 0x44bbb0
Capabilities:
Get user security identifier

Disassembly:
push 0x64
mov eax, 0x69594f
call fcn.00637bba
mov eax, dword [ebp + 0x24]
mov dword [ebp - 0x6c], eax
xor ebx, ebx
mov dword [ebp - 4], ebx
cmp dword [ebp + 0x1c], ebx
je 0x44bd4c
cmp dword [ebp + 0x20], 8
mov edi, dword [ebp + 0xc]
mov dword [ebp - 0x60], ebx
mov dword [ebp - 0x5c], ebx
jae 0x44bbe2
lea edi, [ebp + 0xc]
lea eax, [ebp - 0x70]
push eax
lea eax, [ebp - 0x5c]
push eax
push ebx
lea eax, [ebp - 0x60]
push eax
push ebx
push edi
push ebx
call dword [sym.imp.ADVAPI32.dll_LookupAccountNameW]
call dword [sym.imp.KERNEL32.DLL_GetLastError]
cmp eax, 0x7a
jne 0x44bd4c
push dword [ebp - 0x60]
call fcn.00637905
mov esi, eax
pop ecx
test esi, esi
je 0x44bd4c
push dword [ebp - 0x60]
push ebx
push esi
call fcn.00651ed0
mov eax, dword [ebp - 0x5c]
xor ecx, ecx
push 2
pop edx
mul edx
seto cl
neg ecx
or ecx, eax
push ecx
call fcn.00637905
mov ebx, eax
add esp, 0x10
test ebx, ebx
jne 0x44bc4f
push esi
call fcn.006375d6
jmp 0x44bd4b
push dword [ebp - 0x5c]
push 0
push ebx
call fcn.0043f70b
add esp, 0xc
push 0
call dword [sym.imp.KERNEL32.DLL_SetLastError]
lea eax, [ebp - 0x70]
push eax
lea eax, [ebp - 0x5c]
push eax
push ebx
lea eax, [ebp - 0x60]
push eax
push esi
push edi
push 0
call dword [sym.imp.ADVAPI32.dll_LookupAccountNameW]
call dword [sym.imp.KERNEL32.DLL_GetLastError]
test eax, eax
jne 0x44bd33
lea eax, [ebp - 0x68]
push eax
push esi
call sub.ADVAPI32.dll_ConvertSidToStringSidW
xor eax, eax
mov dword [ebp - 0x2c], 0xf
mov dword [ebp - 0x30], eax
mov byte [ebp - 0x40], al
mov dword [ebp - 0x14], 7
mov dword [ebp - 0x18], eax
mov word [ebp - 0x28], ax
push dword [ebp - 0x68]
mov byte [ebp - 4], 2
call fcn.00426a30
pop ecx
push eax
push dword [ebp - 0x68]
lea ecx, [ebp - 0x28]
call fcn.004372ba
cmp dword [ebp - 0x14], 8
mov ecx, dword [ebp - 0x28]
mov edx, ecx
jae 0x44bcd8
lea edx, [ebp - 0x28]
cmp dword [ebp - 0x14], 8
mov eax, dword [ebp - 0x18]
lea eax, [edx + eax*2]
jae 0x44bce7
lea ecx, [ebp - 0x28]
lea edx, [ebp - 0x61]
push edx
push eax
push ecx
lea ecx, [ebp - 0x58]
call fcn.0043f945
mov edi, dword [ebp - 0x6c]
mov ecx, edi
push eax
mov byte [ebp - 4], 3
mov edx, dword [edi]
call dword [edx + 0x4c]
push 0
push 1
lea ecx, [ebp - 0x58]
call fcn.0040daff
push dword [ebp - 0x68]
call dword [sym.imp.KERNEL32.DLL_LocalFree]
push 0
push 1
lea ecx, [ebp - 0x28]
call fcn.004267c2
push 0
push 1
lea ecx, [ebp - 0x40]
call fcn.0040daff
jmp 0x44bd36
mov edi, dword [ebp - 0x6c]
push ebx
call fcn.006375d6
push esi
call fcn.006375d6
xor ebx, ebx
cmp dword [edi + 0x14], ebx
pop ecx
setne bl
pop ecx
lea ecx, [ebp + 8]
call fcn.004460a6
mov eax, ebx
call fcn.00637b64
ret 0x20
Function at 0x44be89
Capabilities:
Get token membership

Disassembly:
push ebp
mov ebp, esp
sub esp, 0x14
mov eax, dword [0x7990a8]
xor eax, ebp
mov dword [ebp - 4], eax
push ebx
xor ebx, ebx
mov word [ebp - 8], 0x500
lea eax, [ebp - 0x14]
mov dword [ebp - 0xc], ebx
push eax
push ebx
push ebx
push ebx
push ebx
push ebx
push ebx
push 0x220
push 0x20
push 2
lea eax, [ebp - 0xc]
push eax
call dword [sym.imp.ADVAPI32.dll_AllocateAndInitializeSid]
mov dword [ebp - 0x10], eax
test eax, eax
je 0x44beec
lea eax, [ebp - 0x10]
push eax
push dword [ebp - 0x14]
push ebx
call dword [sym.imp.ADVAPI32.dll_CheckTokenMembership]
push dword [ebp - 0x14]
neg eax
sbb eax, eax
and dword [ebp - 0x10], eax
call dword [sym.imp.ADVAPI32.dll_FreeSid]
mov eax, dword [ebp - 0x10]
test eax, eax
mov ecx, dword [ebp - 4]
setne al
xor ecx, ebp
pop ebx
call fcn.00637b3e
mov esp, ebp
pop ebp
ret
Function at 0x44c791
Capabilities:
Parse credit card information

Disassembly:
push ebx
push ebp
push esi
mov esi, ecx
xor cl, cl
mov eax, dword [esi + 0x4c]
cmp eax, 0xffffffff
je 0x44c8f7
mov ebp, 0x10000000
cmp eax, 0x7c
je 0x44c8f7
cmp eax, 0x29
jne 0x44c7ca
cmp dword [esi + 0x10], 0
jne 0x44c8f7
test dword [esi + 0x50], ebp
je 0x44c905
cmp eax, 0x2e
jne 0x44c7e5
push 5
lea ecx, [esi + 0x24]
call fcn.0044ebde
mov ecx, esi
call fcn.0044ec1e
jmp 0x44c8e2
cmp eax, 0x5c
jne 0x44c840
mov ecx, esi
call fcn.0044ec1e
mov eax, dword [esi + 0x50]
and eax, 0x80
je 0x44c817
cmp byte [esi + 0x48], 0x62
jne 0x44c817
push 4
lea ecx, [esi + 0x24]
call fcn.0044ebde
mov ecx, esi
call fcn.0044ec1e
jmp 0x44c8e9
test eax, eax
je 0x44c834
cmp byte [esi + 0x48], 0x42
jne 0x44c834
push 4
lea ecx, [esi + 0x24]
call fcn.0044ebde
mov eax, dword [esi + 0x28]
xor dword [eax + 8], 1
jmp 0x44c80b
mov ecx, esi
call fcn.0044c90d
jmp 0x44c8e2
cmp eax, 0x5b
jne 0x44c860
mov ecx, esi
call fcn.0044ec1e
mov ecx, esi
call fcn.0044cdb7
cmp dword [esi + 0x4c], 0x5d
je 0x44c7d9
push 4
jmp 0x44c907
cmp eax, 0x28
jne 0x44c888
mov ecx, esi
call fcn.0044ec1e
mov ecx, esi
call fcn.0044f337
cmp dword [esi + 0x4c], 0x29
mov bl, al
jne 0x44c905
mov ecx, esi
call fcn.0044ec1e
jmp 0x44c8de
cmp eax, 0x5e
jne 0x44c894
push 2
jmp 0x44c803
cmp eax, 0x24
jne 0x44c8a0
push 3
jmp 0x44c803
cmp eax, 0x2a
je 0x44c901
cmp eax, 0x2b
je 0x44c901
cmp eax, 0x3f
je 0x44c901
cmp eax, 0x7b
je 0x44c901
cmp eax, 0x7d
jne 0x44c8be
test dword [esi + 0x50], ebp
je 0x44c8fd
cmp eax, 0x5d
jne 0x44c8c8
test dword [esi + 0x50], ebp
je 0x44c859
movzx eax, byte [esi + 0x48]
lea ecx, [esi + 0x24]
push eax
call fcn.0044c166
mov ecx, esi
call fcn.0044ec1e
mov bl, 1
test bl, bl
je 0x44c8e9
mov ecx, esi
call fcn.0044ec7c
mov eax, dword [esi + 0x4c]
mov cl, 1
cmp eax, 0xffffffff
jne 0x44c7a9
pop esi
pop ebp
mov al, cl
pop ebx
ret
push 6
jmp 0x44c907
push 0xa
jmp 0x44c907
push 5
call fcn.00622671
int3
Function at 0x44db0b
Capabilities:
Write file on windows

Disassembly:
push 0x20
mov eax, 0x695ac8
call fcn.00637bba
mov esi, ecx
xor ebx, ebx
cmp dword [esi + 0x38], ebx
je 0x44dc05
cmp byte [esi + 0x3d], bl
je 0x44dc05
mov eax, dword [esi]
push 0xffffffffffffffff
call dword [eax + 0xc]
cmp eax, 0xffffffff
sete al
test al, al
je 0x44db45
xor al, al
jmp 0x44dc07
push ebx
push 8
lea ecx, [ebp - 0x28]
mov dword [ebp - 0x14], 0xf
mov dword [ebp - 0x18], ebx
mov byte [ebp - 0x28], bl
call fcn.0043726e
mov dword [ebp - 4], ebx
mov edi, dword [ebp - 0x28]
mov eax, dword [ebp - 0x14]
mov ebx, edi
cmp eax, 0x10
jae 0x44db72
lea ebx, [ebp - 0x28]
mov edi, ebx
mov ecx, dword [esi + 0x38]
lea eax, [ebp - 0x2c]
push eax
mov eax, dword [ebp - 0x18]
add eax, ebx
mov edx, dword [ecx]
push eax
push edi
lea eax, [esi + 0x40]
push eax
call dword [edx + 0x20]
sub eax, 0
je 0x44db9d
sub eax, 1
je 0x44dba1
dec eax
sub eax, 1
je 0x44dbf3
xor bl, bl
jmp 0x44dbf5
mov byte [esi + 0x3d], 0
mov eax, dword [ebp - 0x14]
mov edi, dword [ebp - 0x28]
mov ecx, edi
cmp eax, 0x10
jae 0x44dbb1
lea ecx, [ebp - 0x28]
mov ebx, dword [ebp - 0x2c]
sub ebx, ecx
je 0x44dbd9
cmp eax, 0x10
jae 0x44dbc0
lea edi, [ebp - 0x28]
push dword [esi + 0x4c]
push ebx
push 1
push edi
call fcn.0065f19b
add esp, 0x10
cmp ebx, eax
jne 0x44db99
mov eax, dword [ebp - 0x14]
mov edi, dword [ebp - 0x28]
cmp byte [esi + 0x3d], 0
je 0x44dbf3
test ebx, ebx
jne 0x44db66
push ebx
push 8
lea ecx, [ebp - 0x28]
call fcn.0040cba3
jmp 0x44db60
mov bl, 1
push 0
push 1
lea ecx, [ebp - 0x28]
call fcn.0040daff
mov al, bl
jmp 0x44dc07
mov al, 1
call fcn.00637b64
ret

Function at 0x44e1f9
Capabilities:
Encode data using xor
Hash data using fnv

Disassembly:
xor edx, edx
mov ecx, 0x811c9dc5
cmp dword [esp + 8], edx
jbe 0x44e21f
push esi
mov esi, dword [esp + 8]
movzx eax, byte [edx + esi]
xor eax, ecx
imul ecx, eax, 0x1000193
inc edx
cmp edx, dword [esp + 0xc]
jb 0x44e20b
pop esi
mov eax, ecx
ret 8
Function at 0x45165c
Capabilities:
Create directory

Disassembly:
push 0x4a0
mov eax, 0x696160
call fcn.00637c28
mov edi, ecx
mov eax, dword [edi + 0x40]
mov dword [ebp - 0x374], edi
test eax, eax
jne 0x4517c7
xor ebx, ebx
lea eax, [ebp - 0x30]
push ebx
push eax
call fcn.004523e4
mov edx, dword [eax]
lea ecx, [ebp - 0x64]
push str.HTA_
push ecx
mov ecx, eax
mov dword [ebp - 4], ebx
call dword [edx + 0x34]
lea ecx, [ebp - 0x30]
mov byte [ebp - 4], 2
call fcn.004460a6
cmp dword [ebp - 0x4c], 8
mov eax, dword [ebp - 0x60]
jae 0x4516b5
lea eax, [ebp - 0x60]
push ebx
push eax
call dword [sym.imp.KERNEL32.DLL_CreateDirectoryW]
test eax, eax
jne 0x4516e3
push ebx
push str.failCreateHtaDir
lea ecx, [ebp - 0xe4]
call fcn.00455b8b
push 0x74575c
lea eax, [ebp - 0xe4]
push eax
call fcn.0064fa34
push 1
push 2
lea ecx, [ebp - 0x4ac]
call fcn.0043fce3
push ebx
mov byte [ebp - 4], 3
call fcn.006608ae
mov dword [esp], 0x6c11cc
push edx
push eax
push str.install.
lea eax, [ebp - 0x4ac]
push eax
call fcn.0044715f
mov ecx, eax
call fcn.0044b147
push eax
call fcn.0044715f
lea eax, [ebp - 0x64]
push eax
lea ecx, [ebp - 0x370]
call fcn.00445f3d
lea eax, [ebp - 0x2c]
mov byte [ebp - 4], 4
push eax
lea ecx, [ebp - 0x4ac]
call fcn.00442a30
push eax
mov eax, dword [ebp - 0x370]
lea ecx, [ebp - 0x370]
mov byte [ebp - 4], 5
call dword [eax + 0x28]
push ebx
push 1
lea ecx, [ebp - 0x2c]
call fcn.0040daff
lea eax, [ebp - 0x64]
mov byte [ebp - 4], 6
push eax
lea eax, [ebp - 0x370]
mov ecx, edi
push eax
call fcn.0045050d
mov dword [ebp - 4], 4
push 0x1c
call fcn.00637305
pop ecx
mov dword [ebp - 0x378], eax
mov byte [ebp - 4], 0xf
test eax, eax
je 0x4517a4
lea ecx, [ebp - 0x64]
push ecx
mov ecx, eax
call fcn.00445f3d
mov ebx, eax
lea ecx, [ebp - 0x370]
mov dword [edi + 0x40], ebx
call fcn.004460a6
lea ecx, [ebp - 0x4ac]
call fcn.00440145
lea ecx, [ebp - 0x64]
call fcn.004460a6
mov eax, ebx
call fcn.00637b75
ret
Function at 0x453d46
Capabilities:
Get system information on windows

Disassembly:
push ebp
mov ebp, esp
sub esp, 0x24
lea eax, [ebp - 0x24]
push eax
call dword [sym.imp.KERNEL32.DLL_GetNativeSystemInfo]
cmp word [ebp - 0x24], 6
je 0x453d68
cmp word [ebp - 0x24], 9
je 0x453d68
xor al, al
jmp 0x453d6a
mov al, 1
mov esp, ebp
pop ebp
ret

Function at 0x453d6e
Capabilities:
Get common file path

Disassembly:
push ebp
mov ebp, esp
sub esp, 0x61c
mov eax, dword [0x7990a8]
xor eax, ebp
mov dword [ebp - 4], eax
push esi
push edi
mov esi, 0x104
lea eax, [ebp - 0x61c]
push esi
push eax
xor edi, edi
push edi
call dword [sym.imp.KERNEL32.DLL_GetModuleFileNameW]
lea eax, [ebp - 0x20c]
push eax
push esi
call dword [sym.imp.KERNEL32.DLL_GetTempPathW]
test eax, eax
je 0x453e33
push esi
lea eax, [ebp - 0x414]
push eax
lea eax, [ebp - 0x20c]
push eax
call dword [sym.imp.KERNEL32.DLL_GetLongPathNameW]
lea ecx, [ebp - 0x20c]
lea edx, [ecx + 2]
mov ax, word [ecx]
add ecx, 2
cmp ax, di
jne 0x453dcd
sub ecx, edx
sar ecx, 1
cmp ecx, 0xa
jbe 0x453e33
push ecx
lea eax, [ebp - 0x20c]
push eax
lea eax, [ebp - 0x61c]
push eax
call fcn.0065cf60
add esp, 0xc
test eax, eax
je 0x453e2f
lea ecx, [ebp - 0x414]
lea edx, [ecx + 2]
mov ax, word [ecx]
add ecx, 2
cmp ax, di
jne 0x453e05
sub ecx, edx
lea eax, [ebp - 0x414]
sar ecx, 1
push ecx
push eax
lea eax, [ebp - 0x61c]
push eax
call fcn.0065cf60
add esp, 0xc
test eax, eax
jne 0x453e33
mov al, 1
jmp 0x453e35
xor al, al
mov ecx, dword [ebp - 4]
pop edi
xor ecx, ebp
pop esi
call fcn.00637b3e
mov esp, ebp
pop ebp
ret
Function at 0x456281
Capabilities:
Hash data using sha1

Disassembly:
and dword [ecx + 0x14], 0
and dword [ecx + 0x18], 0
mov dword [ecx], 0x67452301
mov dword [ecx + 4], 0xefcdab89
mov dword [ecx + 8], 0x98badcfe
mov dword [ecx + 0xc], 0x10325476
mov dword [ecx + 0x10], 0xc3d2e1f0
ret
Function at 0x45a592
Capabilities:
Initialize winsock library

Disassembly:
push ebp
sub esp, 0x34c
lea ebp, [esp - 4]
mov eax, dword [0x7990a8]
xor eax, ebp
mov dword [ebp + 0x34c], eax
push 0xbc
mov eax, 0x697305
call fcn.00637bf1
mov esi, ecx
lea eax, [ebp + 0x1c]
push eax
push 0x202
call dword [sym.imp.WS2_32.dll_WSAStartup]
test eax, eax
je 0x45a5f1
push 0
push str.WSAStartup_failed
lea ecx, [ebp + 0x2e4]
call fcn.00455b8b
push 0x74575c
lea eax, [ebp + 0x2e4]
push eax
call fcn.0064fa34
xor edi, edi
mov dword [ebp - 4], edi
cmp dword [esi + 0xac], edi
jne 0x45a60b
push edi
mov ecx, esi
call fcn.00459a5c
jmp 0x45a6c0
lea eax, [esi + 0x9c]
cmp dword [eax + 0x14], 8
jb 0x45a619
mov eax, dword [eax]
push 1
push 0x40
push 0x22
push eax
lea ecx, [ebp - 0xc8]
call fcn.00459273
mov eax, dword [ebp - 0xc8]
mov byte [ebp - 4], 1
mov eax, dword [eax + 4]
cmp dword [ebp + eax - 0xbc], 0
je 0x45a691
push str.Cannot_open__
lea ecx, [ebp]
call fcn.00445fd8
lea eax, [esi + 0x98]
mov byte [ebp - 4], 2
push eax
mov eax, dword [ebp]
lea ecx, [ebp]
call dword [eax + 0x2c]
mov eax, dword [ebp]
lea ecx, [ebp]
push 0x738d34
call dword [eax + 0x24]
push edi
lea eax, [ebp]
push eax
lea ecx, [ebp + 0x27c]
call fcn.00455a9b
push 0x74575c
lea eax, [ebp + 0x27c]
jmp 0x45a5eb
lea eax, [ebp - 0xc8]
mov byte [ebp - 4], 3
push eax
mov ecx, esi
call fcn.00459a5c
lea ecx, [ebp - 0xc8]
mov dword [ebp - 4], 1
call fcn.0044f766
lea ecx, [ebp - 0xc8]
call fcn.0044b404
call dword [sym.imp.WS2_32.dll_WSACleanup]
mov ecx, dword [ebp - 0xc]
mov dword fs:[0], ecx
pop ecx
pop edi
pop esi
pop ebx
mov ecx, dword [ebp + 0x34c]
xor ecx, ebp
call fcn.00637b3e
lea esp, [ebp + 0x350]
pop ebp
ret

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

Disassembly:
mov eax, 0x6974a1
call fcn.006375a8
push ecx
mov eax, dword [ebp + 8]
push esi
mov esi, ecx
mov dword [ebp - 0x10], esi
push edi
mov dword [esi + 4], eax
mov eax, dword [ebp + 0x10]
mov dword [esi + 8], eax
push dword [ebp + 0xc]
xor edi, edi
mov dword [esi], 0x6c1f68
lea ecx, [esi + 0x20]
mov dword [ebp - 4], edi
mov dword [esi + 0xc], edi
mov dword [esi + 0x10], edi
mov dword [esi + 0x14], edi
mov dword [esi + 0x18], edi
mov dword [esi + 0x1c], edi
call fcn.005401b5
mov ecx, dword [ebp - 0xc]
mov eax, esi
mov dword [esi + 0x2c], edi
mov dword [esi + 0x30], edi
mov dword [esi + 0x34], edi
mov dword [esi + 0x38], edi
mov dword [esi + 0x3c], edi
pop edi
pop esi
mov dword fs:[0], ecx
mov esp, ebp
pop ebp
ret 0xc
Function at 0x45b6fe
Capabilities:
Access peb ldr_data
Get ntdll base address

Disassembly:
mov eax, 0x6974a1
call fcn.006375a8
push ecx
mov eax, dword [ebp + 8]
push esi
mov esi, ecx
mov dword [ebp - 0x10], esi
push edi
mov dword [esi + 4], eax
mov eax, dword [ebp + 0x10]
mov dword [esi + 8], eax
push dword [ebp + 0xc]
xor edi, edi
mov dword [esi], 0x6c1f68
lea ecx, [esi + 0x20]
mov dword [ebp - 4], edi
mov dword [esi + 0xc], edi
mov dword [esi + 0x10], edi
mov dword [esi + 0x14], edi
mov dword [esi + 0x18], edi
mov dword [esi + 0x1c], edi
call fcn.005401b5
mov ecx, dword [ebp - 0xc]
mov eax, esi
mov dword [esi + 0x2c], edi
mov dword [esi + 0x30], edi
mov dword [esi + 0x34], edi
mov dword [esi + 0x38], edi
mov dword [esi + 0x3c], edi
pop edi
pop esi
mov dword fs:[0], ecx
mov esp, ebp
pop ebp
ret 0xc

Function at 0x45b756
Capabilities:
Access peb ldr_data
Get kernel32 base address

Disassembly:
mov eax, 0x6974be
call fcn.006375a8
push ecx
mov eax, dword [ebp + 8]
push esi
mov esi, ecx
mov dword [ebp - 0x10], esi
mov dword [esi + 4], eax
mov eax, dword [ebp + 0x10]
mov dword [esi + 8], eax
xor eax, eax
mov dword [esi], 0x6c1f68
lea ecx, [esi + 0x20]
mov dword [esi + 0xc], eax
mov dword [esi + 0x10], eax
mov dword [esi + 0x14], eax
mov dword [esi + 0x18], eax
mov dword [esi + 0x1c], eax
mov dword [ebp - 4], eax
mov dword [ecx], eax
mov dword [ecx + 4], eax
mov dword [ecx + 8], eax
mov dword [esi + 0x2c], eax
mov dword [esi + 0x30], eax
mov dword [esi + 0x34], eax
mov dword [esi + 0x38], eax
mov dword [esi + 0x3c], eax
lea eax, [ebp + 0xc]
push eax
mov byte [ebp - 4], 1
call fcn.00527483
mov ecx, dword [ebp - 0xc]
mov eax, esi
pop esi
mov dword fs:[0], ecx
mov esp, ebp
pop ebp
ret 0xc

Function at 0x45e489
Capabilities:
Get memory capacity

Disassembly:
push ebp
mov ebp, esp
sub esp, 0x40
push esi
mov esi, dword [ebp + 8]
mov eax, esi
shr eax, 0x1f
test al, 1
je 0x45e4a3
and dword [0], 0
test esi, esi
jne 0x45e4ab
xor eax, eax
jmp 0x45e504
push edi
xor edi, edi
push esi
call fcn.0065fc70
pop ecx
test eax, eax
jne 0x45e503
push esi
call fcn.0046c7d1
inc edi
cmp edi, 3
jl 0x45e4ae
push 0x40
pop esi
push esi
lea eax, [ebp - 0x40]
push 0
push eax
call fcn.00651ed0
add esp, 0xc
mov dword [ebp - 0x40], esi
lea eax, [ebp - 0x40]
push eax
call dword [sym.imp.KERNEL32.DLL_GlobalMemoryStatusEx]
mov esi, dword [sym.imp.KERNEL32.DLL_GetLastError]
test eax, eax
jne 0x45e4f3
call esi
mov dword [ebp - 0x3c], eax
call esi
mov dword [0x7a3ad4], eax
and dword [0], 0
xor eax, eax
pop edi
pop esi
mov esp, ebp
pop ebp
ret 4
Function at 0x45ea02
Capabilities:
Delete file
Get common file path

Disassembly:
mov eax, 0x692d79
call fcn.006375a8
sub esp, 0x444
mov eax, dword [ebp + 0xc]
push esi
push edi
xor edi, edi
mov esi, 0x104
mov dword [ebp - 0x10], edi
test eax, eax
jne 0x45ea39
lea eax, [ebp - 0x450]
push eax
push esi
call dword [sym.imp.KERNEL32.DLL_GetTempPathW]
lea eax, [ebp - 0x450]
lea ecx, [ebp - 0x248]
push ecx
push edi
push 0x6c1fb4
push eax
call dword [sym.imp.KERNEL32.DLL_GetTempFileNameW]
test eax, eax
jne 0x45ea72
call fcn.00661114
push eax
call fcn.00661114
push eax
push str.c:_u_u.tmp
lea eax, [ebp - 0x248]
push esi
push eax
call fcn.00462d1a
add esp, 0x14
lea eax, [ebp - 0x248]
push eax
call dword [sym.imp.KERNEL32.DLL_DeleteFileW]
lea eax, [ebp - 0x248]
push eax
lea ecx, [ebp - 0x28]
call fcn.00427f43
mov esi, dword [ebp + 0x10]
mov dword [ebp - 4], edi
test esi, esi
je 0x45eaef
mov ecx, esi
lea edx, [ecx + 2]
mov ax, word [ecx]
add ecx, 2
cmp ax, di
jne 0x45ea9d
sub ecx, edx
mov eax, 0x103
sar ecx, 1
sub eax, ecx
lea ecx, [ebp - 0x28]
push eax
push edi
lea eax, [ebp - 0x40]
push eax
call fcn.0043ed9c
push esi
mov byte [ebp - 4], 1
call fcn.00426a30
pop ecx
push eax
push esi
lea ecx, [ebp - 0x40]
call fcn.0042689e
mov ecx, dword [ebp + 8]
lea eax, [ebp - 0x40]
push eax
call fcn.0042613c
push edi
push 1
lea ecx, [ebp - 0x40]
call fcn.004267c2
jmp 0x45eafb
mov ecx, dword [ebp + 8]
lea eax, [ebp - 0x28]
push eax
call fcn.0042613c
push edi
push 1
lea ecx, [ebp - 0x28]
call fcn.004267c2
mov ecx, dword [ebp - 0xc]
mov eax, dword [ebp + 8]
pop edi
pop esi
mov dword fs:[0], ecx
mov esp, ebp
pop ebp
ret 0xc

Function at 0x45eb63
Capabilities:
Create directory

Disassembly:
mov eax, 0x6937b1
call fcn.006375a8
sub esp, 0x30
push ebx
push esi
mov esi, dword [ebp + 8]
push edi
push 8
pop ebx
cmp dword [esi + 0x14], ebx
jb 0x45eb82
mov eax, dword [esi]
jmp 0x45eb84
mov eax, esi
push 0x5c
push eax
call fcn.006523db
mov edi, eax
pop ecx
pop ecx
test edi, edi
jne 0x45ebb3
cmp dword [esi + 0x14], ebx
jb 0x45eb9d
mov eax, dword [esi]
jmp 0x45eb9f
mov eax, esi
push 0x2f
push eax
call fcn.006523db
mov edi, eax
pop ecx
pop ecx
test edi, edi
je 0x45ec35
cmp dword [esi + 0x14], ebx
jb 0x45ebbc
mov eax, dword [esi]
jmp 0x45ebbe
mov eax, esi
sub edi, eax
sar edi, 1
cmp dword [esi + 0x14], ebx
jb 0x45ebcb
mov eax, dword [esi]
jmp 0x45ebcd
mov eax, esi
push eax
lea ecx, [ebp - 0x3c]
call fcn.00427f43
xor ecx, ecx
mov dword [ebp - 0x10], 7
xor eax, eax
mov dword [ebp - 4], ecx
push edi
mov word [ebp - 0x24], ax
lea eax, [ebp - 0x3c]
push ecx
mov dword [ebp - 0x14], ecx
lea ecx, [ebp - 0x24]
push eax
call fcn.0042692e
push 1
lea eax, [ebp - 0x24]
mov byte [ebp - 4], 1
push eax
call fcn.0045eb63
xor edi, edi
lea ecx, [ebp - 0x24]
push edi
push 1
call fcn.004267c2
push edi
push 1
lea ecx, [ebp - 0x3c]
call fcn.004267c2
cmp byte [ebp + 0xc], 0
je 0x45ec35
cmp dword [esi + 0x14], ebx
jb 0x45ec2d
mov esi, dword [esi]
push edi
push esi
call dword [sym.imp.KERNEL32.DLL_CreateDirectoryW]
mov ecx, dword [ebp - 0xc]
pop edi
pop esi
pop ebx
mov dword fs:[0], ecx
mov esp, ebp
pop ebp
ret 8
Function at 0x45f286
Capabilities:
Delete directory
Enumerate files on windows
Enumerate files recursively

Disassembly:
mov eax, 0x6937b1
call fcn.006375a8
sub esp, 0x280
push ebx
push esi
push dword [ebp + 8]
lea eax, [ebp - 0x3c]
push str._s.
push eax
call fcn.004638e7
add esp, 0xc
mov eax, dword [ebp - 0x3c]
xor ebx, ebx
cmp dword [ebp - 0x28], 8
mov dword [ebp - 4], ebx
jae 0x45f2bd
lea eax, [ebp - 0x3c]
lea ecx, [ebp - 0x28c]
push ecx
push eax
call dword [sym.imp.KERNEL32.DLL_FindFirstFileW]
mov esi, eax
cmp esi, 0xffffffff
je 0x45f379
lea eax, [ebp - 0x260]
push eax
push dword [ebp + 8]
lea eax, [ebp - 0x24]
push 0x6bcb20
push eax
call fcn.004638e7
add esp, 0x10
test byte [ebp - 0x28c], 0x10
mov byte [ebp - 4], 1
jne 0x45f312
cmp dword [ebp - 0x10], 8
mov eax, dword [ebp - 0x24]
jae 0x45f30a
lea eax, [ebp - 0x24]
push eax
call fcn.0046d9bb
jmp 0x45f34e
push 0x6c1fdc
lea eax, [ebp - 0x260]
push eax
call fcn.005d1c3a
test eax, eax
je 0x45f34e
push 0x6c1fd4
lea eax, [ebp - 0x260]
push eax
call fcn.005d1c3a
test eax, eax
je 0x45f34e
cmp dword [ebp - 0x10], 8
mov eax, dword [ebp - 0x24]
jae 0x45f348
lea eax, [ebp - 0x24]
push eax
call fcn.0045f286
push ebx
push 1
lea ecx, [ebp - 0x24]
mov byte [ebp - 4], bl
call fcn.004267c2
lea eax, [ebp - 0x28c]
push eax
push esi
call dword [sym.imp.KERNEL32.DLL_FindNextFileW]
test eax, eax
jne 0x45f2d6
push esi
call dword [sym.imp.KERNEL32.DLL_FindClose]
push dword [ebp + 8]
call dword [sym.imp.KERNEL32.DLL_RemoveDirectoryW]
push ebx
push 1
lea ecx, [ebp - 0x3c]
call fcn.004267c2
mov ecx, dword [ebp - 0xc]
pop esi
pop ebx
mov dword fs:[0], ecx
mov esp, ebp
pop ebp
ret 4

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

Disassembly:
push dword [esp + 4]
call dword [sym.imp.KERNEL32.DLL_GetFileAttributesW]
cmp eax, 0xffffffff
je 0x45f4a2
test al, 0x10
je 0x45f4a2
xor eax, eax
inc eax
jmp 0x45f4a4
xor eax, eax
ret 4

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

Disassembly:
push dword [esp + 4]
call dword [sym.imp.KERNEL32.DLL_GetFileAttributesW]
cmp eax, 0xffffffff
je 0x45f4d4
test al, 0x10
jne 0x45f4d4
xor eax, eax
inc eax
jmp 0x45f4d6
xor eax, eax
ret 4