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

Disassembly:
push ebp
sub esp, 0x68
mov eax, 0x6a8586
call fcn.00664608
sub esp, 0x230
push ebx
push esi
push edi
push 1
push 0x40
push 2
push dword [ebp + 0x74]
lea ecx, [ebp - 0xec]
call fcn.004292a6
lea eax, [ebp + 0x48]
xor edi, edi
push eax
mov dword [ebp - 4], edi
call fcn.0043239d
lea ecx, [ebp + 0x48]
mov byte [ebp - 4], 1
call fcn.0040f47a
test al, al
je 0x437916
mov eax, 0x6d357c
jmp 0x43791e
lea ecx, [ebp + 0x48]
call fcn.004377a9
mov ebx, 0x428ba9
push ebx
push eax
push str.installedVersion:
lea eax, [ebp - 0xec]
push eax
call fcn.00427c5c
push eax
call fcn.00427e82
mov ecx, eax
call fcn.0042a289
push ebx
mov esi, 0x6d3594
lea eax, [ebp - 0xec]
push esi
push str.myVersion:
push eax
call fcn.00427c5c
push eax
call fcn.00427c5c
mov ecx, eax
call fcn.0042a289
push str.action:
lea eax, [ebp - 0xec]
push eax
call fcn.00427c5c
lea ecx, [ebp + 0x48]
call fcn.0040f47a
test al, al
je 0x43799b
push str.install
lea eax, [ebp - 0xec]
push eax
call fcn.00427c5c
jmp 0x437b18
lea ecx, [ebp + 0x60]
call fcn.00429732
lea ecx, [ebp - 0x3c]
call fcn.0042963e
push 1
push edi
lea eax, [ebp - 0x3c]
mov byte [ebp - 4], 3
push eax
lea eax, [ebp + 0x60]
push eax
push edi
call fcn.0058f28f
test al, al
je 0x437af3
push esi
lea ecx, [ebp]
call fcn.0041046f
push 1
push 1
lea eax, [ebp]
mov byte [ebp - 4], 4
push eax
lea ecx, [ebp - 0x23c]
call fcn.0042917e
lea ecx, [ebp]
mov byte [ebp - 4], 6
call fcn.0041087e
lea ecx, [ebp + 0x48]
call fcn.004377a9
push eax
lea ecx, [ebp - 0x24]
call fcn.004294b0
push 1
push 1
lea eax, [ebp - 0x24]
mov byte [ebp - 4], 7
push eax
lea ecx, [ebp - 0x194]
call fcn.00429212
lea ecx, [ebp - 0x24]
call fcn.004278a8
lea ecx, [ebp + 0x18]
call fcn.004101a1
lea ecx, [ebp + 0x30]
call fcn.0042963e
mov byte [ebp - 4], 0xb
push 0x2e
lea eax, [ebp + 0x18]
push eax
lea eax, [ebp - 0x23c]
push eax
call fcn.00428d11
mov ecx, dword [eax]
mov ecx, dword [ecx + 4]
add ecx, eax
call fcn.00413918
mov bl, al
lea eax, [ebp + 0x30]
push 0x2e
push eax
lea eax, [ebp - 0x194]
push eax
call fcn.00428e6a
mov ecx, dword [eax]
mov ecx, dword [ecx + 4]
add ecx, eax
call fcn.00413918
test bl, bl
je 0x437aab
test al, al
je 0x437ab4
lea ecx, [ebp + 0x18]
call fcn.00410659
push eax
call fcn.00674add
pop ecx
lea ecx, [ebp + 0x30]
mov esi, eax
call fcn.004377a9
push eax
call fcn.00674ab3
pop ecx
cmp esi, eax
je 0x437a38
jg 0x437ab4
mov eax, str.confirmDowngrade
jmp 0x437ab9
test al, al
mov eax, str.none
je 0x437ab9
mov eax, str.upgrade
push eax
lea eax, [ebp - 0xec]
push eax
call fcn.00427c5c
lea ecx, [ebp + 0x30]
call fcn.004278a8
lea ecx, [ebp + 0x18]
call fcn.0041087e
lea ecx, [ebp - 0x194]
call fcn.0042a468
lea ecx, [ebp - 0x23c]
call fcn.0042a422
mov ebx, 0x428ba9
jmp 0x437b04
push str.closeOther
lea eax, [ebp - 0xec]
push eax
call fcn.00427c5c
lea ecx, [ebp - 0x3c]
call fcn.004278a8
lea ecx, [ebp + 0x60]
mov byte [ebp - 4], 1
call fcn.00429fad
push ebx
lea ecx, [ebp - 0xec]
call fcn.0042a289
lea ecx, [ebp - 0xec]
call fcn.0043788c
push edi
call dword [sym.imp.KERNEL32.DLL_ExitProcess]
Function at 0x43ea03
Capabilities:
Access firewall policy via inetfwpolicy2

Disassembly:
mov eax, 0x6a8d74
call fcn.00664608
sub esp, 0x1c
push ebx
mov ebx, dword [ebp + 0xc]
push esi
push edi
push 2
push 0
mov esi, ecx
call dword [sym.imp.ole32.dll_CoInitializeEx]
mov edi, eax
mov dword [ebp - 0x24], edi
xor ecx, ecx
mov dword [ebp - 4], ecx
test edi, edi
jns 0x43ea37
mov byte [ebx], cl
jmp 0x43eb89
lea eax, [ebp - 0x20]
mov dword [ebp - 0x20], ecx
push eax
push 0x6d3938
push 1
push ecx
push 0x6d3928
call dword [sym.imp.ole32.dll_CoCreateInstance]
mov edi, eax
test edi, edi
jns 0x43ea5f
mov byte [ebx], 0
jmp 0x43eb78
mov eax, dword [ebp - 0x20]
lea edx, [ebp - 0x1c]
and dword [ebp - 0x1c], 0
push edx
push eax
mov ecx, dword [eax]
mov byte [ebp - 4], 3
call dword [ecx + 0x48]
mov edi, eax
test edi, edi
jns 0x43ea82
mov byte [ebx], 0
jmp 0x43eb67
and dword [ebp - 0x14], 0
mov byte [ebp - 4], 6
call fcn.00487f23
push 1
push eax
mov ecx, esi
call fcn.0043e220
mov esi, eax
mov dword [ebp - 0x28], esi
mov eax, dword [ebp - 0x14]
mov edi, dword [ebp - 0x1c]
mov byte [ebp - 4], 7
test eax, eax
je 0x43eab2
mov ecx, dword [eax]
push eax
call dword [ecx + 8]
and dword [ebp - 0x14], 0
lea ecx, [ebp - 0x14]
mov eax, dword [edi]
push ecx
push esi
push edi
call dword [eax + 0x28]
mov edi, eax
mov eax, dword [sym.imp.OLEAUT32.dll_SysStringLen]
mov dword [ebp - 0x18], eax
test edi, edi
jns 0x43ead4
mov byte [ebx], 0
jmp 0x43eb4f
mov eax, dword [ebp - 0x14]
lea edx, [ebp - 0x10]
and dword [ebp - 0x10], 0
push edx
push eax
mov ecx, dword [eax]
mov byte [ebp - 4], 0xb
call dword [ecx + 0x2c]
mov edi, eax
test edi, edi
js 0x43eb3c
cmp dword [ebp - 0x10], 0
je 0x43eb4c
push dword [ebp + 8]
push dword [ebp - 0x10]
call fcn.00673939
pop ecx
pop ecx
test eax, eax
jne 0x43eb40
mov eax, dword [ebp - 0x14]
lea edx, [ebp + 0xc]
push edx
push eax
mov ecx, dword [eax]
call dword [ecx + 0x84]
mov edi, eax
test edi, edi
js 0x43eb3c
cmp word [ebp + 0xc], 0
je 0x43eb28
xor eax, eax
inc eax
jmp 0x43eb3e
push dword [ebp + 8]
mov byte [ebx], 0
push str.Authorized_application__lS_is_disabled_in_the_firewall._n
call fcn.00427c3f
pop ecx
pop ecx
jmp 0x43eb40
xor al, al
mov byte [ebx], al
cmp dword [ebp - 0x10], 0
je 0x43eb4c
push dword [ebp - 0x10]
call dword [ebp - 0x18]
mov eax, dword [ebp - 0x18]
test esi, esi
je 0x43eb56
push esi
call eax
mov eax, dword [ebp - 0x14]
mov byte [ebp - 4], 0x15
test eax, eax
je 0x43eb67
mov ecx, dword [eax]
push eax
call dword [ecx + 8]
mov eax, dword [ebp - 0x1c]
mov byte [ebp - 4], 0x16
test eax, eax
je 0x43eb78
mov ecx, dword [eax]
push eax
call dword [ecx + 8]
mov ecx, dword [ebp - 0x20]
mov byte [ebp - 4], 0x17
test ecx, ecx
je 0x43eb89
mov edx, dword [ecx]
push ecx
call dword [edx + 8]
call dword [sym.imp.ole32.dll_CoUninitialize]
mov ecx, dword [ebp - 0xc]
mov eax, edi
pop edi
pop esi
pop ebx
mov dword fs:[0], ecx
leave
ret 8
Function at 0x44548d
Capabilities:
Enumerate processes

Disassembly:
push ebp
mov ebp, esp
sub esp, 0x230
mov eax, dword [0x7b03fc]
xor eax, ebp
mov dword [ebp - 4], eax
push esi
push edi
push 0
push 2
call sub.KERNEL32.DLL_CreateToolhelp32Snapshot
push 0x228
mov esi, eax
lea eax, [ebp - 0x22c]
push 0
push eax
call fcn.006678b0
add esp, 0xc
mov dword [ebp - 0x230], 0x22c
lea eax, [ebp - 0x230]
push eax
push esi
call sub.KERNEL32.DLL_Process32FirstW
test eax, eax
je 0x4454ff
call dword [sym.imp.KERNEL32.DLL_GetCurrentProcessId]
mov edi, eax
cmp dword [ebp - 0x228], edi
je 0x445517
lea eax, [ebp - 0x230]
push eax
push esi
call sub.KERNEL32.DLL_Process32NextW
test eax, eax
jne 0x4454e6
push esi
call dword [sym.imp.KERNEL32.DLL_CloseHandle]
or eax, 0xffffffff
mov ecx, dword [ebp - 4]
pop edi
xor ecx, ebp
pop esi
call fcn.00664b5f
leave
ret
push esi
call dword [sym.imp.KERNEL32.DLL_CloseHandle]
mov eax, dword [ebp - 0x218]
jmp 0x445509
Function at 0x448ca3
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 0x448d03
mov ebp, 0x10000000
cmp eax, 0x7c
je 0x448d03
cmp eax, 0x29
jne 0x448d09
cmp dword [esi + 0x10], 0
jne 0x448d03
test dword [esi + 0x50], ebp
je 0x448e01
cmp eax, 0x5d
jne 0x448cde
test dword [esi + 0x50], ebp
je 0x448df5
movzx eax, byte [esi + 0x48]
lea ecx, [esi + 0x24]
push eax
call fcn.00448616
mov ecx, esi
call fcn.0044b017
mov ecx, esi
call fcn.0044b08a
mov eax, dword [esi + 0x4c]
mov cl, 1
cmp eax, 0xffffffff
jne 0x448cb7
pop esi
pop ebp
mov al, cl
pop ebx
ret
cmp eax, 0x2e
jne 0x448d1a
push 5
lea ecx, [esi + 0x24]
call fcn.0044afd9
jmp 0x448ceb
cmp eax, 0x5c
jne 0x448d66
mov ecx, esi
call fcn.0044b017
test byte [esi + 0x50], 0x80
je 0x448d5d
mov al, byte [esi + 0x48]
cmp al, 0x62
jne 0x448d46
push 4
lea ecx, [esi + 0x24]
call fcn.0044afd9
mov ecx, esi
call fcn.0044b017
jmp 0x448cf9
cmp al, 0x42
jne 0x448d5d
push 4
lea ecx, [esi + 0x24]
call fcn.0044afd9
mov eax, dword [esi + 0x28]
xor dword [eax + 8], 1
jmp 0x448d3d
mov ecx, esi
call fcn.00448e0b
jmp 0x448cf2
cmp eax, 0x5b
jne 0x448d89
mov ecx, esi
call fcn.0044b017
mov ecx, esi
call fcn.004492b4
push 4
push 0x5d
mov ecx, esi
call fcn.0044a04b
jmp 0x448cf2
cmp eax, 0x28
jne 0x448db6
mov ecx, esi
call fcn.0044b017
mov ecx, esi
call fcn.0044b5b9
push 5
push 0x29
mov ecx, esi
mov bl, al
call fcn.0044a04b
test bl, bl
je 0x448cf9
jmp 0x448cf2
cmp eax, 0x5e
jne 0x448dc2
push 2
jmp 0x448d35
cmp eax, 0x24
jne 0x448dce
push 3
jmp 0x448d35
cmp eax, 0x2a
je 0x448df9
cmp eax, 0x2b
je 0x448df9
cmp eax, 0x3f
je 0x448df9
cmp eax, 0x7b
je 0x448df9
cmp eax, 0x7d
jne 0x448cd0
test dword [esi + 0x50], ebp
je 0x448dfd
jmp 0x448cde
push 4
jmp 0x448e03
push 0xa
jmp 0x448e03
push 6
jmp 0x448e03
push 5
mov ecx, esi
call fcn.0044a01a
int3

Function at 0x449f86
Capabilities:
Write file on windows

Disassembly:
push ebp
mov ebp, esp
sub esp, 0x28
mov eax, dword [0x7b03fc]
xor eax, ebp
mov dword [ebp - 4], eax
push ebx
push esi
mov esi, ecx
xor ebx, ebx
push edi
cmp dword [esi + 0x38], ebx
je 0x449fdd
cmp byte [esi + 0x3d], bl
je 0x449fdd
mov eax, dword [esi]
push 0xffffffffffffffff
call dword [eax + 0xc]
cmp eax, 0xffffffff
je 0x44a016
mov ecx, dword [esi + 0x38]
lea eax, [ebp - 0x28]
push eax
lea eax, [ebp - 4]
push eax
mov edx, dword [ecx]
lea eax, [ebp - 0x24]
push eax
lea eax, [esi + 0x40]
push eax
call dword [edx + 0x20]
sub eax, ebx
je 0x449fee
sub eax, 1
je 0x449ff1
dec eax
sub eax, 1
jne 0x44a016
mov byte [esi + 0x3d], bl
mov al, 1
mov ecx, dword [ebp - 4]
pop edi
pop esi
xor ecx, ebp
pop ebx
call fcn.00664b5f
leave
ret
mov byte [esi + 0x3d], bl
mov edi, dword [ebp - 0x28]
lea eax, [ebp - 0x24]
sub edi, eax
je 0x44a00e
push dword [esi + 0x4c]
push edi
push 1
push eax
call fcn.00675d1b
add esp, 0x10
cmp edi, eax
jne 0x44a016
cmp byte [esi + 0x3d], bl
sete al
jmp 0x449fdf
xor al, al
jmp 0x449fdf
Function at 0x44a066
Capabilities:
Encode data using xor
Hash data using fnv

Disassembly:
push ebp
mov ebp, esp
mov ecx, dword [ebp + 8]
xor edx, edx
cmp dword [ebp + 0x10], edx
jbe 0x44a08a
push esi
mov esi, dword [ebp + 0xc]
movzx eax, byte [edx + esi]
xor eax, ecx
imul ecx, eax, 0x1000193
inc edx
cmp edx, dword [ebp + 0x10]
jb 0x44a077
pop esi
mov eax, ecx
pop ebp
ret 0xc

Function at 0x44c160
Capabilities:
Write file on windows

Disassembly:
push ebp
mov ebp, esp
sub esp, 0x30
mov eax, dword [0x7b03fc]
xor eax, ebp
mov dword [ebp - 4], eax
push ebx
mov ebx, dword [ebp + 8]
push esi
mov esi, ecx
cmp ebx, 0xffffffff
jne 0x44c183
xor eax, eax
jmp 0x44c248
mov eax, dword [esi + 0x20]
push edi
mov ecx, dword [eax]
test ecx, ecx
je 0x44c1af
mov edx, dword [esi + 0x30]
mov edi, dword [edx]
lea eax, [edi + ecx]
cmp ecx, eax
jae 0x44c1af
lea ecx, [edi - 1]
mov dword [edx], ecx
mov edx, dword [esi + 0x20]
mov esi, dword [edx]
lea ecx, [esi + 1]
mov dword [edx], ecx
mov byte [esi], bl
jmp 0x44c240
cmp dword [esi + 0x4c], 0
je 0x44c244
mov ecx, esi
call fcn.0044b181
mov ecx, dword [esi + 0x38]
mov al, bl
test ecx, ecx
jne 0x44c1cf
push dword [esi + 0x4c]
push eax
jmp 0x44c209
mov byte [ebp - 0x28], al
lea eax, [ebp - 0x2c]
mov edx, dword [ecx]
push eax
lea eax, [ebp - 4]
push eax
lea eax, [ebp - 0x24]
push eax
lea eax, [ebp - 0x30]
push eax
lea eax, [ebp - 0x27]
push eax
lea eax, [ebp - 0x28]
push eax
lea eax, [esi + 0x40]
push eax
call dword [edx + 0x1c]
sub eax, 0
je 0x44c217
sub eax, 1
je 0x44c217
dec eax
sub eax, 1
jne 0x44c244
push dword [esi + 0x4c]
push dword [ebp - 0x28]
call fcn.00446707
test al, al
jne 0x44c240
or ebx, 0xffffffff
jmp 0x44c240
mov edi, dword [ebp - 0x2c]
lea eax, [ebp - 0x24]
sub edi, eax
je 0x44c234
push dword [esi + 0x4c]
push edi
push 1
push eax
call fcn.00675d1b
add esp, 0x10
cmp edi, eax
jne 0x44c244
lea eax, [ebp - 0x28]
mov byte [esi + 0x3d], 1
cmp dword [ebp - 0x30], eax
je 0x44c244
mov eax, ebx
jmp 0x44c247
or eax, 0xffffffff
pop edi
mov ecx, dword [ebp - 4]
pop esi
xor ecx, ebp
pop ebx
call fcn.00664b5f
leave
ret 4

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

Disassembly:
mov eax, 0x6aa3be
call fcn.00664608
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], 0x6d5b94
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.0044e3b5
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
leave
ret 0xc
Function at 0x44e55e
Capabilities:
Access peb ldr_data
Get ntdll base address

Disassembly:
mov eax, 0x6aa3be
call fcn.00664608
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], 0x6d5b94
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.0044e3b5
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
leave
ret 0xc

Function at 0x4513b4
Capabilities:
Get memory capacity

Disassembly:
push ebp
mov ebp, esp
sub esp, 0x68
push esi
mov esi, dword [ebp + 8]
mov eax, esi
shr eax, 0x1f
test al, al
je 0x4513ce
and dword [0], 0
test esi, esi
jne 0x4513d9
xor eax, eax
jmp 0x45145c
push edi
xor edi, edi
push esi
call fcn.00676855
pop ecx
test eax, eax
jne 0x45145b
push esi
call fcn.004611e8
inc edi
cmp edi, 3
jl 0x4513dc
push 0x40
pop esi
push esi
lea eax, [ebp - 0x68]
push 0
push eax
call fcn.006678b0
add esp, 0xc
mov dword [ebp - 0x68], esi
lea eax, [ebp - 0x68]
push eax
call dword [sym.imp.KERNEL32.DLL_GlobalMemoryStatusEx]
mov esi, dword [sym.imp.KERNEL32.DLL_GetLastError]
test eax, eax
jne 0x451421
call esi
mov dword [ebp - 0x64], eax
push 0xa
pop ecx
xor eax, eax
lea edi, [ebp - 0x28]
push 0x28
rep stosd dword es:[edi], eax
pop eax
push eax
mov dword [ebp - 0x28], eax
lea eax, [ebp - 0x28]
push eax
call dword [sym.imp.KERNEL32.DLL_GetCurrentProcess]
push eax
call sub.KERNEL32.DLL_K32GetProcessMemoryInfo
test eax, eax
jne 0x45144b
call esi
mov dword [ebp - 0x24], eax
call esi
mov dword [0x7ba6a0], eax
and dword [0], 0
xor eax, eax
pop edi
pop esi
leave
ret 4
Function at 0x4518bd
Capabilities:
Delete file
Get common file path

Disassembly:
mov eax, 0x6a9055
call fcn.00664608
mov eax, dword [ebp + 0xc]
sub esp, 0x440
push ebx
push esi
mov esi, 0x104
push edi
test eax, eax
jne 0x4518f0
lea eax, [ebp - 0x44c]
push eax
push esi
call dword [sym.imp.KERNEL32.DLL_GetTempPathW]
lea eax, [ebp - 0x44c]
lea ecx, [ebp - 0x244]
xor edi, edi
push ecx
push edi
push 0x6d5be4
push eax
call dword [sym.imp.KERNEL32.DLL_GetTempFileNameW]
test eax, eax
jne 0x45192b
call fcn.0067800d
push eax
call fcn.0067800d
push eax
push str.c:_u_u.tmp
lea eax, [ebp - 0x244]
push esi
push eax
call fcn.00456c1c
add esp, 0x14
lea eax, [ebp - 0x244]
push eax
call dword [sym.imp.KERNEL32.DLL_DeleteFileW]
xor eax, eax
mov dword [ebp - 0x3c], edi
push 7
pop ebx
mov word [ebp - 0x3c], ax
lea ecx, [ebp - 0x3c]
lea eax, [ebp - 0x244]
mov dword [ebp - 0x2c], edi
push eax
mov dword [ebp - 0x28], ebx
call fcn.00427ba3
mov esi, dword [ebp + 0x10]
mov dword [ebp - 4], edi
test esi, esi
je 0x451a03
mov ecx, esi
lea edx, [ecx + 2]
mov ax, word [ecx]
add ecx, 2
cmp ax, di
jne 0x45196c
xor eax, eax
mov dword [ebp - 0x24], edi
sub ecx, edx
mov word [ebp - 0x24], ax
sar ecx, 1
mov eax, 0x103
sub eax, ecx
mov dword [ebp - 0x14], edi
push eax
push edi
lea eax, [ebp - 0x3c]
mov dword [ebp - 0x10], ebx
push eax
lea ecx, [ebp - 0x24]
call fcn.00437771
push esi
lea ecx, [ebp - 0x24]
mov byte [ebp - 4], 1
call fcn.00437714
mov esi, dword [ebp + 8]
lea eax, [ebp - 0x24]
push eax
mov ecx, esi
call fcn.004277f3
mov eax, dword [ebp - 0x10]
cmp eax, 8
jb 0x4519f5
mov ecx, dword [ebp - 0x24]
lea eax, [eax*2 + 2]
mov dword [ebp + 8], eax
mov dword [ebp + 0xc], ecx
cmp eax, 0x1000
jb 0x4519ec
lea eax, [ebp + 8]
push eax
lea eax, [ebp + 0xc]
push eax
call fcn.004279ae
mov eax, dword [ebp + 8]
mov ecx, dword [ebp + 0xc]
push eax
push ecx
call fcn.006643a9
pop ecx
pop ecx
xor eax, eax
mov dword [ebp - 0x14], edi
mov dword [ebp - 0x10], ebx
mov word [ebp - 0x24], ax
jmp 0x451a11
mov esi, dword [ebp + 8]
lea eax, [ebp - 0x3c]
push eax
mov ecx, esi
call fcn.004277f3
mov eax, dword [ebp - 0x28]
cmp eax, 8
jb 0x451a4c
mov ecx, dword [ebp - 0x3c]
lea eax, [eax*2 + 2]
mov dword [ebp + 0xc], ecx
mov dword [ebp + 8], eax
cmp eax, 0x1000
jb 0x451a43
lea eax, [ebp + 8]
push eax
lea eax, [ebp + 0xc]
push eax
call fcn.004279ae
mov eax, dword [ebp + 8]
mov ecx, dword [ebp + 0xc]
push eax
push ecx
call fcn.006643a9
pop ecx
pop ecx
mov ecx, dword [ebp - 0xc]
mov eax, esi
pop edi
pop esi
pop ebx
mov dword fs:[0], ecx
leave
ret 0xc
Function at 0x451ac8
Capabilities:
Create directory

Disassembly:
mov eax, 0x6aa636
call fcn.00664608
sub esp, 0x34
push ebx
push esi
mov esi, dword [ebp + 8]
mov eax, esi
push edi
push 8
pop ebx
cmp dword [esi + 0x14], ebx
jb 0x451ae7
mov eax, dword [esi]
push 0x5c
push eax
call fcn.00667e5b
mov edi, eax
pop ecx
pop ecx
test edi, edi
jne 0x451b14
mov eax, esi
cmp dword [esi + 0x14], ebx
jb 0x451b00
mov eax, dword [esi]
push 0x2f
push eax
call fcn.00667e5b
mov edi, eax
pop ecx
pop ecx
test edi, edi
je 0x451c17
mov eax, esi
cmp dword [esi + 0x14], ebx
jb 0x451b1d
mov eax, dword [esi]
sub edi, eax
mov eax, esi
sar edi, 1
cmp dword [esi + 0x14], ebx
jb 0x451b2a
mov eax, dword [esi]
and dword [ebp - 0x40], 0
xor ecx, ecx
and dword [ebp - 0x30], 0
mov word [ebp - 0x40], cx
lea ecx, [ebp - 0x40]
push eax
mov dword [ebp - 0x2c], 7
call fcn.00427ba3
xor ecx, ecx
mov dword [ebp - 0x14], 7
xor eax, eax
mov dword [ebp - 0x28], ecx
push edi
mov word [ebp - 0x28], ax
lea eax, [ebp - 0x40]
push ecx
mov dword [ebp - 4], ecx
mov dword [ebp - 0x18], ecx
lea ecx, [ebp - 0x28]
push eax
call fcn.00437771
push 1
lea eax, [ebp - 0x28]
mov byte [ebp - 4], 1
push eax
call fcn.00451ac8
mov eax, dword [ebp - 0x14]
mov edi, 0x1000
cmp eax, ebx
jb 0x451bb9
mov ecx, dword [ebp - 0x28]
lea eax, [eax*2 + 2]
mov dword [ebp + 8], eax
mov dword [ebp - 0x10], ecx
cmp eax, edi
jb 0x451bb0
lea eax, [ebp + 8]
push eax
lea eax, [ebp - 0x10]
push eax
call fcn.004279ae
mov eax, dword [ebp + 8]
mov ecx, dword [ebp - 0x10]
push eax
push ecx
call fcn.006643a9
pop ecx
pop ecx
and dword [ebp - 0x18], 0
xor eax, eax
mov word [ebp - 0x28], ax
mov eax, dword [ebp - 0x2c]
mov dword [ebp - 0x14], 7
cmp eax, ebx
jb 0x451c01
mov ecx, dword [ebp - 0x40]
lea eax, [eax*2 + 2]
mov dword [ebp + 8], eax
mov dword [ebp - 0x10], ecx
cmp eax, edi
jb 0x451bf8
lea eax, [ebp + 8]
push eax
lea eax, [ebp - 0x10]
push eax
call fcn.004279ae
mov eax, dword [ebp + 8]
mov ecx, dword [ebp - 0x10]
push eax
push ecx
call fcn.006643a9
pop ecx
pop ecx
cmp byte [ebp + 0xc], 0
je 0x451c17
cmp dword [esi + 0x14], ebx
jb 0x451c0e
mov esi, dword [esi]
push 0
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
leave
ret 8
Function at 0x4524e4
Capabilities:
Delete directory
Enumerate files on windows
Enumerate files recursively

Disassembly:
mov eax, 0x6a9055
call fcn.00664608
sub esp, 0x280
push dword [ebp + 8]
lea eax, [ebp - 0x3c]
push str._s.
push eax
call fcn.004577f2
add esp, 0xc
and dword [ebp - 4], 0
lea eax, [ebp - 0x3c]
cmp dword [ebp - 0x28], 8
jb 0x452518
mov eax, dword [ebp - 0x3c]
push esi
lea ecx, [ebp - 0x28c]
push ecx
push eax
call dword [sym.imp.KERNEL32.DLL_FindFirstFileW]
mov esi, eax
cmp esi, 0xffffffff
je 0x4525d3
lea eax, [ebp - 0x260]
push eax
push dword [ebp + 8]
lea eax, [ebp - 0x24]
push 0x6d2770
push eax
call fcn.004577f2
add esp, 0x10
test byte [ebp - 0x28c], 0x10
mov byte [ebp - 4], 1
jne 0x45256e
cmp dword [ebp - 0x10], 8
lea eax, [ebp - 0x24]
jb 0x452566
mov eax, dword [ebp - 0x24]
push eax
call fcn.00462b8c
jmp 0x4525aa
push 0x6d5c0c
lea eax, [ebp - 0x260]
push eax
call fcn.0043bbd7
test eax, eax
je 0x4525aa
push 0x6d5c04
lea eax, [ebp - 0x260]
push eax
call fcn.0043bbd7
test eax, eax
je 0x4525aa
cmp dword [ebp - 0x10], 8
lea eax, [ebp - 0x24]
jb 0x4525a4
mov eax, dword [ebp - 0x24]
push eax
call fcn.004524e4
lea ecx, [ebp - 0x24]
mov byte [ebp - 4], 0
call fcn.00427afc
lea eax, [ebp - 0x28c]
push eax
push esi
call dword [sym.imp.KERNEL32.DLL_FindNextFileW]
test eax, eax
jne 0x452532
push esi
call dword [sym.imp.KERNEL32.DLL_FindClose]
push dword [ebp + 8]
call dword [sym.imp.KERNEL32.DLL_RemoveDirectoryW]
lea ecx, [ebp - 0x3c]
call fcn.00427afc
mov ecx, dword [ebp - 0xc]
pop esi
mov dword fs:[0], ecx
leave
ret 4

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

Disassembly:
push dword [esp + 4]
call dword [sym.imp.KERNEL32.DLL_GetFileAttributesW]
cmp eax, 0xffffffff
je 0x4526f5
test al, 0x10
je 0x4526f5
mov al, 1
jmp 0x4526f7
xor al, al
ret 4

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

Disassembly:
push dword [esp + 4]
call dword [sym.imp.KERNEL32.DLL_GetFileAttributesW]
cmp eax, 0xffffffff
je 0x452726
test al, 0x10
jne 0x452726
mov al, 1
jmp 0x452728
xor al, al
ret 4
Function at 0x4527e9
Capabilities:
Enumerate files on windows

Disassembly:
mov eax, 0x6aa6fc
call fcn.00664608
sub esp, 0x29c
push ebx
push esi
push edi
push 7
pop ebx
xor edi, edi
mov dword [ebp - 0x14], ebx
xor eax, eax
mov dword [ebp - 0x28], edi
push 0x6d5d3c
lea ecx, [ebp - 0x28]
mov dword [ebp - 0x18], edi
mov word [ebp - 0x28], ax
call fcn.00427ba3
push 1
lea eax, [ebp - 0x28]
mov dword [ebp - 4], edi
push eax
sub esp, 0x18
mov eax, esp
push dword [ebp + 0xc]
push eax
call fcn.00428e6f
lea eax, [ebp - 0x58]
push eax
call fcn.004516a9
mov eax, dword [ebp - 0x14]
mov byte [ebp - 4], 2
cmp eax, 8
jb 0x45287c
mov ecx, dword [ebp - 0x28]
lea eax, [eax*2 + 2]
mov dword [ebp + 0xc], eax
mov dword [ebp - 0x10], ecx
cmp eax, 0x1000
jb 0x452873
lea eax, [ebp + 0xc]
push eax
lea eax, [ebp - 0x10]
push eax
call fcn.004279ae
mov eax, dword [ebp + 0xc]
mov ecx, dword [ebp - 0x10]
push eax
push ecx
call fcn.006643a9
pop ecx
pop ecx
xor eax, eax
mov dword [ebp - 0x18], edi
cmp dword [ebp - 0x44], 8
mov word [ebp - 0x28], ax
lea eax, [ebp - 0x58]
mov dword [ebp - 0x14], ebx
jb 0x452894
mov eax, dword [ebp - 0x58]
lea ecx, [ebp - 0x2a8]
push ecx
push eax
call dword [sym.imp.KERNEL32.DLL_FindFirstFileW]
mov esi, eax
cmp esi, 0xffffffff
je 0x45294c
mov bl, byte [ebp + 0x10]
test bl, bl
jne 0x4528be
cmp word [ebp - 0x27c], 0x2e
je 0x45292f
xor eax, eax
mov dword [ebp - 0x40], edi
mov word [ebp - 0x40], ax
lea ecx, [ebp - 0x40]
lea eax, [ebp - 0x27c]
mov dword [ebp - 0x30], edi
push eax
mov dword [ebp - 0x2c], 7
call fcn.00427ba3
mov ecx, dword [ebp + 8]
lea eax, [ebp - 0x40]
push eax
mov byte [ebp - 4], 3
call fcn.004524be
mov eax, dword [ebp - 0x2c]
mov byte [ebp - 4], 2
cmp eax, 8
jb 0x45292f
mov ecx, dword [ebp - 0x40]
lea eax, [eax*2 + 2]
mov dword [ebp + 0x10], eax
mov dword [ebp + 0xc], ecx
cmp eax, 0x1000
jb 0x452926
lea eax, [ebp + 0x10]
push eax
lea eax, [ebp + 0xc]
push eax
call fcn.004279ae
mov eax, dword [ebp + 0x10]
mov ecx, dword [ebp + 0xc]
push eax
push ecx
call fcn.006643a9
pop ecx
pop ecx
lea eax, [ebp - 0x2a8]
push eax
push esi
call dword [sym.imp.KERNEL32.DLL_FindNextFileW]
test eax, eax
jne 0x4528b0
push esi
call dword [sym.imp.KERNEL32.DLL_FindClose]
lea ecx, [ebp - 0x58]
call fcn.00427afc
mov ecx, dword [ebp - 0xc]
pop edi
pop esi
mov dword fs:[0], ecx
pop ebx
leave
ret 0xc