joyce8/EMBER2024-capa huggingface dataset:
Function at 0x4071fe
Capabilities:
Check if file exists
Get file attributes

Disassembly:
push dword [esp + 4]
call dword [sym.imp.KERNEL32.dll_GetFileAttributesW]
xor ecx, ecx
cmp eax, 0xffffffff
push 0
cmove eax, ecx
push eax
push dword [esp + 0x14]
push ecx
push 1
push dword [esp + 0x1c]
push dword [esp + 0x1c]
call dword [sym.imp.KERNEL32.dll_CreateFileW]
ret 0xc

Function at 0x40725a
Capabilities:
Query or enumerate registry value

Disassembly:
push ebp
mov ebp, esp
push ecx
push ecx
push edi
lea eax, [ebp - 4]
mov dword [ebp - 8], 0x4000
push eax
mov eax, dword [ebp + 0x18]
neg eax
sbb eax, eax
and eax, 0x100
or eax, 0x20019
push eax
push dword [ebp + 0xc]
push dword [ebp + 8]
call fcn.004068fb
mov edi, dword [ebp + 0x14]
test eax, eax
jne 0x4072cc
push esi
lea eax, [ebp - 8]
push eax
push edi
lea eax, [ebp + 0x18]
push eax
push 0
push dword [ebp + 0x10]
push dword [ebp - 4]
call dword [sym.imp.ADVAPI32.dll_RegQueryValueExW]
push dword [ebp - 4]
mov esi, eax
call dword [sym.imp.ADVAPI32.dll_RegCloseKey]
xor eax, eax
test esi, esi
mov word [edi + 0x3ffe], ax
pop esi
jne 0x4072cc
cmp dword [ebp + 0x18], 1
je 0x4072d1
cmp dword [ebp + 0x18], 2
je 0x4072d1
xor eax, eax
mov word [edi], ax
pop edi
leave
ret 0x14

Function at 0x4072d6
Capabilities:
Create process on windows

Disassembly:
mov eax, dword [esp + 4]
push eax
and dword [eax + 0x24], 0
mov dword [eax], 0x3c
call dword [sym.imp.SHELL32.dll_ShellExecuteExW]
ret 4

Function at 0x407339
Capabilities:
Get common file path

Disassembly:
push ebp
mov ebp, esp
push ecx
push ecx
push esi
mov esi, dword [ebp + 8]
push edi
push 0x64
pop edi
dec edi
mov dword [ebp - 8], 0x73006e
mov dword [ebp - 4], 0x61
call dword [sym.imp.KERNEL32.dll_GetTickCount]
push 0x1a
pop ecx
xor edx, edx
div ecx
push esi
add word [ebp - 4], dx
lea eax, [ebp - 8]
push 0
push eax
push dword [ebp + 0xc]
call dword [sym.imp.KERNEL32.dll_GetTempFileNameW]
test eax, eax
jne 0x407383
test edi, edi
jne 0x407346
mov word [esi], ax
jmp 0x407385
mov eax, esi
pop edi
pop esi
leave
ret 8

Function at 0x407480
Capabilities:
Check if file exists
Get file attributes
Set file attributes

Disassembly:
push esi
push dword [esp + 8]
call dword [sym.imp.KERNEL32.dll_GetFileAttributesW]
mov esi, eax
cmp esi, 0xffffffff
je 0x4074a2
mov ecx, esi
and ecx, 0xfffffffe
push ecx
push dword [esp + 0xc]
call dword [sym.imp.KERNEL32.dll_SetFileAttributesW]
mov eax, esi
pop esi
ret 4

Function at 0x40771d
Capabilities:
Encode data using xor
Hash data with crc32

Disassembly:
cmp dword [0x467414], 0
push esi
jne 0x407757
xor ecx, ecx
push 8
mov edx, ecx
pop esi
mov eax, edx
and al, 1
movzx eax, al
neg eax
sbb eax, eax
shr edx, 1
and eax, 0xedb88320
xor edx, eax
sub esi, 1
jne 0x40772e
mov dword [ecx*4 + 0x467410], edx
inc ecx
cmp ecx, 0x100
jl 0x407729
mov ecx, dword [esp + 8]
mov edx, dword [esp + 0x10]
not ecx
test edx, edx
je 0x407781
mov esi, dword [esp + 0xc]
movzx eax, byte [esi]
xor eax, ecx
shr ecx, 8
movzx eax, al
xor ecx, dword [eax*4 + 0x467410]
inc esi
sub edx, 1
jne 0x407769
not ecx
mov eax, ecx
pop esi
ret 0xc
Function at 0x401000
Capabilities:
Set socket configuration

Disassembly:
push ebx
mov ebx, dword [esp + 8]
push ebp
push esi
test ebx, ebx
push edi
je 0x401080
mov esi, dword [esp + 0x18]
test esi, esi
je 0x401080
mov eax, dword [esp + 0x1c]
test eax, eax
je 0x401080
lea eax, [esi + 4]
push eax
call sub.WSOCK32.dll_inet_addr
add esi, 0x14
mov edi, eax
push esi
call sub.WSOCK32.dll_inet_addr
mov ecx, dword [ebx + 0x19c]
mov ebp, eax
mov eax, dword [esp + 0x1c]
mov esi, ebp
mov dword [esp + 0x14], ecx
and esi, edi
mov ecx, dword [eax]
xor ebx, ebx
test ecx, ecx
jbe 0x401080
lea edi, [eax + 0x14]
mov edx, dword [esp + 0x14]
mov ecx, dword [edi - 0x10]
cmp ecx, edx
jne 0x401076
mov ecx, dword [edi]
and ecx, ebp
cmp esi, ecx
jne 0x401076
lea edx, [edi - 8]
push edx
call fcn.0044cda0
add esp, 4
test eax, eax
je 0x401087
mov eax, dword [esp + 0x1c]
mov ecx, dword [eax]
inc ebx
add edi, 0x18
cmp ebx, ecx
jb 0x40104f
pop edi
pop esi
pop ebp
xor eax, eax
pop ebx
ret
pop edi
pop esi
pop ebp
mov eax, 1
pop ebx
ret

Function at 0x4010a0
Capabilities:
Set socket configuration

Disassembly:
mov eax, dword fs:[0]
push 0xffffffffffffffff
push 0x4c75b8
push eax
mov dword fs:[0], esp
sub esp, 0x28
push ebx
push ebp
push esi
push edi
call dword [sym.imp.KERNEL32.dll_GetTickCount]
mov ecx, dword [0x4fc428]
xor esi, esi
cmp ecx, esi
mov ebx, 1
je 0x4010e1
cmp eax, ecx
jb 0x4010e1
add ecx, 0xea60
cmp ecx, eax
jae 0x40113e
lea ecx, [esp + 0x14]
call fcn.0040ac80
push ebx
push esi
push ecx
mov dword [esp + 0x4c], esi
mov ecx, esp
mov dword [esp + 0x1c], esp
push str.SGW_DisCheckInternetIP
call fcn.00430f40
lea ecx, [esp + 0x20]
call fcn.0040ae70
cmp dword [esp + 0x34], 0xf0000001
jne 0x401127
lea ecx, [esp + 0x14]
call fcn.0040b3e0
cmp eax, ebx
mov dword [0x4ea130], esi
je 0x40112d
mov dword [0x4ea130], ebx
lea ecx, [esp + 0x14]
mov dword [esp + 0x40], 0xffffffff
call fcn.0040add0
mov edi, dword [esp + 0x48]
cmp edi, esi
je 0x4011e5
cmp dword [0x4ea130], esi
je 0x4011e5
lea ebp, [edi + 4]
push ebp
call sub.WSOCK32.dll_inet_addr
add edi, 0x14
push edi
call sub.WSOCK32.dll_inet_addr
cmp eax, 0xffffffff
jne 0x40116f
mov esi, ebx
push edi
lea ecx, [esp + 0x14]
call fcn.00430e30
mov edi, eax
push ebp
lea ecx, [esp + 0x4c]
mov dword [esp + 0x44], ebx
call fcn.00430e30
mov ecx, dword [edi]
mov edx, dword [eax]
push ecx
push edx
push str.COSgw::IsInternetIP____s____s_
push 0x4ea168
push 0xf
push 0x5000bc
mov byte [esp + 0x58], 2
call fcn.0040c110
add esp, 0x18
lea ecx, [esp + 0x48]
mov byte [esp + 0x40], bl
call fcn.004317b0
lea ecx, [esp + 0x10]
mov dword [esp + 0x40], 0xffffffff
call fcn.004317b0
push esi
push str.COSgw::IsInternetIP___d_
push 0x4ea168
push 0xf
push 0x5000bc
call fcn.0040c110
add esp, 0x14
mov ecx, dword [esp + 0x38]
mov eax, esi
pop edi
pop esi
pop ebp
mov dword fs:[0], ecx
pop ebx
add esp, 0x34
ret
Function at 0x4014b0
Capabilities:
Print debug messages

Disassembly:
mov eax, dword fs:[0]
push 0xffffffffffffffff
push 0x4c7618
push eax
mov dword fs:[0], esp
sub esp, 8
push esi
mov esi, dword [esp + 0x1c]
test esi, esi
jne 0x4014e3
xor eax, eax
pop esi
mov ecx, dword [esp + 8]
mov dword fs:[0], ecx
add esp, 0x14
ret
lea ecx, [esp + 4]
call fcn.00443170
push 0x20019
push str.SOFTWAREClassesCLSIDAFFAEF68_CDC5_4aad_9D3F_997C0D55927BProgID
push reloc.OLEAUT32.dll_SysReAllocString
lea ecx, [esp + 0x10]
mov dword [esp + 0x20], 0
call fcn.004432e0
test eax, eax
jne 0x40153e
push str.open_reg_error_clsid__n
call dword [sym.imp.KERNEL32.dll_OutputDebugStringA]
lea ecx, [esp + 4]
mov dword [esp + 0x14], 0xffffffff
call fcn.00443260
xor eax, eax
pop esi
mov ecx, dword [esp + 8]
mov dword fs:[0], ecx
add esp, 0x14
ret
push 0
push 0x4ea29c
lea ecx, [esp + 0xc]
call fcn.00443480
push 0
push 0x4ea298
lea ecx, [esp + 0xc]
mov dword [esi], eax
call fcn.00443480
push 0
push 0x4ea294
lea ecx, [esp + 0xc]
mov dword [esi + 8], eax
call fcn.00443480
mov dword [esi + 4], eax
lea eax, [esp + 0x1c]
push eax
push 0x4ea290
lea ecx, [esp + 0xc]
mov dword [esp + 0x24], 0
call fcn.00443700
test eax, eax
je 0x4015a2
cmp dword [esp + 0x1c], 0xc
jb 0x4015a2
mov ecx, dword [eax + 8]
mov dword [esi + 0xc], ecx
lea ecx, [esp + 4]
call fcn.00443330
lea ecx, [esp + 4]
mov dword [esp + 0x14], 0xffffffff
call fcn.00443260
mov ecx, dword [esp + 0xc]
mov eax, 1
pop esi
mov dword fs:[0], ecx
add esp, 0x14
ret

Function at 0x4015e0
Capabilities:
Print debug messages

Disassembly:
push 0xffffffffffffffff
push 0x4c7638
mov eax, dword fs:[0]
push eax
mov dword fs:[0], esp
sub esp, 0x34
lea ecx, [esp]
call fcn.00443170
push 0x20019
push str.SOFTWARETECOcular.3Agent
push reloc.OLEAUT32.dll_SysReAllocString
lea ecx, [esp + 0xc]
mov dword [esp + 0x48], 0
call fcn.004432e0
test eax, eax
jne 0x401652
push str.open_reg_error_agent__n
call dword [sym.imp.KERNEL32.dll_OutputDebugStringA]
lea ecx, [esp]
mov dword [esp + 0x3c], 0xffffffff
call fcn.00443260
xor eax, eax
mov ecx, dword [esp + 0x34]
mov dword fs:[0], ecx
add esp, 0x40
ret
lea eax, [esp + 8]
push 8
push eax
push str.ConnServerTime3
lea ecx, [esp + 0xc]
mov dword [esp + 0x14], 0
mov dword [esp + 0x18], 0
call fcn.004435c0
fld qword [esp + 8]
lea ecx, [esp + 0x1c]
mov dword [esp + 0x18], 0
fstp qword [esp + 0x10]
push ecx
call fcn.0040e7cc
lea edx, [esp + 0x10]
lea eax, [esp + 0x28]
push edx
push eax
lea ecx, [esp + 0x24]
call fcn.0040edd1
fld qword [esp + 0x28]
fmul qword [0x4ccaa0]
fadd qword [0x4cca98]
call fcn.00418984
mov ecx, dword [esp + 0x44]
mov dword [ecx], eax
lea ecx, [esp]
call fcn.00443330
lea ecx, [esp]
mov dword [esp + 0x3c], 0xffffffff
call fcn.00443260
mov ecx, dword [esp + 0x34]
mov eax, 1
mov dword fs:[0], ecx
add esp, 0x40
ret
Function at 0x4024a0
Capabilities:
Terminate process

Disassembly:
sub esp, 0x1c
push esi
call fcn.00401420
mov esi, eax
mov al, byte [0x4fc444]
test al, 1
jne 0x4024ea
mov dl, al
push 0x402590
or dl, 1
mov dword [0x4fc438], 0
mov byte [0x4fc444], dl
mov dword [0x4fc43c], 0
mov dword [0x4fc440], 0
call fcn.004188e0
add esp, 4
test esi, esi
pop esi
je 0x4024fd
mov dword [0x4fc45c], 0
add esp, 0x1c
ret
mov eax, dword [0x4fc45c]
test eax, eax
je 0x402554
lea eax, [esp + 4]
push eax
call fcn.0040e7cc
lea ecx, [esp + 0x10]
push 0x4fc438
push ecx
lea ecx, [esp + 0xc]
call fcn.0040edd1
fld qword [esp + 0x10]
fmul qword [0x4ccaa0]
fadd qword [0x4cca98]
call fcn.00418984
mov dword [esp], eax
fild dword [esp]
fcomp qword [0x4ccab0]
fnstsw ax
test ah, 1
jne 0x402581
push 0
call fcn.00418bfb
lea edx, [esp + 0x10]
mov dword [0x4fc45c], 1
push edx
call fcn.0040e7cc
mov ecx, dword [eax]
mov edx, dword [eax + 4]
mov dword [0x4fc438], ecx
mov dword [0x4fc43c], edx
mov eax, dword [eax + 8]
mov dword [0x4fc440], eax
add esp, 0x1c
ret
Function at 0x403070
Capabilities:
Print debug messages

Disassembly:
push esi
mov esi, ecx
mov eax, dword [esi]
call dword [eax + 0x10]
push 0
push 0x3f
push 2
push 0x21c7
mov ecx, esi
call fcn.004c6453
test eax, eax
pop esi
jne 0x40309a
push str.create_socket_fail
call dword [sym.imp.KERNEL32.dll_OutputDebugStringA]
ret

Function at 0x4030a0
Capabilities:
Print debug messages

Disassembly:
push 0xffffffffffffffff
push 0x4c7878
mov eax, dword fs:[0]
push eax
mov dword fs:[0], esp
sub esp, 0x10
push ebx
mov ebx, dword [esp + 0x28]
push ebp
mov ebp, dword [esp + 0x28]
push esi
mov esi, dword [esp + 0x34]
push edi
mov edi, ecx
mov eax, dword [esi + 8]
push eax
push ebx
push ebp
push str.COSgwSocket::SendData__________08x___08x___d_
push 0x4ea168
push 0xf
push 0x5000bc
call fcn.0040c110
add esp, 0x1c
mov ecx, edi
call fcn.00403070
xor eax, eax
push 0x21c7
mov dword [esp + 0x14], eax
mov word [esp + 0x14], 2
mov dword [esp + 0x18], eax
mov dword [esp + 0x1c], eax
mov dword [esp + 0x20], eax
call sub.WSOCK32.dll_htons
mov word [esp + 0x12], ax
mov eax, dword [esi + 8]
xor ecx, ecx
test eax, eax
mov dword [esp + 0x30], ecx
jle 0x40321e
mov edx, dword [esi + 4]
mov eax, dword [edx + ecx*4]
test eax, eax
je 0x40320e
push 0
lea ecx, [esp + 0x14]
push 0x10
mov dword [esp + 0x1c], eax
mov eax, dword [edi]
push ecx
push ebx
push ebp
mov ecx, edi
call dword [eax + 0x3c]
mov edx, dword [esp + 0x14]
mov esi, eax
push edx
push esi
push str.COSgwSocket::SendData_1___d___08x_
push 0x4ea168
push 0xf
push 0x5000bc
call fcn.0040c110
add esp, 0x18
cmp esi, 0xffffffff
jne 0x4031fb
call sub.WSOCK32.dll_WSAGetLastError
mov esi, eax
mov eax, dword [0x4ebc94]
mov dword [esp + 0x34], eax
mov dword [esp + 0x28], 0
call sub.WSOCK32.dll_WSAGetLastError
push eax
lea ecx, [esp + 0x38]
push str.send_data_error._last_error__d_
push ecx
call fcn.004aa595
mov edx, dword [esp + 0x40]
add esp, 0xc
push edx
call dword [sym.imp.KERNEL32.dll_OutputDebugStringA]
push esi
push str.COSgwSocket::SendData_2___d_
push 0x4ea168
push 0xf
push 0x5000bc
call fcn.0040c110
add esp, 0x14
call sub.WSOCK32.dll_WSAGetLastError
cmp eax, 0x2733
je 0x4031ea
push str.reinit_socket
call dword [sym.imp.KERNEL32.dll_OutputDebugStringA]
mov ecx, edi
call fcn.00403070
lea ecx, [esp + 0x34]
mov dword [esp + 0x28], 0xffffffff
call fcn.004ad4f5
push 0xc8
call dword [sym.imp.KERNEL32.dll_Sleep]
mov ecx, dword [esp + 0x30]
mov esi, dword [esp + 0x38]
mov eax, dword [esi + 8]
inc ecx
cmp ecx, eax
mov dword [esp + 0x30], ecx
jl 0x403129
mov eax, dword [edi]
mov ecx, edi
call dword [eax + 0x10]
push str.COSgwSocket::SendData___
push 0x4ea168
push 0xf
push 0x5000bc
call fcn.0040c110
mov ecx, dword [esp + 0x30]
add esp, 0x10
mov dword fs:[0], ecx
pop edi
pop esi
pop ebp
pop ebx
add esp, 0x1c
ret 0xc
Function at 0x404950
Capabilities:
Set registry value

Disassembly:
push ecx
mov ecx, dword [esp + 0x14]
mov dword [esp], 0
test ecx, ecx
mov eax, 0x2001f
je 0x40496b
mov eax, 0x2011f
mov edx, dword [esp + 8]
lea ecx, [esp]
push ecx
push eax
push 0
push edx
push reloc.OLEAUT32.dll_SysReAllocString
call dword [sym.imp.ADVAPI32.dll_RegOpenKeyExW]
test eax, eax
jne 0x4049c3
push esi
mov esi, dword [esp + 0x14]
test esi, esi
je 0x40499f
push esi
call fcn.0041918c
add esp, 4
lea eax, [eax + eax + 2]
jmp 0x4049a1
xor eax, eax
mov ecx, dword [esp + 4]
push eax
mov eax, dword [esp + 0x14]
push esi
push 1
push 0
push eax
push ecx
call dword [sym.imp.ADVAPI32.dll_RegSetValueExW]
mov edx, dword [esp + 4]
push edx
call dword [sym.imp.ADVAPI32.dll_RegCloseKey]
pop esi
pop ecx
ret 0x10

Function at 0x4049d0
Capabilities:
Set registry value

Disassembly:
push ecx
mov ecx, dword [esp + 0x14]
mov dword [esp], 0
test ecx, ecx
mov eax, 0x2001f
je 0x4049eb
mov eax, 0x2011f
mov edx, dword [esp + 8]
lea ecx, [esp]
push ecx
push eax
push 0
push edx
push reloc.OLEAUT32.dll_SysReAllocString
call dword [sym.imp.ADVAPI32.dll_RegOpenKeyExW]
test eax, eax
jne 0x404a2d
mov ecx, dword [esp + 0xc]
mov edx, dword [esp]
lea eax, [esp + 0x10]
push 4
push eax
push 4
push 0
push ecx
push edx
call dword [sym.imp.ADVAPI32.dll_RegSetValueExW]
mov eax, dword [esp]
push eax
call dword [sym.imp.ADVAPI32.dll_RegCloseKey]
pop ecx
ret 0x10

Function at 0x404a40
Capabilities:
Set registry value

Disassembly:
push ecx
mov ecx, dword [esp + 0x18]
mov dword [esp], 0
test ecx, ecx
mov eax, 0x2001f
je 0x404a5b
mov eax, 0x2011f
mov edx, dword [esp + 8]
lea ecx, [esp]
push ecx
push eax
push 0
push edx
push reloc.OLEAUT32.dll_SysReAllocString
call dword [sym.imp.ADVAPI32.dll_RegOpenKeyExW]
test eax, eax
jne 0x404a9d
mov ecx, dword [esp + 0xc]
mov edx, dword [esp]
lea eax, [esp + 0x10]
push 8
push eax
push 3
push 0
push ecx
push edx
call dword [sym.imp.ADVAPI32.dll_RegSetValueExW]
mov eax, dword [esp]
push eax
call dword [sym.imp.ADVAPI32.dll_RegCloseKey]
pop ecx
ret 0x14

Function at 0x404ab0
Capabilities:
Query or enumerate registry value

Disassembly:
sub esp, 8
mov ecx, dword [esp + 0xc]
lea eax, [esp]
push esi
push eax
xor esi, esi
push ecx
push reloc.OLEAUT32.dll_SysReAllocString
mov dword [esp + 0x10], esi
call dword [sym.imp.ADVAPI32.dll_RegOpenKeyW]
test eax, eax
jne 0x404b4a
mov ecx, dword [esp + 4]
push ebx
lea edx, [esp + 0x14]
push edi
mov edi, dword [esp + 0x1c]
mov ebx, dword [sym.imp.ADVAPI32.dll_RegQueryValueExW]
push edx
mov dword [esp + 0x14], eax
mov dword [esp + 0x1c], eax
push eax
lea eax, [esp + 0x18]
push eax
push esi
push edi
push ecx
call ebx
mov eax, dword [esp + 0x18]
cmp eax, 2
jb 0x404b34
add eax, 2
mov dword [esp + 0x18], eax
shr eax, 1
lea edx, [eax + eax]
push edx
call fcn.004ad230
mov esi, eax
add esp, 4
test esi, esi
je 0x404b34
mov edx, dword [esp + 0xc]
lea eax, [esp + 0x18]
push eax
lea ecx, [esp + 0x14]
push esi
push ecx
push 0
push edi
push edx
call ebx
mov eax, dword [esp + 0xc]
push eax
call dword [sym.imp.ADVAPI32.dll_RegCloseKey]
pop edi
mov eax, esi
pop ebx
pop esi
add esp, 8
ret 8
mov eax, esi
pop esi
add esp, 8
ret 8
Function at 0x404b60
Capabilities:
Query or enumerate registry value

Disassembly:
sub esp, 0xc
mov ecx, dword [esp + 0x10]
lea eax, [esp]
push eax
push ecx
push reloc.OLEAUT32.dll_SysReAllocString
mov dword [esp + 0x10], 0
mov dword [esp + 0xc], 0
call dword [sym.imp.ADVAPI32.dll_RegOpenKeyW]
test eax, eax
jne 0x404bc4
mov dword [esp + 8], eax
lea edx, [esp + 0x10]
lea eax, [esp + 4]
push edx
mov edx, dword [esp + 0x18]
lea ecx, [esp + 0xc]
push eax
mov eax, dword [esp + 8]
push ecx
push 0
push edx
push eax
mov dword [esp + 0x28], 4
call dword [sym.imp.ADVAPI32.dll_RegQueryValueExW]
mov ecx, dword [esp]
push ecx
call dword [sym.imp.ADVAPI32.dll_RegCloseKey]
mov eax, dword [esp + 4]
add esp, 0xc
ret 8

Function at 0x404bd0
Capabilities:
Query or enumerate registry value

Disassembly:
sub esp, 0x10
mov ecx, dword [esp + 0x14]
lea eax, [esp]
push eax
push ecx
push reloc.OLEAUT32.dll_SysReAllocString
mov dword [esp + 0x14], 0
mov dword [esp + 0x18], 0
mov dword [esp + 0xc], 0
call dword [sym.imp.ADVAPI32.dll_RegOpenKeyW]
test eax, eax
jne 0x404c3c
mov dword [esp + 4], eax
lea edx, [esp + 0x14]
lea eax, [esp + 8]
push edx
mov edx, dword [esp + 0x1c]
lea ecx, [esp + 8]
push eax
mov eax, dword [esp + 8]
push ecx
push 0
push edx
push eax
mov dword [esp + 0x2c], 8
call dword [sym.imp.ADVAPI32.dll_RegQueryValueExW]
mov ecx, dword [esp]
push ecx
call dword [sym.imp.ADVAPI32.dll_RegCloseKey]
fld qword [esp + 8]
add esp, 0x10
ret 8
Function at 0x404dcd
Capabilities:
Enumerate files on windows

Disassembly:
push 0xffffffffffffffff
push 0x4c797b
mov eax, dword fs:[0]
push eax
mov dword fs:[0], esp
sub esp, 0x660
push ebx
push ebp
push esi
mov esi, ecx
push 1
call fcn.00405190
mov ebx, eax
xor ebp, ebp
cmp ebx, ebp
mov dword [esp + 0x10], ebx
je 0x404f12
push edi
mov ecx, 0x7f
xor eax, eax
lea edi, [esp + 0x26a]
mov word [esp + 0x268], bp
rep stosd dword es:[edi], eax
mov ecx, dword [esp + 0x680]
stosw word es:[edi], ax
lea eax, [esp + 0x268]
push eax
push ecx
mov ecx, esi
call fcn.004053f0
mov ecx, 0x81
xor eax, eax
lea edi, [esp + 0x46a]
mov word [esp + 0x468], bp
rep stosd dword es:[edi], eax
lea edx, [esp + 0x268]
stosw word es:[edi], ax
push edx
push ebx
lea eax, [esp + 0x470]
push 0x4eb0fc
push eax
call fcn.004191e6
mov ecx, 0x93
xor eax, eax
lea edi, [esp + 0x2c]
mov dword [esp + 0x28], ebp
rep stosd dword es:[edi], eax
add esp, 0x10
lea ecx, [esp + 0x18]
lea edx, [esp + 0x468]
push ecx
push edx
call dword [sym.imp.KERNEL32.dll_FindFirstFileW]
mov edi, eax
cmp edi, 0xffffffff
je 0x404f08
mov esi, dword [esp + 0x684]
mov ebx, dword [sym.imp.KERNEL32.dll_lstrcmpW]
lea eax, [esp + 0x44]
push 0x4eb0f4
push eax
call ebx
test eax, eax
je 0x404eed
lea ecx, [esp + 0x44]
push 0x4eb0f0
push ecx
call ebx
test eax, eax
je 0x404eed
test byte [esp + 0x18], 0x10
jne 0x404eed
lea edx, [esp + 0x44]
lea ecx, [esp + 0x10]
push edx
call fcn.004ad5b5
mov eax, dword [esi + 8]
lea ecx, [esp + 0x10]
push ecx
push eax
mov ecx, esi
mov dword [esp + 0x680], ebp
call fcn.004ac2f0
lea ecx, [esp + 0x10]
mov dword [esp + 0x678], 0xffffffff
call fcn.004ad4f5
lea edx, [esp + 0x18]
push edx
push edi
call dword [sym.imp.KERNEL32.dll_FindNextFileW]
test eax, eax
jne 0x404e8d
push edi
call dword [sym.imp.KERNEL32.dll_FindClose]
mov ebx, dword [esp + 0x14]
push ebx
call fcn.004ad259
add esp, 4
pop edi
mov ecx, dword [esp + 0x66c]
pop esi
pop ebp
pop ebx
mov dword fs:[0], ecx
add esp, 0x66c
ret 8
Function at 0x409bf0
Capabilities:
Set file attributes

Disassembly:
sub esp, 0x664
push ebx
push esi
mov esi, dword [esp + 0x670]
xor ebx, ebx
cmp esi, ebx
je 0x409d93
push esi
call fcn.0041918c
add esp, 4
test eax, eax
je 0x409d93
push ebx
push ebx
push ebx
push ebx
lea eax, [esp + 0x18]
push ebx
push eax
push esi
mov dword [esp + 0x24], ebx
call fcn.004071f0
add esp, 0x1c
test eax, eax
je 0x409d93
mov eax, dword [esp + 8]
cmp eax, 0xffffffff
je 0x409d93
test al, 1
je 0x409c5c
and al, 0xfe
push eax
push esi
mov dword [esp + 0x10], eax
call dword [sym.imp.KERNEL32.dll_SetFileAttributesW]
mov eax, dword [esp + 8]
test al, 0x10
je 0x409d83
push edi
mov ecx, 0x81
xor eax, eax
lea edi, [esp + 0x12]
mov word [esp + 0x10], bx
push esi
rep stosd dword es:[edi], eax
lea ecx, [esp + 0x14]
push ecx
stosw word es:[edi], ax
call fcn.00419167
lea edx, [esp + 0x18]
push 0x4eb980
push edx
call fcn.0041913d
mov ecx, 0x93
xor eax, eax
lea edi, [esp + 0x22c]
mov dword [esp + 0x228], ebx
add esp, 0x10
rep stosd dword es:[edi], eax
lea eax, [esp + 0x218]
lea ecx, [esp + 0x10]
push eax
push ecx
call dword [sym.imp.KERNEL32.dll_FindFirstFileW]
mov ebx, eax
cmp ebx, 0xffffffff
je 0x409d72
push ebp
mov ebp, dword [sym.imp.KERNEL32.dll_lstrcmpW]
lea edx, [esp + 0x248]
push 0x4eb0f4
push edx
call ebp
test eax, eax
je 0x409d53
lea eax, [esp + 0x248]
push 0x4eb0f0
push eax
call ebp
test eax, eax
je 0x409d53
mov ecx, 0x81
xor eax, eax
lea edi, [esp + 0x46e]
mov word [esp + 0x46c], 0
rep stosd dword es:[edi], eax
lea ecx, [esp + 0x46c]
push esi
push ecx
stosw word es:[edi], ax
call fcn.00419167
lea edx, [esp + 0x1c]
push 0x4eb9cc
push edx
call fcn.0041913d
lea eax, [esp + 0x258]
lea ecx, [esp + 0x24]
push eax
push ecx
call fcn.0041913d
lea edx, [esp + 0x484]
push edx
call fcn.00409bf0
add esp, 0x1c
lea eax, [esp + 0x21c]
push eax
push ebx
call dword [sym.imp.KERNEL32.dll_FindNextFileW]
test eax, eax
jne 0x409cd2
push ebx
call dword [sym.imp.KERNEL32.dll_FindClose]
pop ebp
push esi
call dword [sym.imp.KERNEL32.dll_RemoveDirectoryW]
pop edi
pop esi
pop ebx
add esp, 0x664
ret
push esi
call dword [sym.imp.KERNEL32.dll_DeleteFileW]
pop esi
pop ebx
add esp, 0x664
ret
pop esi
xor eax, eax
pop ebx
add esp, 0x664
ret
Function at 0x409df0
Capabilities:
Check for time delay via gettickcount
Check if file exists
Copy file
Get file attributes
Move file
Set file attributes

Disassembly:
sub esp, 0x204
push ebx
mov ebx, dword [sym.imp.KERNEL32.dll_GetFileAttributesA]
push ebp
mov ebp, dword [esp + 0x214]
push esi
push edi
push ebp
call ebx
cmp eax, 0xffffffff
jne 0x409e31
mov eax, dword [esp + 0x220]
mov ecx, dword [esp + 0x218]
push eax
push ebp
push ecx
call dword [sym.imp.KERNEL32.dll_CopyFileA]
pop edi
pop esi
pop ebp
pop ebx
add esp, 0x204
ret
test al, 1
je 0x409e47
and al, 0xfe
push eax
push ebp
mov dword [esp + 0x18], eax
call dword [sym.imp.KERNEL32.dll_SetFileAttributesA]
mov eax, dword [esp + 0x10]
test al, 0x10
je 0x409ec6
mov ecx, 0x7f
xor eax, eax
lea edi, [esp + 0x15]
mov byte [esp + 0x14], 0
rep stosd dword es:[edi], eax
stosw word es:[edi], ax
stosb byte es:[edi], al
mov edi, dword [sym.imp.KERNEL32.dll_GetTickCount]
call edi
push eax
push ebp
lea edx, [esp + 0x1c]
push str._s.bak_08X
push edx
call fcn.0041993f
add esp, 0x10
lea eax, [esp + 0x14]
xor esi, esi
push eax
call ebx
cmp eax, 0xffffffff
je 0x409eba
push 1
call dword [sym.imp.KERNEL32.dll_Sleep]
call edi
push eax
push ebp
lea ecx, [esp + 0x1c]
push str._s.bak_08X
push ecx
call fcn.0041993f
add esp, 0x10
lea edx, [esp + 0x14]
push edx
call ebx
inc esi
cmp esi, 0xa
jge 0x409ee8
cmp eax, 0xffffffff
jne 0x409e8a
lea eax, [esp + 0x14]
push eax
push ebp
call dword [sym.imp.KERNEL32.dll_MoveFileA]
mov ecx, dword [esp + 0x220]
mov edx, dword [esp + 0x218]
push ecx
push ebp
push edx
call dword [sym.imp.KERNEL32.dll_CopyFileA]
pop edi
pop esi
pop ebp
pop ebx
add esp, 0x204
ret
pop edi
pop esi
pop ebp
xor eax, eax
pop ebx
add esp, 0x204
ret

Function at 0x40a110
Capabilities:
Get graphical window text

Disassembly:
call fcn.0044fbd0
test eax, eax
je 0x40a12f
mov eax, dword [esp + 0xc]
mov ecx, dword [esp + 8]
mov edx, dword [esp + 4]
push eax
push ecx
push edx
call dword [sym.imp.USER32.dll_GetWindowTextW]
ret
push ebx
push ebp
push esi
push edi
mov edi, dword [esp + 0x18]
xor ebp, ebp
test edi, edi
je 0x40a1b0
mov esi, dword [esp + 0x1c]
test esi, esi
je 0x40a1b0
lea ecx, [esi + esi]
xor eax, eax
mov edx, ecx
push esi
shr ecx, 2
rep stosd dword es:[edi], eax
mov ecx, edx
and ecx, 3
rep stosb byte es:[edi], al
call fcn.004ad230
mov ebx, eax
add esp, 4
test ebx, ebx
je 0x40a1b0
mov ecx, esi
xor eax, eax
mov edx, ecx
mov edi, ebx
shr ecx, 2
rep stosd dword es:[edi], eax
mov ecx, edx
push esi
and ecx, 3
push ebx
rep stosb byte es:[edi], al
mov eax, dword [esp + 0x1c]
push eax
call dword [sym.imp.USER32.dll_GetWindowTextA]
mov ebp, eax
test ebp, ebp
je 0x40a1b0
push esi
mov esi, dword [esp + 0x1c]
push esi
push 0xffffffffffffffff
push ebx
xor ebp, ebp
call fcn.004065f0
add esp, 0x10
test eax, eax
je 0x40a1b0
push esi
call fcn.0041918c
add esp, 4
mov ebp, eax
pop edi
mov eax, ebp
pop esi
pop ebp
pop ebx
ret