joyce8/EMBER2024-capa huggingface dataset:
Function at 0x428ac0
Capabilities:
Check mutex on windows

Disassembly:
push ebp
mov ebp, esp
push 0xffffffffffffffff
push 0x4f3228
mov eax, dword fs:[0]
push eax
sub esp, 0xc
mov eax, dword [0x53f00c]
xor eax, ebp
mov dword [ebp - 0x10], eax
push ebx
push esi
push edi
push eax
lea eax, [ebp - 0xc]
mov dword fs:[0], eax
mov edi, ecx
mov eax, dword [edi]
mov ebx, dword [ebp + 8]
test eax, eax
je 0x428b03
push eax
call dword [sym.imp.KERNEL32.dll_CloseHandle]
mov dword [edi], 0
push ecx
lea ecx, [ebp - 0x14]
mov word [edi + 4], 0
mov dword [ebp - 0x14], 0
call fcn.0043be50
mov dword [ebp - 4], 0
mov esi, dword [ebp - 0x14]
cmp dword [esi], 0
je 0x428b30
lea eax, [esi + 8]
mov dword [ebp - 0x18], eax
jmp 0x428b37
mov dword [ebp - 0x18], 0
mov ecx, ebx
call fcn.00408d90
test al, al
jne 0x428b4b
mov ecx, ebx
call fcn.00408da0
jmp 0x428b4d
xor eax, eax
push eax
push 0
push dword [ebp - 0x18]
call dword [sym.imp.KERNEL32.dll_CreateMutexW]
mov ecx, dword [sym.imp.KERNEL32.dll_GetLastError]
mov dword [edi], eax
test eax, eax
jne 0x428b9e
call ecx
cmp eax, 5
jne 0x428b98
push 0xa
call dword [sym.imp.KERNEL32.dll_Sleep]
mov ecx, ebx
call fcn.00408d90
test al, al
jne 0x428b88
mov ecx, ebx
call fcn.00408da0
jmp 0x428b8a
xor eax, eax
push eax
push 0
push dword [ebp - 0x18]
call dword [sym.imp.KERNEL32.dll_CreateMutexW]
mov dword [edi], eax
mov ecx, dword [sym.imp.KERNEL32.dll_GetLastError]
mov eax, dword [edi]
test eax, eax
je 0x428bbc
call ecx
cmp eax, 0xb7
jne 0x428bb1
mov byte [edi + 5], 1
mov ecx, dword [edi]
call fcn.00435990
mov eax, dword [edi]
test eax, eax
setne bl
mov dword [ebp - 4], 0xffffffff
mov eax, dword [esi]
test eax, eax
je 0x428be2
push eax
push 0
call dword [sym.imp.KERNEL32.dll_GetProcessHeap]
push eax
call dword [sym.imp.KERNEL32.dll_HeapFree]
mov dword [esi], 0
mov eax, dword [esi + 4]
test eax, eax
je 0x428bf7
push eax
call dword [sym.imp.KERNEL32.dll_LocalFree]
mov dword [esi + 4], 0
push 0x2c
push esi
call fcn.004c9ffc
add esp, 8
mov dword [ebp - 0x14], 0
mov al, bl
mov ecx, dword [ebp - 0xc]
mov dword fs:[0], ecx
pop ecx
pop edi
pop esi
pop ebx
mov ecx, dword [ebp - 0x10]
xor ecx, ebp
call fcn.004c9ebd
mov esp, ebp
pop ebp
ret 4
Function at 0x42b150
Capabilities:
Create thread
Resume thread

Disassembly:
push ebp
mov ebp, esp
push 0xffffffffffffffff
push 0x4f3758
mov eax, dword fs:[0]
push eax
sub esp, 8
mov eax, dword [0x53f00c]
xor eax, ebp
mov dword [ebp - 0x10], eax
push ebx
push esi
push edi
push eax
lea eax, [ebp - 0xc]
mov dword fs:[0], eax
mov esi, ecx
mov eax, dword [esi + 8]
test eax, eax
jne 0x42b18b
xor al, al
jmp 0x42b212
add eax, 0x20
mov dword [ebp - 0x14], 0
push eax
lea ecx, [ebp - 0x14]
call fcn.004024c0
mov dword [ebp - 4], 0
mov eax, dword [esi + 8]
cmp dword [eax + 4], 0
je 0x42b1ff
mov ebx, dword [sym.imp.KERNEL32.dll_InterlockedExchangeAdd]
lea edi, [esi + 4]
push 1
push edi
call ebx
mov eax, dword [esi + 8]
add eax, 0xc
push eax
push 4
push esi
push 0x42ad30
push 0
push 0
call fcn.004d6c7e
mov ecx, dword [esi + 8]
add esp, 0x18
mov dword [ecx + 0x10], eax
mov eax, dword [esi + 8]
cmp dword [eax + 0x10], 0
jne 0x42b22e
push 0xffffffffffffffff
push edi
call ebx
sub eax, 1
jne 0x42b1f7
mov eax, dword [esi]
mov ecx, esi
call dword [eax + 4]
mov ecx, dword [esi + 8]
call fcn.0042aec0
xor bl, bl
mov dword [ebp - 4], 0xffffffff
lea ecx, [ebp - 0x14]
call fcn.004024f0
mov al, bl
mov ecx, dword [ebp - 0xc]
mov dword fs:[0], ecx
pop ecx
pop edi
pop esi
pop ebx
mov ecx, dword [ebp - 0x10]
xor ecx, ebp
call fcn.004c9ebd
mov esp, ebp
pop ebp
ret
mov byte [eax + 8], 1
mov eax, dword [esi + 8]
mov ecx, dword [eax + 0x24]
test ecx, ecx
je 0x42b246
push ecx
call dword [sym.imp.KERNEL32.dll_ResetEvent]
mov eax, dword [esi + 8]
push dword [eax + 0x10]
call dword [sym.imp.KERNEL32.dll_ResumeThread]
cmp eax, 0xffffffff
je 0x42b1e6
mov bl, 1
jmp 0x42b201

Function at 0x42b5a0
Capabilities:
Check for peb ntglobalflag flag

Disassembly:
push ebp
mov ebp, esp
push 0xffffffffffffffff
push 0x4f3854
mov eax, dword fs:[0]
push eax
push ecx
push esi
mov eax, dword [0x53f00c]
xor eax, ebp
push eax
lea eax, [ebp - 0xc]
mov dword fs:[0], eax
mov esi, ecx
mov dword [ebp - 0x10], esi
call fcn.00408f40
mov dword [ebp - 4], 0
lea ecx, [esi + 0x18]
call fcn.00408f40
mov byte [ebp - 4], 1
lea ecx, [esi + 0x30]
call fcn.00408f40
mov byte [ebp - 4], 2
lea ecx, [esi + 0x48]
call fcn.00408f40
mov byte [ebp - 4], 3
lea ecx, [esi + 0x70]
mov word [esi + 0x60], 0x101
mov dword [esi + 0x64], 0
mov dword [esi + 0x68], 0
mov dword [esi + 0x6c], 0
call fcn.00408f40
mov dword [ebp - 4], 0xffffffff
mov eax, esi
mov ecx, dword [ebp - 0xc]
mov dword fs:[0], ecx
pop ecx
pop esi
mov esp, ebp
pop ebp
ret
Function at 0x42da90
Capabilities:
Write file on windows

Disassembly:
push ebp
mov ebp, esp
push 0xffffffffffffffff
push 0x4f3c07
mov eax, dword fs:[0]
push eax
sub esp, 0x48
mov eax, dword [0x53f00c]
xor eax, ebp
mov dword [ebp - 0x10], eax
push ebx
push esi
push edi
push eax
lea eax, [ebp - 0xc]
mov dword fs:[0], eax
mov edi, ecx
mov esi, dword [ebp + 8]
push 4
mov dword [ebp - 0x4c], 0
call fcn.004c9ece
mov dword [ebp - 0x14], eax
mov dword [ebp - 4], 0
mov dword [eax], 0
mov dword [eax], 0xffffffff
mov dword [ebp - 4], 0xffffffff
mov dword [ebp - 0x4c], eax
mov dword [ebp - 4], 1
lea eax, [ebp - 0x4c]
push 2
push 0
push 0x40000000
push esi
push eax
call fcn.0042f0c0
test al, al
je 0x42dc63
lea eax, [ebp - 0x54]
xorps xmm0, xmm0
push eax
lea ecx, [ebp - 0x4c]
movlpd qword [ebp - 0x54], xmm0
call fcn.0043acf0
test al, al
je 0x42db3b
cmp dword [ebp - 0x50], 0
ja 0x42db34
cmp dword [ebp - 0x54], 0
jbe 0x42db3b
mov bl, 1
jmp 0x42dc65
xorps xmm0, xmm0
mov dword [ebp - 0x18], 0
lea ecx, [ebp - 0x20]
movq qword [ebp - 0x20], xmm0
call fcn.00416f92
mov byte [ebp - 4], 2
lea ecx, [ebp - 0x48]
call fcn.00416f92
mov byte [ebp - 4], 3
lea ecx, [ebp - 0x3c]
call fcn.00416f92
mov byte [ebp - 4], 4
lea ecx, [ebp - 0x30]
call fcn.00416f92
mov byte [ebp - 4], 5
mov dword [ebp - 0x24], 0xffffffff
mov byte [ebp - 4], 6
lea ecx, [edi + 0x24]
call fcn.00410240
test al, al
je 0x42db9b
lea ecx, [ebp - 0x48]
call fcn.0042c0b0
jmp 0x42dba4
push ecx
lea ecx, [ebp - 0x48]
call fcn.0042f200
lea edx, [ebp - 0x20]
lea ecx, [ebp - 0x48]
call fcn.0042d620
lea ecx, [ebp - 0x20]
mov dword [ebp - 0x14], 0
call fcn.00409460
mov edx, dword [eax]
call fcn.00416f63
mov esi, dword [ebp - 0x4c]
mov edi, eax
test esi, esi
jne 0x42dbd2
xor bl, bl
jmp 0x42dc1a
test edx, edx
jne 0x42dbda
xor bl, bl
jmp 0x42dc02
mov eax, dword [esi]
cmp eax, 0xffffffff
jne 0x42dbe5
xor bl, bl
jmp 0x42dc02
push 0
lea ecx, [ebp - 0x14]
push ecx
push edi
push edx
push eax
call dword [sym.imp.KERNEL32.dll_WriteFile]
test eax, eax
jne 0x42dbfc
xor bl, bl
jmp 0x42dc02
cmp edi, dword [ebp - 0x14]
sete bl
mov eax, dword [esi]
cmp eax, 0xffffffff
je 0x42dc1a
push eax
call dword [sym.imp.KERNEL32.dll_CloseHandle]
test eax, eax
je 0x42dc1a
mov dword [esi], 0xffffffff
lea ecx, [ebp - 0x20]
call fcn.00416f63
cmp dword [ebp - 0x14], eax
jne 0x42dc2f
test bl, bl
je 0x42dc2f
mov bl, 1
jmp 0x42dc31
xor bl, bl
mov byte [ebp - 4], 8
lea ecx, [ebp - 0x30]
call fcn.00416f8d
mov byte [ebp - 4], 7
lea ecx, [ebp - 0x3c]
call fcn.00416f8d
mov byte [ebp - 4], 2
lea ecx, [ebp - 0x48]
call fcn.00416f8d
mov byte [ebp - 4], 1
lea ecx, [ebp - 0x20]
call fcn.00416f8d
jmp 0x42dc68
xor bl, bl
mov esi, dword [ebp - 0x4c]
mov dword [ebp - 4], 0xffffffff
test esi, esi
je 0x42dc9d
mov eax, dword [esi]
cmp eax, 0xffffffff
je 0x42dc8b
test eax, eax
je 0x42dc8b
push eax
call dword [sym.imp.KERNEL32.dll_CloseHandle]
mov dword [esi], 0
push 4
push esi
call fcn.004c9ffc
add esp, 8
mov dword [ebp - 0x4c], 0
mov al, bl
mov ecx, dword [ebp - 0xc]
mov dword fs:[0], ecx
pop ecx
pop edi
pop esi
pop ebx
mov ecx, dword [ebp - 0x10]
xor ecx, ebp
call fcn.004c9ebd
mov esp, ebp
pop ebp
ret 4
Function at 0x42ed70
Capabilities:
Write file on windows

Disassembly:
push ebp
mov ebp, esp
push 0xffffffffffffffff
push 0x4f3e08
mov eax, dword fs:[0]
push eax
sub esp, 0x54
mov eax, dword [0x53f00c]
xor eax, ebp
mov dword [ebp - 0x10], eax
push ebx
push esi
push edi
push eax
lea eax, [ebp - 0xc]
mov dword fs:[0], eax
mov edi, ecx
mov esi, dword [ebp + 8]
lea ecx, [ebp - 0x20]
xorps xmm0, xmm0
mov dword [ebp - 0x18], 0
movq qword [ebp - 0x20], xmm0
call fcn.00416f92
mov dword [ebp - 4], 0
mov eax, ecx
push eax
mov ecx, edi
call fcn.0042e780
test al, al
jne 0x42edd3
xor bl, bl
jmp 0x42ef87
lea ecx, [ebp - 0x58]
call fcn.00416f92
mov byte [ebp - 4], 1
lea ecx, [ebp - 0x4c]
call fcn.00416f92
mov byte [ebp - 4], 2
lea ecx, [ebp - 0x40]
call fcn.00416f92
mov byte [ebp - 4], 3
mov dword [ebp - 0x34], 0xffffffff
mov byte [ebp - 4], 4
lea ecx, [edi + 0x24]
call fcn.00410240
test al, al
jne 0x42ee17
push ecx
lea ecx, [ebp - 0x58]
call fcn.0042f200
lea eax, [ebp - 0x20]
push eax
lea eax, [ebp - 0x58]
push eax
call fcn.0042e2b0
test al, al
jne 0x42ee2f
xor bl, bl
jmp 0x42ef63
xorps xmm0, xmm0
mov dword [ebp - 0x24], 0
lea ecx, [ebp - 0x2c]
movq qword [ebp - 0x2c], xmm0
call fcn.00416f92
mov byte [ebp - 4], 5
mov edx, ecx
lea ecx, [ebp - 0x58]
call fcn.0042d620
lea ecx, [ebp - 0x2c]
call fcn.00410240
test al, al
jne 0x42ef55
mov ecx, esi
call fcn.0043ae00
test al, al
je 0x42ef55
lea ecx, [ebp - 0x2c]
mov dword [ebp - 0x14], 0
call fcn.00409460
mov edx, dword [eax]
lea eax, [ebp - 0x14]
push eax
call fcn.00416f63
push eax
push edx
mov ecx, esi
call fcn.0043ac70
test al, al
je 0x42ef55
lea ecx, [ebp - 0x2c]
call fcn.00416f63
cmp dword [ebp - 0x14], eax
jne 0x42ef55
lea ecx, [ebp - 0x20]
call fcn.00416f63
mov dword [ebp - 0x30], eax
mov eax, dword [esi]
test eax, eax
je 0x42ef55
mov eax, dword [eax]
cmp eax, 0xffffffff
je 0x42ef55
push 0
lea ecx, [ebp - 0x14]
push ecx
push 4
lea ecx, [ebp - 0x30]
push ecx
push eax
call dword [sym.imp.KERNEL32.dll_WriteFile]
test eax, eax
je 0x42ef55
cmp dword [ebp - 0x14], 4
jne 0x42ef55
lea ecx, [ebp - 0x20]
call fcn.00410240
test al, al
jne 0x42ef22
call fcn.00409460
mov edx, dword [eax]
lea eax, [ebp - 0x14]
push eax
call fcn.00416f63
push eax
push edx
mov ecx, esi
call fcn.0043ac70
test al, al
je 0x42ef55
lea ecx, [ebp - 0x20]
call fcn.00416f63
cmp dword [ebp - 0x14], eax
jne 0x42ef55
cmp dword [esi], 0
xorps xmm0, xmm0
movlpd qword [ebp - 0x60], xmm0
je 0x42ef51
lea eax, [ebp - 0x60]
mov ecx, esi
push eax
push 1
push 0
push 0
call fcn.0043ad70
test al, al
je 0x42ef51
push dword [ebp - 0x5c]
mov ecx, esi
push dword [ebp - 0x60]
call fcn.0043ae50
mov bl, 1
jmp 0x42ef57
xor bl, bl
mov byte [ebp - 4], 4
lea ecx, [ebp - 0x2c]
call fcn.00416f8d
mov byte [ebp - 4], 7
lea ecx, [ebp - 0x40]
call fcn.00416f8d
mov byte [ebp - 4], 6
lea ecx, [ebp - 0x4c]
call fcn.00416f8d
mov byte [ebp - 4], 0
lea ecx, [ebp - 0x58]
call fcn.00416f8d
mov dword [ebp - 4], 0xffffffff
lea ecx, [ebp - 0x20]
call fcn.00416f8d
mov al, bl
mov ecx, dword [ebp - 0xc]
mov dword fs:[0], ecx
pop ecx
pop edi
pop esi
pop ebx
mov ecx, dword [ebp - 0x10]
xor ecx, ebp
call fcn.004c9ebd
mov esp, ebp
pop ebp
ret 4
Function at 0x4321e0
Capabilities:
Query environment variable

Disassembly:
push ebp
lea ebp, [esp - 0x414]
sub esp, 0x414
push 0xfffffffffffffffe
push 0x52c1d8
push 0x4cbc40
mov eax, dword fs:[0]
push eax
sub esp, 0x14
mov eax, dword [0x53f00c]
xor dword [ebp - 8], eax
xor eax, ebp
mov dword [ebp + 0x410], eax
push ebx
push esi
push edi
push eax
lea eax, [ebp - 0x10]
mov dword fs:[0], eax
mov dword [ebp - 0x18], esp
mov esi, edx
mov edi, ecx
mov dword [ebp - 0x20], edi
mov dword [ebp - 0x24], esi
mov dword [ebp - 4], 0
mov ecx, esi
call fcn.00416f9f
mov ecx, edi
call fcn.00432300
mov bl, al
mov byte [ebp - 0x19], bl
mov dword [ebp - 4], 0xfffffffe
jmp 0x43226c
test bl, bl
jne 0x4322cf
cmp edi, 0x1a
jne 0x4322cf
mov ecx, esi
call fcn.00416f9f
push 0x410
push 0
lea eax, [ebp]
push eax
call fcn.004ccc90
add esp, 0xc
push 0x207
lea eax, [ebp]
push eax
push str.APPDATA
call dword [sym.imp.KERNEL32.dll_GetEnvironmentVariableW]
lea eax, [ebp]
push eax
call fcn.00409e30
add esp, 4
push eax
lea eax, [ebp]
push eax
mov ecx, esi
call fcn.00409680
mov ecx, esi
call fcn.00408d90
movzx ebx, bl
mov ecx, 1
test al, al
cmove ebx, ecx
mov al, bl
mov ecx, dword [ebp - 0x10]
mov dword fs:[0], ecx
pop ecx
pop edi
pop esi
pop ebx
mov ecx, dword [ebp + 0x410]
xor ecx, ebp
call fcn.004c9ebd
lea esp, [ebp + 0x414]
pop ebp
ret
Function at 0x4349b0
Capabilities:
Check os version

Disassembly:
sub esp, 0x120
mov eax, dword [0x53f00c]
xor eax, esp
mov dword [esp + 0x11c], eax
push esi
push 1
mov esi, ecx
call fcn.004c9ece
mov dword [esi], eax
push 0x118
push 0
mov byte [eax], 0
lea eax, [esp + 0x14]
push eax
call fcn.004ccc90
add esp, 0x10
mov dword [esp + 4], 0x11c
lea eax, [esp + 4]
push eax
call dword [sym.imp.KERNEL32.dll_GetVersionExW]
test eax, eax
mov eax, esi
je 0x434a0c
cmp dword [esp + 8], 6
mov ecx, dword [esi]
setae dl
mov byte [ecx], dl
mov ecx, dword [esp + 0x120]
pop esi
xor ecx, esp
call fcn.004c9ebd
add esp, 0x120
ret
Function at 0x437050
Capabilities:
Check os version
Extract resource via kernel32 functions

Disassembly:
sub esp, 0x140
mov eax, dword [0x53f00c]
xor eax, esp
mov dword [esp + 0x13c], eax
push esi
mov esi, ecx
push 0x118
push 0
lea eax, [esi + 4]
push eax
call fcn.004ccc90
add esp, 0xc
mov dword [esi], 0x11c
push esi
call dword [sym.imp.KERNEL32.dll_GetVersionExW]
test eax, eax
je 0x437192
cmp dword [esi + 4], 6
push edi
ja 0x4370a6
jne 0x43712e
cmp dword [esi + 8], 2
jb 0x43712e
push str.kernel32.dll
call dword [sym.imp.KERNEL32.dll_GetModuleHandleW]
mov edi, eax
test edi, edi
je 0x43712e
push 0x10
push 1
push edi
call dword [sym.imp.KERNEL32.dll_FindResourceW]
test eax, eax
je 0x43712e
push eax
push edi
call dword [sym.imp.KERNEL32.dll_LoadResource]
test eax, eax
je 0x43712e
movups xmm0, xmmword [0x51c08c]
push eax
movups xmmword [esp + 0x128], xmm0
movups xmm0, xmmword [0x51c09c]
movups xmmword [esp + 0x138], xmm0
call dword [sym.imp.KERNEL32.dll_LockResource]
mov edi, eax
test edi, edi
je 0x43712e
lea eax, [esp + 0x124]
push eax
lea ecx, [edi + 6]
push ecx
call dword [sym.imp.KERNEL32.dll_lstrcmpiW]
test eax, eax
jne 0x43712e
cmp word [edi + 2], ax
jbe 0x43712e
movzx edx, word [edi + 0x32]
movzx ecx, word [edi + 0x30]
movzx eax, word [edi + 0x36]
mov dword [esi + 4], edx
mov dword [esi + 8], ecx
mov dword [esi + 0xc], eax
push str.ntdll.dll
call dword [sym.imp.KERNEL32.dll_GetModuleHandleW]
push str.RtlGetVersion
push eax
call dword [sym.imp.KERNEL32.dll_GetProcAddress]
mov edi, eax
test edi, edi
je 0x437179
push 0x118
lea eax, [esp + 0x10]
push 0
push eax
call fcn.004ccc90
add esp, 0xc
mov dword [esp + 8], 0x11c
lea eax, [esp + 8]
push eax
call edi
test eax, eax
jne 0x437179
mov eax, dword [esp + 0x14]
mov dword [esi + 0xc], eax
pop edi
mov al, 1
pop esi
mov ecx, dword [esp + 0x13c]
xor ecx, esp
call fcn.004c9ebd
add esp, 0x140
ret
mov ecx, dword [esp + 0x140]
xor al, al
pop esi
xor ecx, esp
call fcn.004c9ebd
add esp, 0x140
ret
Function at 0x438480
Capabilities:
Get common file path

Disassembly:
push ebp
lea ebp, [esp - 0x628]
sub esp, 0x628
push 0xffffffffffffffff
push 0x4f5320
mov eax, dword fs:[0]
push eax
sub esp, 0x18
mov eax, dword [0x53f00c]
xor eax, ebp
mov dword [ebp + 0x624], eax
push ebx
push esi
push edi
push eax
lea eax, [ebp - 0xc]
mov dword fs:[0], eax
mov esi, ecx
mov edi, dword [ebp + 0x630]
lea ecx, [ebp - 0x24]
mov ebx, dword [ebp + 0x634]
call fcn.00408f40
mov dword [ebp - 4], 0
lea ecx, [ebp]
push 0x541f84
mov dword [ebp], 0
call fcn.004024c0
mov byte [ebp - 4], 1
mov ecx, 0x542434
call fcn.00408d90
test al, al
jne 0x43852e
mov ecx, 0x542434
call fcn.00409460
lea ecx, [ebp - 0x24]
cmp ecx, eax
je 0x4385e3
mov ecx, 0x542434
call fcn.00409460
mov ecx, eax
cmp dword [eax + 0x14], 8
jb 0x438525
mov ecx, dword [eax]
push dword [eax + 0x10]
push ecx
jmp 0x4385db
push 0x20c
lea eax, [ebp + 0x418]
push 0
push eax
call fcn.004ccc90
add esp, 0xc
lea eax, [ebp + 0x418]
push eax
push 0x105
call dword [sym.imp.KERNEL32.dll_GetTempPathW]
dec eax
cmp eax, 0x103
ja 0x43866d
xor eax, eax
push 0x412
push eax
mov word [ebp + 0x622], ax
lea eax, [ebp + 4]
push eax
call fcn.004ccc90
add esp, 0xc
lea eax, [ebp + 4]
push 0x208
push eax
lea eax, [ebp + 0x418]
push eax
call dword [sym.imp.KERNEL32.dll_GetLongPathNameW]
cmp eax, 0x208
ja 0x4385c4
test eax, eax
je 0x4385c4
add eax, eax
cmp eax, 0x412
jae 0x4386b1
xor ecx, ecx
mov word [ebp + eax + 4], cx
lea eax, [ebp + 4]
push eax
call fcn.00409e30
add esp, 4
push eax
lea eax, [ebp + 4]
jmp 0x4385da
lea eax, [ebp + 0x418]
push eax
call fcn.00409e30
add esp, 4
push eax
lea eax, [ebp + 0x418]
push eax
lea ecx, [ebp - 0x24]
call fcn.00409680
mov byte [ebp - 4], 0
lea ecx, [ebp]
call fcn.004024f0
push ebx
push edi
lea eax, [ebp - 0x24]
mov ecx, esi
push eax
call fcn.00438410
test al, al
je 0x438604
mov bl, 1
jmp 0x43867b
push 0x20c
lea eax, [ebp + 0x418]
push 0
push eax
call fcn.004ccc90
add esp, 0xc
lea eax, [ebp + 0x418]
push 0x105
push eax
call dword [sym.imp.KERNEL32.dll_GetWindowsDirectoryW]
dec eax
cmp eax, 0x103
ja 0x438679
xor eax, eax
mov word [ebp + 0x622], ax
lea eax, [ebp + 0x418]
push eax
call fcn.00409e30
add esp, 4
lea ecx, [ebp - 0x24]
push eax
lea eax, [ebp + 0x418]
push eax
call fcn.00409680
push ebx
push edi
lea eax, [ebp - 0x24]
mov ecx, esi
push eax
call fcn.00438410
mov bl, al
jmp 0x43867b
mov byte [ebp - 4], 0
lea ecx, [ebp]
call fcn.004024f0
xor bl, bl
mov dword [ebp - 4], 0xffffffff
lea ecx, [ebp - 0x24]
call fcn.00408e60
mov al, bl
mov ecx, dword [ebp - 0xc]
mov dword fs:[0], ecx
pop ecx
pop edi
pop esi
pop ebx
mov ecx, dword [ebp + 0x624]
xor ecx, ebp
call fcn.004c9ebd
lea esp, [ebp + 0x628]
pop ebp
ret 8
call fcn.004ca1da
int3
Function at 0x4386c0
Capabilities:
Move file

Disassembly:
push ebp
mov ebp, esp
push 0xffffffffffffffff
push 0x4f5368
mov eax, dword fs:[0]
push eax
sub esp, 0x4c
mov eax, dword [0x53f00c]
xor eax, ebp
mov dword [ebp - 0x10], eax
push ebx
push esi
push edi
push eax
lea eax, [ebp - 0xc]
mov dword fs:[0], eax
mov esi, edx
mov edi, ecx
push 0xb
mov ecx, esi
call fcn.00408da0
push eax
mov ecx, edi
call fcn.00408da0
push eax
call dword [sym.imp.KERNEL32.dll_MoveFileExW]
test eax, eax
jne 0x4387e2
lea ecx, [ebp - 0x58]
xor bl, bl
call fcn.00408f40
mov dword [ebp - 4], 0
lea edx, [ebp - 0x58]
mov ecx, edi
call fcn.00444b10
test al, al
movzx ebx, bl
mov ecx, 1
cmovne ebx, ecx
lea ecx, [ebp - 0x40]
call fcn.00408f40
mov byte [ebp - 4], 1
lea edx, [ebp - 0x40]
mov ecx, esi
call fcn.00444b10
test al, al
jne 0x438755
test bl, bl
je 0x438773
push 0xb
lea ecx, [ebp - 0x40]
call fcn.00408da0
push eax
lea ecx, [ebp - 0x58]
call fcn.00408da0
push eax
call dword [sym.imp.KERNEL32.dll_MoveFileExW]
test eax, eax
jne 0x4387c7
mov ecx, esi
call fcn.00444510
cmp eax, 0xffffffff
je 0x4387f9
push esi
lea ecx, [ebp - 0x28]
call fcn.00408f60
mov byte [ebp - 4], 2
lea ecx, [ebp - 0x28]
call fcn.004448d0
test al, al
je 0x4387ed
lea edx, [ebp - 0x28]
mov ecx, esi
call fcn.004445b0
test al, al
je 0x4387ed
mov edx, esi
mov ecx, edi
call fcn.004445b0
lea ecx, [ebp - 0x28]
test al, al
je 0x4387e6
call fcn.004446c0
mov byte [ebp - 4], 1
lea ecx, [ebp - 0x28]
call fcn.00408e60
mov byte [ebp - 4], 0
lea ecx, [ebp - 0x40]
call fcn.00408e60
mov dword [ebp - 4], 0xffffffff
lea ecx, [ebp - 0x58]
call fcn.00408e60
mov al, 1
jmp 0x438816
mov edx, esi
call fcn.004445b0
mov byte [ebp - 4], 1
lea ecx, [ebp - 0x28]
call fcn.00408e60
mov byte [ebp - 4], 0
lea ecx, [ebp - 0x40]
call fcn.00408e60
mov dword [ebp - 4], 0xffffffff
lea ecx, [ebp - 0x58]
call fcn.00408e60
xor al, al
mov ecx, dword [ebp - 0xc]
mov dword fs:[0], ecx
pop ecx
pop edi
pop esi
pop ebx
mov ecx, dword [ebp - 0x10]
xor ecx, ebp
call fcn.004c9ebd
mov esp, ebp
pop ebp
ret

Function at 0x438c80
Capabilities:
Get common file path

Disassembly:
sub esp, 0x418
mov eax, dword [0x53f00c]
xor eax, esp
mov dword [esp + 0x414], eax
push esi
mov esi, ecx
call fcn.00416f9f
push 0x412
lea eax, [esp + 8]
push 0
push eax
call fcn.004ccc90
add esp, 0xc
lea eax, [esp + 4]
push eax
push 0x208
call dword [sym.imp.KERNEL32.dll_GetCurrentDirectoryW]
test eax, eax
jne 0x438cdc
xor al, al
pop esi
mov ecx, dword [esp + 0x414]
xor ecx, esp
call fcn.004c9ebd
add esp, 0x418
ret
cmp eax, 0x208
jae 0x438cc4
xor eax, eax
mov word [esp + 0x414], ax
lea eax, [esp + 4]
push eax
call fcn.00409e30
add esp, 4
mov ecx, esi
push eax
lea eax, [esp + 8]
push eax
call fcn.00409680
mov ecx, dword [esp + 0x418]
mov al, 1
pop esi
xor ecx, esp
call fcn.004c9ebd
add esp, 0x418
ret
Function at 0x43a650
Capabilities:
Read file on windows

Disassembly:
sub esp, 0xc
mov eax, dword [0x53f00c]
xor eax, esp
mov dword [esp + 8], eax
mov eax, dword [esp + 0x18]
push ebx
push ebp
mov ebp, ecx
mov dword [esp + 8], eax
push esi
mov esi, dword [esp + 0x20]
xor ebx, ebx
push edi
cmp dword [ebp + 0x10], 0xffffffff
mov edi, dword [esp + 0x20]
je 0x43a6d2
mov ecx, 0x100000
nop dword [eax]
nop word [eax + eax]
cmp esi, 0x100000
mov dword [esp + 0x14], 0
push 0
mov eax, esi
cmova eax, ecx
lea ecx, [esp + 0x18]
push ecx
push eax
push edi
push dword [ebp + 0x10]
call dword [sym.imp.KERNEL32.dll_ReadFile]
mov ecx, dword [esp + 0x14]
add ebx, ecx
test eax, eax
je 0x43a6d2
test ecx, ecx
je 0x43a6ce
add edi, ecx
sub esi, ecx
mov ecx, 0x100000
jne 0x43a690
xor eax, eax
jmp 0x43a6d7
mov eax, 1
mov ecx, dword [esp + 0x10]
test ecx, ecx
je 0x43a6e1
mov dword [ecx], ebx
mov ecx, dword [esp + 0x18]
pop edi
pop esi
pop ebp
pop ebx
xor ecx, esp
call fcn.004c9ebd
add esp, 0xc
ret 0xc

Function at 0x43ac30
Capabilities:
Read file on windows

Disassembly:
mov eax, dword [ecx]
test eax, eax
je 0x43ac68
mov edx, dword [esp + 4]
test edx, edx
je 0x43ac68
cmp dword [eax], 0xffffffff
je 0x43ac68
mov eax, dword [esp + 0xc]
push 0
push eax
push dword [esp + 0x10]
mov dword [eax], 0
mov eax, dword [ecx]
push edx
push dword [eax]
call dword [sym.imp.KERNEL32.dll_ReadFile]
test eax, eax
je 0x43ac68
mov al, 1
ret 0xc
xor al, al
ret 0xc

Function at 0x43ac70
Capabilities:
Write file on windows

Disassembly:
mov eax, dword [ecx]
push esi
push edi
test eax, eax
je 0x43acaa
mov ecx, dword [esp + 0xc]
test ecx, ecx
je 0x43acaa
mov eax, dword [eax]
cmp eax, 0xffffffff
je 0x43acaa
mov esi, dword [esp + 0x14]
mov edi, dword [esp + 0x10]
push 0
push esi
push edi
push ecx
push eax
call dword [sym.imp.KERNEL32.dll_WriteFile]
test eax, eax
je 0x43acaa
cmp edi, dword [esi]
jne 0x43acaa
pop edi
mov al, 1
pop esi
ret 0xc
pop edi
xor al, al
pop esi
ret 0xc

Function at 0x43acf0
Capabilities:
Get file size

Disassembly:
sub esp, 8
mov eax, dword [0x53f00c]
xor eax, esp
mov dword [esp + 4], eax
mov eax, dword [ecx]
push esi
push edi
mov edi, dword [esp + 0x14]
test eax, eax
je 0x43ad53
mov eax, dword [eax]
cmp eax, 0xffffffff
je 0x43ad53
lea ecx, [esp + 8]
push ecx
push eax
call dword [sym.imp.KERNEL32.dll_GetFileSize]
mov esi, eax
cmp esi, 0xffffffff
jne 0x43ad2e
call dword [sym.imp.KERNEL32.dll_GetLastError]
test eax, eax
jne 0x43ad53
mov eax, dword [esp + 8]
xor ecx, ecx
add ecx, esi
mov dword [edi], ecx
adc eax, 0
mov dword [edi + 4], eax
mov al, 1
pop edi
pop esi
mov ecx, dword [esp + 4]
xor ecx, esp
call fcn.004c9ebd
add esp, 8
ret 4
mov ecx, dword [esp + 0xc]
xor al, al
pop edi
pop esi
xor ecx, esp
call fcn.004c9ebd
add esp, 8
ret 4
Function at 0x43ae50
Capabilities:
Clear file content

Disassembly:
push ebp
mov ebp, esp
and esp, 0xfffffff8
sub esp, 0x14
push ebx
push esi
mov esi, ecx
push edi
cmp dword [esi], 0
je 0x43aefe
lea eax, [esp + 0x18]
xorps xmm0, xmm0
push eax
push 1
push 0
push 0
movlpd qword [esp + 0x28], xmm0
call fcn.0043ad70
test al, al
je 0x43aefe
mov edi, dword [ebp + 0xc]
lea eax, [esp + 0x10]
push eax
push 0
push edi
push dword [ebp + 8]
xorps xmm0, xmm0
mov ecx, esi
movlpd qword [esp + 0x20], xmm0
call fcn.0043ad70
test al, al
je 0x43aefe
mov eax, dword [ebp + 8]
xor bl, bl
cmp dword [esp + 0x10], eax
jne 0x43aed4
cmp dword [esp + 0x14], edi
jne 0x43aed4
mov eax, dword [esi]
test eax, eax
jne 0x43aec1
xor bl, bl
jmp 0x43aed4
mov eax, dword [eax]
cmp eax, 0xffffffff
je 0x43aebd
push eax
call dword [sym.imp.KERNEL32.dll_SetEndOfFile]
test eax, eax
setne bl
lea eax, [esp + 0x10]
xorps xmm0, xmm0
push eax
push 0
push dword [esp + 0x24]
mov ecx, esi
movlpd qword [esp + 0x1c], xmm0
push dword [esp + 0x24]
call fcn.0043ad70
mov al, bl
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret 8
pop edi
pop esi
xor al, al
pop ebx
mov esp, ebp
pop ebp
ret 8