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

Disassembly:
push ebp
mov ebp, esp
push 0xffffffffffffffff
push 0x503d50
mov eax, dword fs:[0]
push eax
mov dword fs:[0], esp
sub esp, 0x78
mov dword [ebp - 0x18], ecx
mov ecx, 0x546d80
call fcn.00501f54
push ecx
mov ecx, esp
mov dword [ebp - 0x38], esp
mov eax, dword [ebp - 0x18]
mov edx, dword [eax + 4]
add edx, 4
push edx
call fcn.0040d220
lea eax, [ebp - 0x84]
push eax
call fcn.004093a0
add esp, 8
mov dword [ebp - 0x3c], eax
mov dword [ebp - 4], 0
lea ecx, [ebp - 0x24]
push ecx
call fcn.00408d80
add esp, 4
mov dword [ebp - 0x1c], eax
mov edx, dword [ebp - 0x1c]
mov dword [ebp - 0x20], edx
mov byte [ebp - 4], 1
push str.SPChromeUser_DataSuperChromeCache
mov eax, dword [ebp - 0x20]
push eax
lea ecx, [ebp - 0x10]
push ecx
call fcn.0040c9e0
add esp, 0xc
mov byte [ebp - 4], 3
lea ecx, [ebp - 0x24]
call fcn.0040d100
lea ecx, [ebp - 0x10]
call fcn.0040d2e0
push eax
call dword [sym.imp.SHLWAPI.dll_PathFileExistsW]
test eax, eax
jne 0x41d16f
lea edx, [ebp - 0x10]
push edx
call fcn.00409660
add esp, 4
lea eax, [ebp - 0x30]
push eax
call fcn.00408d80
add esp, 4
mov dword [ebp - 0x28], eax
mov ecx, dword [ebp - 0x28]
mov dword [ebp - 0x2c], ecx
mov byte [ebp - 4], 4
push str.SPChromeUser_DataSuperChromeCache_bookmarks.ini
mov edx, dword [ebp - 0x2c]
push edx
lea eax, [ebp - 0x14]
push eax
call fcn.0040c9e0
add esp, 0xc
mov byte [ebp - 4], 6
lea ecx, [ebp - 0x30]
call fcn.0040d100
push 1
sub esp, 0x18
mov ecx, esp
mov dword [ebp - 0x40], esp
mov dword [ebp - 0x34], ecx
sub esp, 0x18
mov ecx, esp
mov dword [ebp - 0x44], esp
lea edx, [ebp - 0x84]
push edx
call fcn.0040c7b0
mov eax, dword [ebp - 0x34]
push eax
call fcn.004087e0
add esp, 0x1c
mov dword [ebp - 0x48], eax
mov byte [ebp - 4], 7
sub esp, 0x18
mov ecx, esp
mov dword [ebp - 0x4c], esp
mov edx, dword [ebp + 8]
push edx
call fcn.0040c7b0
lea eax, [ebp - 0x6c]
push eax
mov byte [ebp - 4], 6
call fcn.004036c0
add esp, 0x38
mov dword [ebp - 0x50], eax
mov byte [ebp - 4], 8
lea ecx, [ebp - 0x6c]
push ecx
push ecx
mov ecx, esp
mov dword [ebp - 0x54], esp
lea edx, [ebp - 0x14]
push edx
call fcn.0040d220
call fcn.00409dd0
add esp, 8
mov byte [ebp - 4], 6
lea ecx, [ebp - 0x6c]
call fcn.00403eb0
mov byte [ebp - 4], 3
lea ecx, [ebp - 0x14]
call fcn.0040d100
mov byte [ebp - 4], 0
lea ecx, [ebp - 0x10]
call fcn.0040d100
mov dword [ebp - 4], 0xffffffff
lea ecx, [ebp - 0x84]
call fcn.00403eb0
mov ecx, dword [ebp - 0xc]
mov dword fs:[0], ecx
mov esp, ebp
pop ebp
ret 4
Function at 0x41ea40
Capabilities:
Get common file path

Disassembly:
push ebp
mov ebp, esp
push 0xffffffffffffffff
push 0x502c7d
mov eax, dword fs:[0]
push eax
mov dword fs:[0], esp
sub esp, 0x808
mov dword [ebp - 0x14], 0
mov ecx, 0x546d80
call fcn.00501f54
lea ecx, [ebp - 0x10]
call fcn.0040d250
mov dword [ebp - 4], 0
push 0x800
push 0
lea eax, [ebp - 0x814]
push eax
call fcn.004d75f0
add esp, 0xc
push 0x800
push 0
lea ecx, [ebp - 0x814]
push ecx
call fcn.004d75f0
add esp, 0xc
push 0
push 0x17
lea edx, [ebp - 0x814]
push edx
push 0
call dword [sym.imp.SHELL32.dll_SHGetSpecialFolderPathW]
test eax, eax
je 0x41eadd
lea eax, [ebp - 0x814]
push eax
lea ecx, [ebp - 0x10]
call fcn.0040d0a0
push 0x52f704
lea ecx, [ebp - 0x10]
call fcn.0040cfb0
lea ecx, [ebp - 0x10]
push ecx
mov ecx, dword [ebp + 8]
call fcn.0040d220
mov edx, dword [ebp - 0x14]
or edx, 1
mov dword [ebp - 0x14], edx
mov dword [ebp - 4], 0xffffffff
lea ecx, [ebp - 0x10]
call fcn.0040d100
mov eax, dword [ebp + 8]
mov ecx, dword [ebp - 0xc]
mov dword fs:[0], ecx
mov esp, ebp
pop ebp
ret
Function at 0x41f820
Capabilities:
Create process on windows

Disassembly:
push ebp
mov ebp, esp
push 0xffffffffffffffff
push 0x502c5d
mov eax, dword fs:[0]
push eax
mov dword fs:[0], esp
sub esp, 0x258
mov ecx, 0x546d80
call fcn.00501f54
call dword [sym.imp.SHELL32.dll_IsUserAnAdmin]
test eax, eax
je 0x41f859
mov al, 1
jmp 0x41f96f
push 0x208
push 0
lea eax, [ebp - 0x264]
push eax
call fcn.004d75f0
add esp, 0xc
mov dword [ebp - 0x20], 0
push 0x104
lea ecx, [ebp - 0x264]
push ecx
mov edx, dword [ebp - 0x20]
push edx
call dword [sym.imp.KERNEL32.dll_GetModuleFileNameW]
mov dword [ebp - 0x5c], 0x3c
push 0x38
push 0
lea eax, [ebp - 0x58]
push eax
call fcn.004d75f0
add esp, 0xc
mov dword [ebp - 0x50], str.runas
lea ecx, [ebp - 0x264]
mov dword [ebp - 0x4c], ecx
mov dword [ebp - 0x40], 1
lea ecx, [ebp - 0x14]
call fcn.0040d250
mov dword [ebp - 4], 0
mov edx, dword [ebp + 8]
movzx eax, byte [edx]
test eax, eax
je 0x41f8e2
push str._upprivi__can_ins_d
lea ecx, [ebp - 0x14]
call fcn.0040d0a0
jmp 0x41f8ef
push str._upprivi
lea ecx, [ebp - 0x14]
call fcn.0040d0a0
lea ecx, [ebp - 0x14]
call fcn.0040d2e0
mov dword [ebp - 0x48], eax
lea ecx, [ebp - 0x5c]
push ecx
call dword [sym.imp.SHELL32.dll_ShellExecuteExW]
test eax, eax
jne 0x41f920
mov byte [ebp - 0xd], 1
mov dword [ebp - 4], 0xffffffff
lea ecx, [ebp - 0x14]
call fcn.0040d100
mov al, byte [ebp - 0xd]
jmp 0x41f96f
push 0xffffffffffffffff
mov edx, dword [ebp - 0x24]
push edx
call dword [sym.imp.KERNEL32.dll_WaitForSingleObject]
mov dword [ebp - 0x18], 0
lea eax, [ebp - 0x18]
push eax
mov ecx, dword [ebp - 0x24]
push ecx
call dword [sym.imp.KERNEL32.dll_GetExitCodeProcess]
cmp dword [ebp - 0x18], 0
jne 0x41f950
mov dword [ebp - 0x1c], 1
jmp 0x41f957
mov dword [ebp - 0x1c], 0
mov dl, byte [ebp - 0x1c]
mov byte [ebp - 0xe], dl
mov dword [ebp - 4], 0xffffffff
lea ecx, [ebp - 0x14]
call fcn.0040d100
mov al, byte [ebp - 0xe]
mov ecx, dword [ebp - 0xc]
mov dword fs:[0], ecx
mov esp, ebp
pop ebp
ret

Function at 0x420770
Capabilities:
Create thread

Disassembly:
push ebp
mov ebp, esp
push 0xffffffffffffffff
push 0x50416d
mov eax, dword fs:[0]
push eax
mov dword fs:[0], esp
sub esp, 0xc
mov dword [ebp - 0x10], ecx
mov ecx, 0x54683a
call fcn.00501f54
mov eax, dword [ebp + 8]
push eax
call fcn.00420750
add esp, 4
push eax
lea ecx, [ebp - 0x14]
push ecx
call fcn.00420b20
add esp, 8
mov dword [ebp - 4], 0
mov dword [ebp - 0x18], 0x420b90
mov edx, dword [ebp - 0x10]
add edx, 4
push edx
push 0
lea ecx, [ebp - 0x14]
call fcn.004209a0
push eax
mov eax, dword [ebp - 0x18]
push eax
push 0
push 0
call fcn.004e17e5
add esp, 0x18
mov ecx, dword [ebp - 0x10]
mov dword [ecx], eax
mov edx, dword [ebp - 0x10]
cmp dword [edx], 0
je 0x4207f8
lea ecx, [ebp - 0x14]
call fcn.00420970
jmp 0x420809
mov eax, dword [ebp - 0x10]
mov dword [eax + 4], 0
push 6
call fcn.004d50d5
mov dword [ebp - 4], 0xffffffff
lea ecx, [ebp - 0x14]
call fcn.00420a00
mov ecx, dword [ebp - 0xc]
mov dword fs:[0], ecx
mov esp, ebp
pop ebp
ret 4
Function at 0x420830
Capabilities:
Create thread

Disassembly:
push ebp
mov ebp, esp
push 0xffffffffffffffff
push 0x50418d
mov eax, dword fs:[0]
push eax
mov dword fs:[0], esp
sub esp, 0xc
mov dword [ebp - 0x10], ecx
mov ecx, 0x54683a
call fcn.00501f54
mov eax, dword [ebp + 8]
push eax
call fcn.00420750
add esp, 4
push eax
lea ecx, [ebp - 0x14]
push ecx
call fcn.00420c20
add esp, 8
mov dword [ebp - 4], 0
mov dword [ebp - 0x18], 0x420c90
mov edx, dword [ebp - 0x10]
add edx, 4
push edx
push 0
lea ecx, [ebp - 0x14]
call fcn.004209a0
push eax
mov eax, dword [ebp - 0x18]
push eax
push 0
push 0
call fcn.004e17e5
add esp, 0x18
mov ecx, dword [ebp - 0x10]
mov dword [ecx], eax
mov edx, dword [ebp - 0x10]
cmp dword [edx], 0
je 0x4208b8
lea ecx, [ebp - 0x14]
call fcn.00420970
jmp 0x4208c9
mov eax, dword [ebp - 0x10]
mov dword [eax + 4], 0
push 6
call fcn.004d50d5
mov dword [ebp - 4], 0xffffffff
lea ecx, [ebp - 0x14]
call fcn.004209c0
mov ecx, dword [ebp - 0xc]
mov dword fs:[0], ecx
mov esp, ebp
pop ebp
ret 4

Function at 0x437940
Capabilities:
Create process on windows

Disassembly:
push ebp
mov ebp, esp
sub esp, 8
mov dword [ebp - 8], ecx
mov ecx, 0x546d80
call fcn.00501f54
push str.https:__www.gptchrome.net_license_
lea ecx, [ebp - 4]
call fcn.0040d1a0
push 5
push 0
push 0
lea ecx, [ebp - 4]
call fcn.0040d2e0
push eax
push 0x531284
push 0
call dword [sym.imp.SHELL32.dll_ShellExecuteW]
lea ecx, [ebp - 4]
call fcn.0040d100
mov esp, ebp
pop ebp
ret

Function at 0x437990
Capabilities:
Create process on windows

Disassembly:
push ebp
mov ebp, esp
sub esp, 8
mov dword [ebp - 8], ecx
mov ecx, 0x546d80
call fcn.00501f54
push str.https:__www.gptchrome.net_userspe_
lea ecx, [ebp - 4]
call fcn.0040d1a0
push 5
push 0
push 0
lea ecx, [ebp - 4]
call fcn.0040d2e0
push eax
push 0x531320
push 0
call dword [sym.imp.SHELL32.dll_ShellExecuteW]
lea ecx, [ebp - 4]
call fcn.0040d100
mov esp, ebp
pop ebp
ret

Function at 0x4379e0
Capabilities:
Create process on windows

Disassembly:
push ebp
mov ebp, esp
sub esp, 8
mov dword [ebp - 8], ecx
mov ecx, 0x546d80
call fcn.00501f54
push str.https:__www.gptchrome.net_privacy.html
lea ecx, [ebp - 4]
call fcn.0040d1a0
push 5
push 0
push 0
lea ecx, [ebp - 4]
call fcn.0040d2e0
push eax
push str.open
push 0
call dword [sym.imp.SHELL32.dll_ShellExecuteW]
lea ecx, [ebp - 4]
call fcn.0040d100
mov esp, ebp
pop ebp
ret
Function at 0x438e20
Capabilities:
Query or enumerate registry value

Disassembly:
push ebp
mov ebp, esp
push 0xffffffffffffffff
push 0x5051ed
mov eax, dword fs:[0]
push eax
mov dword fs:[0], esp
sub esp, 0x228
mov dword [ebp - 0x2c], ecx
mov dword [ebp - 0x1c], 0
mov dword [ebp - 4], 0
mov ecx, 0x546d80
call fcn.00501f54
mov dword [ebp - 0x10], reloc.WS2_32.dll_accept
call dword [sym.imp.SHELL32.dll_IsUserAnAdmin]
test eax, eax
je 0x438e71
mov dword [ebp - 0x10], reloc.WS2_32.dll_bind
lea ecx, [ebp - 0x18]
call fcn.0040d250
mov byte [ebp - 4], 1
push str.SOFTWAREMicrosoftWindowsCurrentVersionUninstall_
lea ecx, [ebp - 0x14]
call fcn.0040d1a0
mov byte [ebp - 4], 2
lea eax, [ebp + 0xc]
push eax
lea ecx, [ebp - 0x14]
call fcn.0040cfe0
lea ecx, [ebp - 0x20]
push ecx
push 0x20119
push 0
lea ecx, [ebp - 0x14]
call fcn.0040d2e0
push eax
mov edx, dword [ebp - 0x10]
push edx
call dword [sym.imp.ADVAPI32.dll_RegOpenKeyExW]
test eax, eax
je 0x438f29
mov dword [ebp - 0x10], reloc.WS2_32.dll_accept
lea eax, [ebp - 0x20]
push eax
push 0x20119
push 0
lea ecx, [ebp - 0x14]
call fcn.0040d2e0
push eax
mov ecx, dword [ebp - 0x10]
push ecx
call dword [sym.imp.ADVAPI32.dll_RegOpenKeyExW]
test eax, eax
je 0x438f29
lea edx, [ebp - 0x18]
push edx
mov ecx, dword [ebp + 8]
call fcn.0040d220
mov eax, dword [ebp - 0x1c]
or eax, 1
mov dword [ebp - 0x1c], eax
mov byte [ebp - 4], 1
lea ecx, [ebp - 0x14]
call fcn.0040d100
mov byte [ebp - 4], 0
lea ecx, [ebp - 0x18]
call fcn.0040d100
mov dword [ebp - 4], 0xffffffff
lea ecx, [ebp + 0xc]
call fcn.0040d100
mov eax, dword [ebp + 8]
jmp 0x438fc9
mov dword [ebp - 0x28], 1
mov dword [ebp - 0x24], 0x104
push 0x208
push 0
lea ecx, [ebp - 0x234]
push ecx
call fcn.004d75f0
add esp, 0xc
lea edx, [ebp - 0x24]
push edx
lea eax, [ebp - 0x234]
push eax
lea ecx, [ebp - 0x28]
push ecx
push 0
push str.InstallLocation
mov edx, dword [ebp - 0x20]
push edx
call dword [sym.imp.ADVAPI32.dll_RegQueryValueExW]
test eax, eax
jne 0x438f80
lea eax, [ebp - 0x234]
push eax
lea ecx, [ebp - 0x18]
call fcn.0040d0a0
mov ecx, dword [ebp - 0x10]
push ecx
call dword [sym.imp.ADVAPI32.dll_RegCloseKey]
lea edx, [ebp - 0x18]
push edx
mov ecx, dword [ebp + 8]
call fcn.0040d220
mov eax, dword [ebp - 0x1c]
or eax, 1
mov dword [ebp - 0x1c], eax
mov byte [ebp - 4], 1
lea ecx, [ebp - 0x14]
call fcn.0040d100
mov byte [ebp - 4], 0
lea ecx, [ebp - 0x18]
call fcn.0040d100
mov dword [ebp - 4], 0xffffffff
lea ecx, [ebp + 0xc]
call fcn.0040d100
mov eax, dword [ebp + 8]
mov ecx, dword [ebp - 0xc]
mov dword fs:[0], ecx
mov esp, ebp
pop ebp
ret 8
Function at 0x439eb0
Capabilities:
Extract resource via kernel32 functions

Disassembly:
push ebp
mov ebp, esp
push 0xffffffffffffffff
push 0x505320
mov eax, dword fs:[0]
push eax
mov dword fs:[0], esp
sub esp, 0xb4
mov ecx, 0x546d80
call fcn.00501f54
push 4
call fcn.0048a1dc
add esp, 4
lea eax, [ebp - 0xc0]
push eax
call fcn.00485480
add esp, 4
mov dword [ebp - 4], 0
call fcn.0048561e
mov dword [ebp - 0x10], eax
mov ecx, dword [ebp - 0x10]
sub ecx, 1
mov dword [ebp - 0x10], ecx
cmp dword [ebp - 0x10], 3
ja case.default.0x439f16
mov edx, dword [ebp - 0x10]
jmp dword [edx*4 + 0x43a0ec]
push str.skin_skin_
lea ecx, [ebp - 0xc0]
call fcn.0048e58c
lea ecx, [ebp - 0xc0]
call fcn.0048e533
push eax
call fcn.0048a193
add esp, 4
call fcn.00439df0
mov dword [ebp - 0x20], eax
push 0
push ecx
mov ecx, esp
mov dword [ebp - 0x30], esp
push 0x531cc0
call fcn.00439dc0
mov ecx, dword [ebp - 0x20]
call fcn.004919be
jmp case.default.0x439f16
push 0x531cd0
lea ecx, [ebp - 0xc0]
call fcn.0048e58c
lea ecx, [ebp - 0xc0]
call fcn.0048e533
push eax
call fcn.0048a193
add esp, 4
call fcn.00439df0
mov dword [ebp - 0x24], eax
push 0x531cdc
push ecx
mov ecx, esp
mov dword [ebp - 0x34], esp
push str.IDR_RES
call fcn.00439dc0
mov ecx, dword [ebp - 0x24]
call fcn.004919be
jmp case.default.0x439f16
push 0x531cf4
lea ecx, [ebp - 0xc0]
call fcn.0048e58c
lea ecx, [ebp - 0xc0]
call fcn.0048e533
push eax
call fcn.0048a193
add esp, 4
push 0
push 1
push str.ADMonSetup.zip
call fcn.0048a277
add esp, 0xc
call fcn.00439df0
mov dword [ebp - 0x28], eax
push 0
push ecx
mov ecx, esp
mov dword [ebp - 0x38], esp
push 0x531d20
call fcn.00439dc0
mov ecx, dword [ebp - 0x28]
call fcn.004919be
jmp case.default.0x439f16
push str.skin_
lea ecx, [ebp - 0xc0]
call fcn.0048e58c
lea ecx, [ebp - 0xc0]
call fcn.0048e533
push eax
call fcn.0048a193
add esp, 4
push 0x531d3c
push 0x81
call fcn.00485609
push eax
call dword [sym.imp.KERNEL32.dll_FindResourceW]
mov dword [ebp - 0x14], eax
cmp dword [ebp - 0x14], 0
je case.default.0x439f16
mov dword [ebp - 0x18], 0
mov eax, dword [ebp - 0x14]
push eax
call fcn.00485609
push eax
call dword [sym.imp.KERNEL32.dll_LoadResource]
mov dword [ebp - 0x1c], eax
cmp dword [ebp - 0x1c], 0
je 0x43a0c2
mov ecx, dword [ebp - 0x14]
push ecx
call fcn.00485609
push eax
call dword [sym.imp.KERNEL32.dll_SizeofResource]
mov dword [ebp - 0x18], eax
cmp dword [ebp - 0x18], 0
jbe 0x43a0c2
push 0
mov edx, dword [ebp - 0x18]
push edx
mov eax, dword [ebp - 0x1c]
push eax
call fcn.0048a1e9
add esp, 0xc
call fcn.00439df0
mov dword [ebp - 0x2c], eax
push 0
push ecx
mov ecx, esp
mov dword [ebp - 0x3c], esp
push str.res.xml
call fcn.00439dc0
mov ecx, dword [ebp - 0x2c]
call fcn.004919be
mov ecx, dword [ebp - 0x14]
push ecx
call dword [sym.imp.KERNEL32.dll_FreeResource]
mov dword [ebp - 4], 0xffffffff
lea ecx, [ebp - 0xc0]
call fcn.0048e422
mov ecx, dword [ebp - 0xc]
mov dword fs:[0], ecx
mov esp, ebp
pop ebp
ret
Function at 0x442520
Capabilities:
Encode data using xor
Hash data using djb2

Disassembly:
push ebp
mov ebp, esp
mov eax, dword [ebp + 0xc]
xor edx, edx
push ebx
push esi
mov esi, dword [ebp + 8]
xor ebx, ebx
add eax, esi
mov ecx, eax
sub ecx, esi
cmp esi, eax
push edi
cmova ecx, edx
mov edi, 0x1505
mov dword [ebp + 8], ecx
test ecx, ecx
je 0x442569
mov al, byte [esi]
push eax
call fcn.00450210
movsx ecx, al
lea esi, [esi + 1]
mov eax, edi
inc ebx
shl eax, 5
add esp, 4
add eax, edi
xor ecx, eax
mov edi, ecx
cmp ebx, dword [ebp + 8]
jb 0x442547
mov eax, 0x4104105
mov esi, edi
mul edi
sub esi, edx
shr esi, 1
add esi, edx
shr esi, 5
mov ecx, esi
shl ecx, 6
sub ecx, esi
sub edi, ecx
mov eax, edi
pop edi
pop esi
pop ebx
pop ebp
ret
Function at 0x44e5c0
Capabilities:
Get common file path

Disassembly:
push ebp
mov ebp, esp
sub esp, 8
push edi
push 0x50b088
xor edi, edi
call dword [sym.imp.KERNEL32.dll_GetModuleHandleW]
mov dword [ebp - 4], eax
test eax, eax
jne 0x44e5e0
pop edi
mov esp, ebp
pop ebp
ret
push ebx
push esi
push 0x50b09c
push eax
call dword [sym.imp.KERNEL32.dll_GetProcAddress]
mov esi, dword [ebp + 8]
mov ebx, eax
push 0x50b0ac
push esi
mov dword [ebp - 8], ebx
call fcn.004e9f42
add esp, 8
test eax, eax
je 0x44e62c
test ebx, ebx
je 0x44e61c
push 8
push 0
push esi
call ebx
pop esi
mov edi, eax
pop ebx
pop edi
mov esp, ebp
pop ebp
ret
push esi
call dword [sym.imp.KERNEL32.dll_LoadLibraryW]
pop esi
mov edi, eax
pop ebx
pop edi
mov esp, ebp
pop ebp
ret
test ebx, ebx
je 0x44e655
push str.AddDllDirectory
push dword [ebp - 4]
call dword [sym.imp.KERNEL32.dll_GetProcAddress]
test eax, eax
je 0x44e655
push 0x800
push 0
push esi
call ebx
pop esi
mov edi, eax
pop ebx
pop edi
mov esp, ebp
pop ebp
ret
push 0
push 0
call dword [sym.imp.KERNEL32.dll_GetSystemDirectoryW]
mov edx, eax
mov dword [ebp - 4], edx
test edx, edx
je 0x44e718
mov ecx, esi
lea ebx, [ecx + 2]
mov ax, word [ecx]
add ecx, 2
test ax, ax
jne 0x44e671
sub ecx, ebx
sar ecx, 1
lea eax, [ecx + edx]
lea eax, [eax*2 + 2]
push eax
call dword [section..data]
mov ebx, eax
add esp, 4
test ebx, ebx
je 0x44e70e
push dword [ebp - 4]
push ebx
call dword [sym.imp.KERNEL32.dll_GetSystemDirectoryW]
test eax, eax
je 0x44e70e
mov ecx, ebx
lea edx, [ecx + 2]
nop dword [eax]
mov ax, word [ecx]
add ecx, 2
test ax, ax
jne 0x44e6b0
sub ecx, edx
sar ecx, 1
mov dword [ebx + ecx*2], 0x5c
mov ecx, ebx
lea edx, [ecx + 2]
nop dword [eax + eax]
mov ax, word [ecx]
add ecx, 2
test ax, ax
jne 0x44e6d0
sub ecx, edx
sar ecx, 1
add ecx, ecx
sub ecx, esi
add ecx, ebx
movzx eax, word [esi]
lea esi, [esi + 2]
mov word [ecx + esi - 2], ax
test ax, ax
jne 0x44e6e5
mov eax, dword [ebp - 8]
test eax, eax
je 0x44e705
push 8
push 0
push ebx
call eax
jmp 0x44e70c
push ebx
call dword [sym.imp.KERNEL32.dll_LoadLibraryW]
mov edi, eax
push ebx
call dword [0x541004]
add esp, 4
pop esi
pop ebx
mov eax, edi
pop edi
mov esp, ebp
pop ebp
ret
Function at 0x44e730
Capabilities:
Initialize winsock library

Disassembly:
push ebp
mov ebp, esp
sub esp, 0x194
mov eax, dword [0x5413c8]
xor eax, ebp
mov dword [ebp - 4], eax
test byte [ebp + 8], 2
je 0x44e789
lea eax, [ebp - 0x194]
push eax
push 0x202
call dword [sym.imp.WS2_32.dll_WSAStartup]
test eax, eax
jne 0x44e776
mov eax, dword [ebp - 0x194]
cmp al, 2
jne 0x44e770
shr eax, 8
cmp al, 2
je 0x44e789
call dword [sym.imp.WS2_32.dll_WSACleanup]
mov eax, 2
mov ecx, dword [ebp - 4]
xor ecx, ebp
call fcn.004d4113
mov esp, ebp
pop ebp
ret
push str.iphlpapi.dll
call fcn.0044e5c0
add esp, 4
mov dword [0x543660], eax
test eax, eax
je 0x44e7bc
push str.if_nametoindex
push eax
call dword [sym.imp.KERNEL32.dll_GetProcAddress]
mov ecx, dword [0x54365c]
test eax, eax
cmovne ecx, eax
mov dword [0x54365c], ecx
push 3
push 2
push 0
push 0
push 6
call fcn.0047b6e0
add esp, 0x14
test al, al
setne byte [0x545024]
push 0x545028
call dword [sym.imp.KERNEL32.dll_QueryPerformanceFrequency]
mov ecx, dword [ebp - 4]
xor eax, eax
xor ecx, ebp
call fcn.004d4113
mov esp, ebp
pop ebp
ret

Function at 0x451040
Capabilities:
Terminate process

Disassembly:
push ebp
mov ebp, esp
push esi
mov esi, dword [ebp + 8]
test esi, esi
je 0x451061
cmp dword [esi + 0x84], 0
je 0x451061
push 2
push 3
push esi
call fcn.004507d0
add esp, 0xc
push dword [ebp + 0xc]
call fcn.00450aa0
add esp, 4
test esi, esi
je 0x451084
cmp dword [esi + 0x84], 0
je 0x451084
push 3
push esi
call fcn.00450810
add esp, 8
pop esi
pop ebp
ret

Function at 0x451160
Capabilities:
Create udp socket

Disassembly:
push ebp
mov ebp, esp
push esi
mov esi, dword [ebp + 8]
test esi, esi
je 0x4511a1
mov eax, dword [esi + 0x7c]
cmp byte [eax + 0x100], 0
jne 0x451194
push 0
call fcn.00451160
add esp, 4
test al, al
mov eax, dword [esi + 0x7c]
setne cl
inc cl
mov byte [eax + 0x100], cl
mov eax, dword [esi + 0x7c]
cmp byte [eax + 0x100], 2
pop esi
sete al
pop ebp
ret
push 0
push 2
push 0x17
call dword [sym.imp.WS2_32.dll_socket]
cmp eax, 0xffffffff
jne 0x4511b7
xor al, al
pop esi
pop ebp
ret
push eax
call dword [sym.imp.WS2_32.dll_closesocket]
mov al, 1
pop esi
pop ebp
ret
Function at 0x45b9f0
Capabilities:
Get socket status

Disassembly:
push ebp
mov ebp, esp
sub esp, 8
push ebx
mov ebx, dword [ebp + 0x14]
push esi
mov esi, dword [ebp + 0x10]
push edi
mov edi, dword [ebp + 0xc]
test edi, edi
je 0x45ba0b
cmp dword [edi], 0
jne 0x45ba1d
test esi, esi
je 0x45ba14
cmp dword [esi], 0
jne 0x45ba1d
test ebx, ebx
je 0x45ba66
cmp dword [ebx], 0
je 0x45ba66
push dword [ebp + 0x1c]
lea eax, [ebp - 8]
push dword [ebp + 0x18]
push eax
call fcn.00480780
add esp, 0xc
test ebx, ebx
je 0x45ba38
cmp dword [ebx], 0
jne 0x45ba3a
xor ebx, ebx
test esi, esi
je 0x45ba43
cmp dword [esi], 0
jne 0x45ba45
xor esi, esi
test edi, edi
je 0x45ba4e
cmp dword [edi], 0
jne 0x45ba50
xor edi, edi
push eax
mov eax, dword [ebp + 8]
push ebx
push esi
push edi
inc eax
push eax
call dword [sym.imp.WS2_32.dll_select]
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret
push dword [ebp + 0x1c]
push dword [ebp + 0x18]
call fcn.0045b9a0
add esp, 8
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret

Function at 0x45e840
Capabilities:
Move file

Disassembly:
push ebp
mov ebp, esp
sub esp, 0x20
push ebx
push esi
lea eax, [ebp - 0x10]
push edi
push eax
call fcn.00442f10
push dword [ebp + 8]
movups xmm0, xmmword [eax]
movups xmmword [ebp - 0x10], xmm0
call fcn.0045d1f0
push dword [ebp + 0xc]
mov edi, eax
call fcn.0045d1f0
mov ebx, dword [sym.imp.KERNEL32.dll_MoveFileExW]
add esp, 0xc
mov esi, eax
push 1
push esi
push edi
call ebx
test eax, eax
jne 0x45e8c7
lea eax, [ebp - 0x20]
push eax
call fcn.00442f10
movups xmm0, xmmword [ebp - 0x10]
sub esp, 0xc
mov ecx, esp
sub esp, 0x10
movups xmmword [ecx], xmm0
mov ecx, esp
movups xmm0, xmmword [eax]
movups xmmword [ecx], xmm0
call fcn.00442fc0
add esp, 0x20
test edx, edx
ja 0x45e8ea
jb 0x45e8b5
cmp eax, 0x3e8
ja 0x45e8ea
push 1
call dword [sym.imp.KERNEL32.dll_Sleep]
push 1
push esi
push edi
call ebx
test eax, eax
je 0x45e880
test edi, edi
je 0x45e8d4
push edi
call fcn.004e03fd
add esp, 4
test esi, esi
je 0x45e8e1
push esi
call fcn.004e03fd
add esp, 4
xor eax, eax
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret
test edi, edi
je 0x45e8f7
push edi
call fcn.004e03fd
add esp, 4
test esi, esi
je 0x45e904
push esi
call fcn.004e03fd
add esp, 4
pop edi
pop esi
mov eax, 1
pop ebx
mov esp, ebp
pop ebp
ret