joyce8/EMBER2024-capa huggingface dataset:
Function at 0x4274f0
Capabilities:
Check if file exists
Get file version info

Disassembly:
push ebp
mov ebp, esp
sub esp, 0x4c
mov eax, dword [ebp + 8]
push eax
call dword [sym.imp.SHLWAPI.dll_PathFileExistsW]
test eax, eax
jne 0x42750b
xor al, al
jmp 0x4275fe
mov dword [ebp - 0xc], 0
lea ecx, [ebp - 0xc]
push ecx
mov edx, dword [ebp + 8]
push edx
call sub.VERSION.dll_GetFileVersionInfoSizeW
mov dword [ebp - 8], eax
cmp dword [ebp - 8], 0
jne 0x42752f
xor al, al
jmp 0x4275fe
mov byte [ebp - 0xd], 0
mov eax, dword [ebp - 8]
push eax
call fcn.004a39e4
add esp, 4
mov dword [ebp - 4], eax
cmp dword [ebp - 4], 0
je 0x4275a8
mov ecx, dword [ebp - 4]
push ecx
mov edx, dword [ebp - 8]
push edx
push 0
mov eax, dword [ebp + 8]
push eax
call sub.VERSION.dll_GetFileVersionInfoW
test eax, eax
je 0x4275a8
mov dword [ebp - 0x48], 0
mov dword [ebp - 0x4c], 0
lea ecx, [ebp - 0x48]
push ecx
lea edx, [ebp - 0x4c]
push edx
push 0x5965fc
mov eax, dword [ebp - 4]
push eax
call sub.VERSION.dll_VerQueryValueW
test eax, eax
je 0x4275a8
push 0x34
mov ecx, dword [ebp - 0x4c]
push ecx
lea edx, [ebp - 0x44]
push edx
call fcn.004a3630
add esp, 0xc
xor eax, eax
cmp dword [ebp - 0x44], 0xfeef04bd
sete al
mov byte [ebp - 0xd], al
mov ecx, dword [ebp - 4]
push ecx
call fcn.004a35a0
add esp, 4
movzx edx, byte [ebp - 0xd]
test edx, edx
jne 0x4275c0
xor al, al
jmp 0x4275fe
mov eax, dword [ebp - 0x3c]
shr eax, 0x10
movzx ecx, ax
mov edx, dword [ebp + 0xc]
mov dword [edx], ecx
mov eax, dword [ebp - 0x3c]
and eax, 0xffff
movzx ecx, ax
mov edx, dword [ebp + 0x10]
mov dword [edx], ecx
mov eax, dword [ebp - 0x38]
shr eax, 0x10
movzx ecx, ax
mov edx, dword [ebp + 0x14]
mov dword [edx], ecx
mov eax, dword [ebp - 0x38]
and eax, 0xffff
movzx ecx, ax
mov edx, dword [ebp + 0x18]
mov dword [edx], ecx
mov al, 1
mov esp, ebp
pop ebp
ret
Function at 0x427ef0
Capabilities:
Check if file exists
Write file on windows

Disassembly:
push ebp
mov ebp, esp
sub esp, 0xc30
mov eax, dword [0x5f44b0]
xor eax, ebp
mov dword [ebp - 4], eax
mov word [ebp - 0xa10], 0
push 0x206
push 0
lea eax, [ebp - 0xa0e]
push eax
call fcn.0049e690
add esp, 0xc
push 0x5966f8
lea ecx, [ebp - 0xa10]
push ecx
call fcn.0049eb52
add esp, 8
mov dword [ebp - 0xc24], 0x1f4
mov word [ebp - 0x5f8], 0
push 0x3e6
push 0
lea edx, [ebp - 0x5f6]
push edx
call fcn.0049e690
add esp, 0xc
lea eax, [ebp - 0xa10]
push eax
push 0x596708
lea ecx, [ebp - 0xc18]
push ecx
call fcn.0042abe0
add esp, 0xc
mov word [ebp - 0x210], 0
push 0x206
push 0
lea edx, [ebp - 0x20e]
push edx
call fcn.0049e690
add esp, 0xc
mov word [ebp - 0x808], 0
push 0x206
push 0
lea eax, [ebp - 0x806]
push eax
call fcn.0049e690
add esp, 0xc
push 0x104
lea ecx, [ebp - 0x808]
push ecx
push 0
call dword [sym.imp.KERNEL32.dll_GetModuleFileNameW]
push 0x5c
lea edx, [ebp - 0x808]
push edx
call fcn.00407130
add esp, 8
mov word [eax], 0
lea eax, [ebp - 0xc18]
push eax
call dword [sym.imp.SHLWAPI.dll_PathFileExistsW]
test eax, eax
jne 0x427ff8
jmp 0x428180
lea ecx, [ebp - 0x808]
push ecx
call fcn.0049e752
add esp, 4
lea edx, [ebp + eax*2 - 0x806]
push edx
lea eax, [ebp - 0x210]
push eax
call fcn.0049eb52
add esp, 8
lea ecx, [ebp - 0x210]
push ecx
lea edx, [ebp - 0xa10]
push edx
push 0x596720
lea eax, [ebp - 0xc18]
push eax
call fcn.0042abe0
add esp, 0x10
lea ecx, [ebp + 0xc]
mov dword [ebp - 0xc1c], ecx
mov edx, dword [ebp - 0xc1c]
push edx
mov eax, dword [ebp + 8]
push eax
mov ecx, dword [ebp - 0xc24]
sub ecx, 1
push ecx
lea edx, [ebp - 0x5f8]
push edx
call fcn.004a3f21
add esp, 0x10
mov eax, dword [ebp - 0xc24]
mov word [ebp + eax*2 - 0x5fa], 0
mov dword [ebp - 0xc20], 0
lea ecx, [ebp - 0xc18]
push ecx
call dword [sym.imp.SHLWAPI.dll_PathFileExistsW]
test eax, eax
je 0x4280a2
mov dword [ebp - 0xc20], 1
push 0x596734
lea edx, [ebp - 0xc18]
push edx
call fcn.004a3e3c
add esp, 8
mov dword [ebp - 0x5fc], eax
cmp dword [ebp - 0x5fc], 0
je 0x428180
cmp dword [ebp - 0xc20], 0
jne 0x4280f5
mov word [ebp - 0xc30], 0xfeff
mov eax, dword [ebp - 0x5fc]
push eax
push 2
push 1
lea ecx, [ebp - 0xc30]
push ecx
call fcn.004a3cf4
add esp, 0x10
lea edx, [ebp - 0x5f8]
push edx
call fcn.0049e752
add esp, 4
mov dword [ebp - 0xc28], eax
mov eax, dword [ebp - 0x5fc]
push eax
mov ecx, dword [ebp - 0xc28]
shl ecx, 1
push ecx
push 1
lea edx, [ebp - 0x5f8]
push edx
call fcn.004a3cf4
add esp, 0x10
mov word [ebp - 0xc2c], 0xd
mov eax, dword [ebp - 0x5fc]
push eax
push 2
push 1
lea ecx, [ebp - 0xc2c]
push ecx
call fcn.004a3cf4
add esp, 0x10
mov word [ebp - 0xc2c], 0xa
mov edx, dword [ebp - 0x5fc]
push edx
push 2
push 1
lea eax, [ebp - 0xc2c]
push eax
call fcn.004a3cf4
add esp, 0x10
mov ecx, dword [ebp - 0x5fc]
push ecx
call fcn.004a3b19
add esp, 4
mov ecx, dword [ebp - 4]
xor ecx, ebp
call fcn.0049e381
mov esp, ebp
pop ebp
ret
Function at 0x428910
Capabilities:
Set registry value

Disassembly:
push ebp
mov ebp, esp
sub esp, 0x14
mov dword [ebp - 8], 0
mov dword [ebp - 0xc], 0
mov dword [ebp - 0x14], 0
lea eax, [ebp - 8]
push eax
push 0xf013f
push 0
push 0x5967c8
push reloc.WS2_32.dll_accept
call dword [sym.imp.ADVAPI32.dll_RegOpenKeyExW]
mov dword [ebp - 0x10], eax
cmp dword [ebp - 0x10], 0
je 0x428954
jmp 0x428a19
push 0
lea ecx, [ebp - 0xc]
push ecx
push 0
push 0xf013f
push 0
push 0
push 0
mov edx, dword [ebp + 8]
push edx
mov eax, dword [ebp - 8]
push eax
call dword [sym.imp.ADVAPI32.dll_RegCreateKeyExW]
mov dword [ebp - 0x10], eax
cmp dword [ebp - 0x10], 0
je 0x42898d
mov ecx, dword [ebp - 8]
push ecx
call dword [sym.imp.ADVAPI32.dll_RegCloseKey]
jmp 0x428a19
push 0
lea edx, [ebp - 0x14]
push edx
push 0
push 0xf013f
push 0
push 0
push 0
mov eax, dword [ebp + 0xc]
push eax
mov ecx, dword [ebp - 0xc]
push ecx
call dword [sym.imp.ADVAPI32.dll_RegCreateKeyExW]
mov dword [ebp - 0x10], eax
cmp dword [ebp - 0x10], 0
je 0x4289cd
mov edx, dword [ebp - 0xc]
push edx
call dword [sym.imp.ADVAPI32.dll_RegCloseKey]
mov eax, dword [ebp - 0x14]
push eax
call dword [sym.imp.ADVAPI32.dll_RegCloseKey]
jmp 0x428a19
mov dword [ebp - 4], 0x104
mov ecx, dword [ebp + 0x14]
push ecx
call fcn.0049e752
add esp, 4
lea edx, [eax + eax + 2]
push edx
mov eax, dword [ebp + 0x14]
push eax
push 1
push 0
mov ecx, dword [ebp + 0x10]
push ecx
mov edx, dword [ebp - 0x14]
push edx
call dword [sym.imp.ADVAPI32.dll_RegSetValueExW]
mov eax, dword [ebp - 0x14]
push eax
call dword [sym.imp.ADVAPI32.dll_RegCloseKey]
mov ecx, dword [ebp - 0xc]
push ecx
call dword [sym.imp.ADVAPI32.dll_RegCloseKey]
mov edx, dword [ebp - 8]
push edx
call dword [sym.imp.ADVAPI32.dll_RegCloseKey]
mov esp, ebp
pop ebp
ret
Function at 0x429020
Capabilities:
Set registry value

Disassembly:
push ebp
mov ebp, esp
sub esp, 0x18
mov dword [ebp - 8], 0
mov dword [ebp - 0xc], 0
mov dword [ebp - 0x10], 0
mov dword [ebp - 0x18], 0
mov dword [ebp - 0x14], 0
lea eax, [ebp - 8]
push eax
push 0xf013f
push 0
mov ecx, dword [ebp + 0xc]
push ecx
push reloc.WS2_32.dll_closesocket
call dword [sym.imp.ADVAPI32.dll_RegOpenKeyExW]
mov dword [ebp - 0x14], eax
cmp dword [ebp - 0x14], 0
je 0x429071
jmp 0x429186
lea edx, [ebp - 0xc]
push edx
push 0xf013f
push 0
push 0x596804
mov eax, dword [ebp - 8]
push eax
call dword [sym.imp.ADVAPI32.dll_RegOpenKeyExW]
mov dword [ebp - 0x14], eax
cmp dword [ebp - 0x14], 0
je 0x4290a3
mov ecx, dword [ebp - 8]
push ecx
call dword [sym.imp.ADVAPI32.dll_RegCloseKey]
jmp 0x429186
push 0
lea edx, [ebp - 0x10]
push edx
push 0
push 0xf013f
push 0
push 0
push 0
mov eax, dword [ebp + 8]
push eax
mov ecx, dword [ebp - 0xc]
push ecx
call dword [sym.imp.ADVAPI32.dll_RegCreateKeyExW]
mov dword [ebp - 0x14], eax
cmp dword [ebp - 0x14], 0
je 0x4290e6
mov edx, dword [ebp - 0xc]
push edx
call dword [sym.imp.ADVAPI32.dll_RegCloseKey]
mov eax, dword [ebp - 8]
push eax
call dword [sym.imp.ADVAPI32.dll_RegCloseKey]
jmp 0x429186
push 0
lea ecx, [ebp - 0x18]
push ecx
push 0
push 0xf013f
push 0
push 0
push 0
mov edx, dword [ebp + 0x10]
push edx
mov eax, dword [ebp - 0x10]
push eax
call dword [sym.imp.ADVAPI32.dll_RegCreateKeyExW]
mov dword [ebp - 0x14], eax
cmp dword [ebp - 0x14], 0
je 0x429130
mov ecx, dword [ebp - 0x10]
push ecx
call dword [sym.imp.ADVAPI32.dll_RegCloseKey]
mov edx, dword [ebp - 0xc]
push edx
call dword [sym.imp.ADVAPI32.dll_RegCloseKey]
mov eax, dword [ebp - 8]
push eax
call dword [sym.imp.ADVAPI32.dll_RegCloseKey]
jmp 0x429186
mov dword [ebp - 4], 0x104
mov ecx, dword [ebp + 0x18]
push ecx
call fcn.0049e752
add esp, 4
lea edx, [eax + eax + 2]
push edx
mov eax, dword [ebp + 0x18]
push eax
push 1
push 0
mov ecx, dword [ebp + 0x14]
push ecx
mov edx, dword [ebp - 0x18]
push edx
call dword [sym.imp.ADVAPI32.dll_RegSetValueExW]
mov eax, dword [ebp - 0x18]
push eax
call dword [sym.imp.ADVAPI32.dll_RegCloseKey]
mov ecx, dword [ebp - 0x10]
push ecx
call dword [sym.imp.ADVAPI32.dll_RegCloseKey]
mov edx, dword [ebp - 0xc]
push edx
call dword [sym.imp.ADVAPI32.dll_RegCloseKey]
mov eax, dword [ebp - 8]
push eax
call dword [sym.imp.ADVAPI32.dll_RegCloseKey]
mov esp, ebp
pop ebp
ret
Function at 0x429190
Capabilities:
Set registry value

Disassembly:
push ebp
mov ebp, esp
sub esp, 0x14
mov dword [ebp - 8], 0
mov dword [ebp - 0xc], 0
mov dword [ebp - 0x14], 0
lea eax, [ebp - 8]
push eax
push 0xf013f
push 0
push 0x596818
push reloc.OLEAUT32.dll_SysReAllocString
call dword [sym.imp.ADVAPI32.dll_RegOpenKeyExW]
mov dword [ebp - 0x10], eax
cmp dword [ebp - 0x10], 0
je 0x4291d4
jmp 0x429299
push 0
lea ecx, [ebp - 0xc]
push ecx
push 0
push 0xf013f
push 0
push 0
push 0
mov edx, dword [ebp + 8]
push edx
mov eax, dword [ebp - 8]
push eax
call dword [sym.imp.ADVAPI32.dll_RegCreateKeyExW]
mov dword [ebp - 0x10], eax
cmp dword [ebp - 0x10], 0
je 0x42920d
mov ecx, dword [ebp - 8]
push ecx
call dword [sym.imp.ADVAPI32.dll_RegCloseKey]
jmp 0x429299
push 0
lea edx, [ebp - 0x14]
push edx
push 0
push 0xf013f
push 0
push 0
push 0
mov eax, dword [ebp + 0xc]
push eax
mov ecx, dword [ebp - 0xc]
push ecx
call dword [sym.imp.ADVAPI32.dll_RegCreateKeyExW]
mov dword [ebp - 0x10], eax
cmp dword [ebp - 0x10], 0
je 0x42924d
mov edx, dword [ebp - 0xc]
push edx
call dword [sym.imp.ADVAPI32.dll_RegCloseKey]
mov eax, dword [ebp - 0x14]
push eax
call dword [sym.imp.ADVAPI32.dll_RegCloseKey]
jmp 0x429299
mov dword [ebp - 4], 0x104
mov ecx, dword [ebp + 0x14]
push ecx
call fcn.0049e752
add esp, 4
lea edx, [eax + eax + 2]
push edx
mov eax, dword [ebp + 0x14]
push eax
push 1
push 0
mov ecx, dword [ebp + 0x10]
push ecx
mov edx, dword [ebp - 0x14]
push edx
call dword [sym.imp.ADVAPI32.dll_RegSetValueExW]
mov eax, dword [ebp - 0x14]
push eax
call dword [sym.imp.ADVAPI32.dll_RegCloseKey]
mov ecx, dword [ebp - 0xc]
push ecx
call dword [sym.imp.ADVAPI32.dll_RegCloseKey]
mov edx, dword [ebp - 8]
push edx
call dword [sym.imp.ADVAPI32.dll_RegCloseKey]
mov esp, ebp
pop ebp
ret
Function at 0x429ff0
Capabilities:
Enumerate files on windows
Enumerate files recursively

Disassembly:
push ebp
mov ebp, esp
push 0xffffffffffffffff
push 0x5897f7
mov eax, dword fs:[0]
push eax
sub esp, 0x6b8
mov eax, dword [0x5f44b0]
xor eax, ebp
mov dword [ebp - 0x10], eax
push eax
lea eax, [ebp - 0xc]
mov dword fs:[0], eax
mov ecx, dword [ebp + 8]
call fcn.00401670
push eax
push 0x596948
lea eax, [ebp - 0x21c]
push eax
call fcn.0042abe0
add esp, 0xc
lea ecx, [ebp - 0x474]
push ecx
lea edx, [ebp - 0x21c]
push edx
call dword [sym.imp.KERNEL32.dll_FindFirstFileW]
mov dword [ebp - 0x478], eax
cmp dword [ebp - 0x478], 0xffffffff
je 0x42a1c6
lea eax, [ebp - 0x474]
push eax
mov ecx, dword [ebp - 0x478]
push ecx
call dword [sym.imp.KERNEL32.dll_FindNextFileW]
mov dword [ebp - 0x220], eax
cmp dword [ebp - 0x220], 0
jne 0x42a087
jmp 0x42a1c6
movzx edx, word [ebp - 0x448]
cmp edx, 0x2e
jne 0x42a095
jmp 0x42a052
movzx eax, word [ebp - 0x446]
test eax, eax
jne 0x42a0a2
jmp 0x42a052
movzx ecx, word [ebp - 0x446]
cmp ecx, 0x2e
jne 0x42a0bb
movzx edx, word [ebp - 0x444]
test edx, edx
jne 0x42a0bb
jmp 0x42a052
mov eax, dword [ebp - 0x474]
and eax, 0x10
je 0x42a151
mov word [ebp - 0x684], 0
push 0x206
push 0
lea ecx, [ebp - 0x682]
push ecx
call fcn.0049e690
add esp, 0xc
lea edx, [ebp - 0x448]
push edx
mov ecx, dword [ebp + 8]
call fcn.00401670
push eax
push 0x596954
lea eax, [ebp - 0x684]
push eax
call fcn.0042abe0
add esp, 0x10
lea ecx, [ebp - 0x684]
push ecx
lea ecx, [ebp - 0x6a0]
call fcn.00401600
mov dword [ebp - 4], 0
mov edx, dword [ebp + 0x10]
push edx
mov eax, dword [ebp + 0xc]
push eax
lea ecx, [ebp - 0x6a0]
push ecx
call fcn.00429ff0
add esp, 0xc
mov dword [ebp - 4], 0xffffffff
lea ecx, [ebp - 0x6a0]
call fcn.00401640
jmp 0x42a1c1
mov ecx, dword [ebp + 0xc]
call fcn.00401670
push eax
lea edx, [ebp - 0x448]
push edx
call fcn.00419910
add esp, 8
test eax, eax
je 0x42a1c1
lea eax, [ebp - 0x448]
push eax
mov ecx, dword [ebp + 8]
push ecx
lea edx, [ebp - 0x6bc]
push edx
call fcn.00403f60
add esp, 0xc
mov dword [ebp - 0x6c0], eax
mov eax, dword [ebp - 0x6c0]
mov dword [ebp - 0x6c4], eax
mov dword [ebp - 4], 1
mov ecx, dword [ebp - 0x6c4]
push ecx
mov ecx, dword [ebp + 0x10]
call fcn.0042b3f0
mov dword [ebp - 4], 0xffffffff
lea ecx, [ebp - 0x6bc]
call fcn.00401640
jmp 0x42a052
mov edx, dword [ebp - 0x478]
push edx
call dword [sym.imp.KERNEL32.dll_FindClose]
mov ecx, dword [ebp - 0xc]
mov dword fs:[0], ecx
pop ecx
mov ecx, dword [ebp - 0x10]
xor ecx, ebp
call fcn.0049e381
mov esp, ebp
pop ebp
ret
Function at 0x42a460
Capabilities:
Query or enumerate registry value

Disassembly:
push ebp
mov ebp, esp
push 0xffffffffffffffff
push 0x5898bd
mov eax, dword fs:[0]
push eax
sub esp, 0x224
mov eax, dword [0x5f44b0]
xor eax, ebp
mov dword [ebp - 0x10], eax
push eax
lea eax, [ebp - 0xc]
mov dword fs:[0], eax
mov dword [ebp - 0x230], 0
mov dword [ebp - 4], 2
mov dword [ebp - 0x1c], 0
mov dword [ebp - 0x20], 0
mov word [ebp - 0x22c], 0
push 0x206
push 0
lea eax, [ebp - 0x22a]
push eax
call fcn.0049e690
add esp, 0xc
lea ecx, [ebp - 0x1c]
push ecx
push 0x20019
push 0
lea ecx, [ebp + 0x10]
call fcn.00401670
push eax
mov edx, dword [ebp + 0xc]
push edx
call dword [sym.imp.ADVAPI32.dll_RegOpenKeyExW]
mov dword [ebp - 0x20], eax
cmp dword [ebp - 0x20], 0
je 0x42a529
push 0x596a40
mov ecx, dword [ebp + 8]
call fcn.00401600
mov eax, dword [ebp - 0x230]
or eax, 1
mov dword [ebp - 0x230], eax
mov byte [ebp - 4], 1
lea ecx, [ebp + 0x10]
call fcn.00401640
mov byte [ebp - 4], 0
lea ecx, [ebp + 0x2c]
call fcn.00401640
mov eax, dword [ebp + 8]
jmp 0x42a59e
mov dword [ebp - 0x18], 0x104
mov dword [ebp - 0x14], 1
lea ecx, [ebp - 0x18]
push ecx
lea edx, [ebp - 0x22c]
push edx
lea eax, [ebp - 0x14]
push eax
push 0
lea ecx, [ebp + 0x2c]
call fcn.00401670
push eax
mov ecx, dword [ebp - 0x1c]
push ecx
call dword [sym.imp.ADVAPI32.dll_RegQueryValueExW]
mov edx, dword [ebp - 0x1c]
push edx
call dword [sym.imp.ADVAPI32.dll_RegCloseKey]
lea eax, [ebp - 0x22c]
push eax
mov ecx, dword [ebp + 8]
call fcn.00401600
mov ecx, dword [ebp - 0x230]
or ecx, 1
mov dword [ebp - 0x230], ecx
mov byte [ebp - 4], 1
lea ecx, [ebp + 0x10]
call fcn.00401640
mov byte [ebp - 4], 0
lea ecx, [ebp + 0x2c]
call fcn.00401640
mov eax, dword [ebp + 8]
mov ecx, dword [ebp - 0xc]
mov dword fs:[0], ecx
pop ecx
mov ecx, dword [ebp - 0x10]
xor ecx, ebp
call fcn.0049e381
mov esp, ebp
pop ebp
ret
Function at 0x435720
Capabilities:
Print debug messages

Disassembly:
push ebp
mov ebp, esp
sub esp, 0x28
mov dword [ebp - 0x28], ecx
mov byte [ebp - 9], 0
lea ecx, [ebp - 8]
call fcn.00410b60
lea eax, [ebp - 0x14]
push eax
mov ecx, dword [ebp - 0x28]
add ecx, 0x210
call fcn.0042b900
mov ecx, dword [eax]
mov edx, dword [eax + 4]
mov dword [ebp - 8], ecx
mov dword [ebp - 4], edx
jmp 0x435762
push 0
lea eax, [ebp - 0x1c]
push eax
lea ecx, [ebp - 8]
call fcn.00435b50
lea ecx, [ebp - 0x24]
push ecx
mov ecx, dword [ebp - 0x28]
add ecx, 0x210
call fcn.0044a0c0
push eax
lea ecx, [ebp - 8]
call fcn.0042f740
movzx edx, al
test edx, edx
je 0x435844
mov eax, dword [ebp + 8]
add eax, 0xa8
push eax
call dword [sym.imp.KERNEL32.dll_OutputDebugStringA]
push str._n_n_n_n
call dword [sym.imp.KERNEL32.dll_OutputDebugStringA]
lea ecx, [ebp - 8]
call fcn.004341d0
add eax, 0xa8
push eax
call dword [sym.imp.KERNEL32.dll_OutputDebugStringA]
push 0x596c90
call dword [sym.imp.KERNEL32.dll_OutputDebugStringA]
mov ecx, dword [ebp + 8]
add ecx, 0x28
push ecx
call dword [sym.imp.KERNEL32.dll_OutputDebugStringA]
push 0x596c94
call dword [sym.imp.KERNEL32.dll_OutputDebugStringA]
lea ecx, [ebp - 8]
call fcn.004341d0
add eax, 0x28
push eax
call dword [sym.imp.KERNEL32.dll_OutputDebugStringA]
push 0x596c98
call dword [sym.imp.KERNEL32.dll_OutputDebugStringA]
lea ecx, [ebp - 8]
call fcn.004341d0
add eax, 0xa8
push eax
mov edx, dword [ebp + 8]
add edx, 0xa8
push edx
call fcn.004a4bb0
add esp, 8
test eax, eax
jne 0x43583f
lea ecx, [ebp - 8]
call fcn.004341d0
add eax, 0x28
push eax
mov eax, dword [ebp + 8]
add eax, 0x28
push eax
call fcn.004a4bb0
add esp, 8
test eax, eax
jne 0x43583f
mov byte [ebp - 9], 1
jmp 0x435844
jmp 0x435754
movzx ecx, byte [ebp - 9]
test ecx, ecx
jne 0x435862
mov edx, dword [ebp + 8]
add edx, 0xa8
push edx
call fcn.0049e390
add esp, 4
test eax, eax
jne 0x435866
xor al, al
jmp 0x43587a
mov eax, dword [ebp + 8]
push eax
mov ecx, dword [ebp - 0x28]
add ecx, 0x210
call fcn.00435aa0
mov al, 1
mov esp, ebp
pop ebp
ret 4
Function at 0x436e50
Capabilities:
Check if file exists
Create directory

Disassembly:
push ebp
mov ebp, esp
sub esp, 0x20
mov eax, dword [ebp + 8]
push eax
call fcn.0049e390
add esp, 4
mov dword [ebp - 8], eax
mov ecx, dword [ebp - 8]
add ecx, 1
push ecx
call fcn.0047e280
add esp, 4
mov dword [ebp - 0x1c], eax
mov edx, dword [ebp - 0x1c]
mov dword [ebp - 0xc], edx
mov eax, dword [ebp + 8]
push eax
mov ecx, dword [ebp - 0xc]
push ecx
call fcn.0049ea30
add esp, 8
mov byte [ebp - 1], 1
mov dword [ebp - 0x14], 0
mov dword [ebp - 0x10], 0
jmp 0x436eaa
mov edx, dword [ebp - 0x14]
add edx, 1
mov dword [ebp - 0x14], edx
mov eax, dword [ebp - 0x14]
cmp eax, dword [ebp - 8]
jg 0x436f11
mov ecx, dword [ebp - 0xc]
add ecx, dword [ebp - 0x14]
movsx edx, byte [ecx]
cmp edx, 0x5c
jne 0x436f0f
mov eax, dword [ebp - 0xc]
add eax, dword [ebp - 0x14]
movsx cx, byte [eax]
mov word [ebp - 0x18], cx
mov edx, dword [ebp - 0xc]
add edx, dword [ebp - 0x14]
mov byte [edx], 0
mov eax, dword [ebp - 0xc]
push eax
call dword [sym.imp.SHLWAPI.dll_PathFileExistsA]
test eax, eax
jne 0x436efb
push 0
mov ecx, dword [ebp - 0xc]
push ecx
call dword [sym.imp.KERNEL32.dll_CreateDirectoryA]
test eax, eax
jne 0x436efb
mov byte [ebp - 1], 0
jmp 0x436f11
mov edx, dword [ebp - 0xc]
add edx, dword [ebp - 0x14]
mov al, byte [ebp - 0x18]
mov byte [edx], al
mov ecx, dword [ebp - 0x14]
add ecx, 1
mov dword [ebp - 0x10], ecx
jmp 0x436ea1
mov edx, dword [ebp - 0xc]
mov dword [ebp - 0x20], edx
mov eax, dword [ebp - 0x20]
push eax
call fcn.0047e27b
add esp, 4
movzx eax, byte [ebp - 1]
mov esp, ebp
pop ebp
ret
Function at 0x437d10
Capabilities:
Link many functions at runtime

Disassembly:
push ebp
mov ebp, esp
push ecx
mov dword [ebp - 4], ecx
push 0x596d3c
call dword [sym.imp.KERNEL32.dll_LoadLibraryW]
mov ecx, dword [ebp - 4]
mov dword [ecx], eax
mov edx, dword [ebp - 4]
cmp dword [edx], 0
jne 0x437d36
xor eax, eax
jmp 0x437dfc
push str.GetNativeSystemInfo
mov eax, dword [ebp - 4]
mov ecx, dword [eax]
push ecx
call dword [sym.imp.KERNEL32.dll_GetProcAddress]
mov edx, dword [ebp - 4]
mov dword [edx + 8], eax
push str.IsWow64Process
mov eax, dword [ebp - 4]
mov ecx, dword [eax]
push ecx
call dword [sym.imp.KERNEL32.dll_GetProcAddress]
mov edx, dword [ebp - 4]
mov dword [edx + 0xc], eax
push str.Wow64DisableWow64FsRedirection
mov eax, dword [ebp - 4]
mov ecx, dword [eax]
push ecx
call dword [sym.imp.KERNEL32.dll_GetProcAddress]
mov edx, dword [ebp - 4]
mov dword [edx + 0x18], eax
push 0x596d9c
mov eax, dword [ebp - 4]
mov ecx, dword [eax]
push ecx
call dword [sym.imp.KERNEL32.dll_GetProcAddress]
mov edx, dword [ebp - 4]
mov dword [edx + 0x14], eax
push str.GetSystemWow64DirectoryW
mov eax, dword [ebp - 4]
mov ecx, dword [eax]
push ecx
call dword [sym.imp.KERNEL32.dll_GetProcAddress]
mov edx, dword [ebp - 4]
mov dword [edx + 0x10], eax
push str.advapi32.dll
call dword [sym.imp.KERNEL32.dll_LoadLibraryW]
mov ecx, dword [ebp - 4]
mov dword [ecx + 4], eax
mov edx, dword [ebp - 4]
cmp dword [edx + 4], 0
jne 0x437dc7
xor eax, eax
jmp 0x437dfc
push 0x596df4
mov eax, dword [ebp - 4]
mov ecx, dword [eax + 4]
push ecx
call dword [sym.imp.KERNEL32.dll_GetProcAddress]
mov edx, dword [ebp - 4]
mov dword [edx + 0x20], eax
push str.Wow64RevertWow64FsRedirection
mov eax, dword [ebp - 4]
mov ecx, dword [eax + 4]
push ecx
call dword [sym.imp.KERNEL32.dll_GetProcAddress]
mov edx, dword [ebp - 4]
mov dword [edx + 0x1c], eax
mov eax, 1
mov esp, ebp
pop ebp
ret

Function at 0x438080
Capabilities:
Hash data with md5

Disassembly:
push ebp
mov ebp, esp
push ecx
mov dword [ebp - 4], ecx
mov eax, dword [ebp - 4]
mov byte [eax + 0x68], 0
mov ecx, dword [ebp - 4]
mov dword [ecx + 0x14], 0
mov edx, dword [ebp - 4]
mov dword [edx + 0x10], 0
mov eax, dword [ebp - 4]
mov dword [eax], 0x67452301
mov ecx, dword [ebp - 4]
mov dword [ecx + 4], 0xefcdab89
mov edx, dword [ebp - 4]
mov dword [edx + 8], 0x98badcfe
mov eax, dword [ebp - 4]
mov dword [eax + 0xc], 0x10325476
mov esp, ebp
pop ebp
ret
Function at 0x439c70
Capabilities:
Check mutex on windows

Disassembly:
push ebp
mov ebp, esp
push ecx
mov dword [ebp - 4], ecx
mov eax, dword [ebp + 8]
push eax
push 1
push 0
call dword [sym.imp.KERNEL32.dll_CreateMutexW]
mov ecx, dword [ebp - 4]
mov dword [ecx], eax
call dword [sym.imp.KERNEL32.dll_GetLastError]
xor edx, edx
cmp eax, 0xb7
setne dl
mov eax, dword [ebp - 4]
mov dword [eax + 4], edx
mov eax, dword [ebp - 4]
mov esp, ebp
pop ebp
ret 4

Function at 0x439ce0
Capabilities:
Check mutex on windows

Disassembly:
push ebp
mov ebp, esp
push ecx
mov dword [ebp - 4], ecx
mov eax, dword [ebp + 8]
push eax
push 1
push 0
call dword [sym.imp.KERNEL32.dll_CreateMutexW]
mov ecx, dword [ebp - 4]
mov dword [ecx], eax
call dword [sym.imp.KERNEL32.dll_GetLastError]
xor edx, edx
cmp eax, 0xb7
setne dl
mov eax, dword [ebp - 4]
mov dword [eax + 4], edx
mov esp, ebp
pop ebp
ret 4

Function at 0x43a120
Capabilities:
Extract resource via kernel32 functions

Disassembly:
push ebp
mov ebp, esp
sub esp, 0x24
mov dword [ebp - 4], 0
mov dword [ebp - 0x10], 0
lea eax, [ebp - 0x10]
push eax
push 0x64
push 0
call sub.NETAPI32.dll_NetWkstaGetInfo
mov dword [ebp - 8], eax
cmp dword [ebp - 8], 0
jne 0x43a18d
mov ecx, dword [ebp - 0x10]
mov edx, dword [ecx + 0xc]
mov dword [ebp - 0x18], edx
mov eax, dword [ebp - 0x10]
mov ecx, dword [eax + 0x10]
mov dword [ebp - 0x14], ecx
mov edx, dword [ebp - 0x14]
and edx, 0xffff
movzx eax, dx
mov ecx, dword [ebp - 0x18]
and ecx, 0xffff
movzx edx, cx
shl edx, 0x10
or eax, edx
mov dword [ebp - 4], eax
mov eax, dword [ebp - 0x10]
push eax
call sub.NETAPI32.dll_NetApiBufferFree
mov eax, dword [ebp - 4]
jmp 0x43a21d
push 2
push 0
push 0x597230
call dword [sym.imp.KERNEL32.dll_LoadLibraryExW]
mov dword [ebp - 0xc], eax
cmp dword [ebp - 0xc], 0
je 0x43a21a
push 0x10
push 1
mov ecx, dword [ebp - 0xc]
push ecx
call dword [sym.imp.KERNEL32.dll_FindResourceW]
mov dword [ebp - 0x1c], eax
cmp dword [ebp - 0x1c], 0
je 0x43a210
mov edx, dword [ebp - 0x1c]
push edx
mov eax, dword [ebp - 0xc]
push eax
call dword [sym.imp.KERNEL32.dll_LoadResource]
mov dword [ebp - 0x20], eax
cmp dword [ebp - 0x20], 0
je 0x43a210
mov ecx, dword [ebp - 0x20]
push ecx
call dword [sym.imp.KERNEL32.dll_LockResource]
mov dword [ebp - 0x24], eax
cmp dword [ebp - 0x24], 0
je 0x43a210
push 0x598164
mov edx, dword [ebp - 0x24]
add edx, 6
push edx
call dword [sym.imp.KERNEL32.dll_lstrcmpiW]
test eax, eax
jne 0x43a210
mov eax, dword [ebp - 0x24]
movzx ecx, word [eax + 2]
test ecx, ecx
jle 0x43a210
mov edx, dword [ebp - 0x24]
mov eax, dword [edx + 0x30]
mov dword [ebp - 4], eax
mov ecx, dword [ebp - 0xc]
push ecx
call dword [sym.imp.KERNEL32.dll_FreeLibrary]
mov eax, dword [ebp - 4]
mov esp, ebp
pop ebp
ret