joyce8/EMBER2024-capa huggingface dataset:
Function at 0x441342
Capabilities:
Encode data using xor
Enumerate processes
Terminate process

Disassembly:
push ebp
mov ebp, esp
sub esp, 0x140
mov eax, dword [0x66c240]
xor eax, ebp
mov dword [ebp - 4], eax
push ebx
push 0
push 2
call sub.KERNEL32.dll_CreateToolhelp32Snapshot
mov ebx, eax
mov dword [ebp - 0x140], ebx
cmp ebx, 0xffffffff
je 0x4413be
lea eax, [ebp - 0x12c]
mov dword [ebp - 0x12c], 0x128
push eax
push ebx
call sub.KERNEL32.dll_Process32First
test eax, eax
je 0x4413be
push esi
push dword [ebp - 0x124]
push 0
push 0x1f0fff
call dword [sym.imp.KERNEL32.dll_OpenProcess]
mov esi, eax
test esi, esi
je 0x4413ac
push esi
call fcn.004412d1
pop ecx
test al, al
jne 0x4413d4
lea eax, [ebp - 0x12c]
push eax
push ebx
call sub.KERNEL32.dll_Process32Next
test eax, eax
jne 0x441388
pop esi
push ebx
call dword [sym.imp.KERNEL32.dll_CloseHandle]
mov ecx, dword [ebp - 4]
xor ecx, ebp
pop ebx
call fcn.0055dcf4
mov esp, ebp
pop ebp
ret
push edi
push 0
push esi
call dword [sym.imp.KERNEL32.dll_TerminateProcess]
push 0x12c
call dword [sym.imp.KERNEL32.dll_Sleep]
and dword [ebp - 0x13c], 0
lea eax, [ebp - 0x13c]
push eax
push esi
call dword [sym.imp.KERNEL32.dll_GetExitCodeProcess]
cmp dword [ebp - 0x13c], 0x103
je 0x4414aa
mov dword [ebp - 0x134], 0x5953d0
mov eax, dword [ebp - 0x134]
mov edi, dword [ebp - 0x134]
add edi, 0x14
mov dword [ebp - 0x130], eax
cmp byte [eax + 0x13], 0
je 0x441494
mov esi, dword [eax + 0xf]
lea eax, [esi + 1]
push eax
call fcn.00562163
mov edx, dword [ebp - 0x130]
pop ecx
mov ecx, eax
xor eax, eax
mov dword [ebp - 0x138], ecx
mov dword [ebp - 0x134], eax
test esi, esi
je 0x44148b
mov ebx, ecx
sub edi, ebx
lea ecx, [eax + ebx]
and eax, 7
mov al, byte [eax + edx + 7]
xor al, byte [edi + ecx]
mov byte [ecx], al
mov eax, dword [ebp - 0x134]
inc eax
mov dword [ebp - 0x134], eax
cmp eax, dword [edx + 0xf]
jb 0x44145e
mov ebx, dword [ebp - 0x140]
mov ecx, dword [ebp - 0x138]
mov eax, dword [edx + 0xf]
mov edi, ecx
mov byte [ecx + eax], 0
push 0
push str.Memory_Scanner
push edi
push 0
call dword [sym.imp.USER32.dll_MessageBoxA]
pop edi
jmp 0x4413bd
mov dword [ebp - 0x130], 0x595424
mov ebx, dword [ebp - 0x130]
mov edi, dword [ebp - 0x130]
add edi, 0x14
cmp byte [ebx + 0x13], 0
je 0x441510
mov esi, dword [ebx + 0xf]
lea eax, [esi + 1]
push eax
call fcn.00562163
mov edx, eax
xor eax, eax
mov dword [ebp - 0x130], eax
pop ecx
test esi, esi
je 0x441507
sub edi, edx
lea ecx, [eax + edx]
and eax, 7
mov al, byte [eax + ebx + 7]
xor al, byte [edi + ecx]
mov byte [ecx], al
mov eax, dword [ebp - 0x130]
inc eax
mov dword [ebp - 0x130], eax
cmp eax, dword [ebx + 0xf]
jb 0x4414e6
mov eax, dword [ebx + 0xf]
mov edi, edx
mov byte [edx + eax], 0
push 0
push str.Memory_Scanner
push edi
push 0
call dword [sym.imp.USER32.dll_MessageBoxA]
push 0
call dword [sym.imp.KERNEL32.dll_ExitProcess]

Function at 0x44159f
Capabilities:
Create thread

Disassembly:
xor eax, eax
push eax
push eax
push eax
push 0x441948
push eax
push eax
call dword [sym.imp.KERNEL32.dll_CreateThread]
ret
Function at 0x4415b2
Capabilities:
Connect to http server
Create http request
Encode data using xor
Read data from internet
Receive data
Send data
Send http request

Disassembly:
push ebp
mov ebp, esp
sub esp, 0x81c
mov eax, dword [0x66c240]
xor eax, ebp
mov dword [ebp - 4], eax
push ebx
push esi
push edi
xor ebx, ebx
push ebx
push ebx
push ebx
push ebx
push str.MyBrowser
call dword [sym.imp.WININET.dll_InternetOpenA]
mov esi, eax
mov dword [ebp - 0x814], esi
test esi, esi
je 0x44179d
push 1
push ebx
push 3
push ebx
push ebx
push 0x50
push dword [0x696798]
push esi
call dword [sym.imp.WININET.dll_InternetConnectA]
mov dword [ebp - 0x80c], eax
test eax, eax
je 0x44179d
mov dword [ebp - 0x808], 0x595514
mov dword [ebp - 0x818], ebx
mov ebx, dword [ebp - 0x808]
mov edi, dword [ebp - 0x808]
add edi, 0x14
mov dword [ebp - 0x81c], 0x595510
cmp byte [ebx + 0x13], 0
je 0x44168f
mov esi, dword [ebx + 0xf]
lea eax, [esi + 1]
push eax
call fcn.00562163
mov edx, eax
xor eax, eax
mov dword [ebp - 0x808], eax
pop ecx
test esi, esi
je 0x44167a
sub edi, edx
lea ecx, [eax + edx]
and eax, 7
mov al, byte [eax + ebx + 7]
xor al, byte [edi + ecx]
mov byte [ecx], al
mov eax, dword [ebp - 0x808]
inc eax
mov dword [ebp - 0x808], eax
cmp eax, dword [ebx + 0xf]
jb 0x441659
mov eax, dword [ebx + 0xf]
mov edi, edx
mov esi, dword [ebp - 0x814]
mov byte [edx + eax], 0
mov eax, dword [ebp - 0x80c]
push 1
xor edx, edx
lea ecx, [ebp - 0x81c]
push edx
push ecx
push edx
push edx
push edi
push str.POST
push eax
call dword [sym.imp.WININET.dll_HttpOpenRequestA]
mov edi, eax
test edi, edi
je 0x44179d
mov ecx, 0x5cd758
lea edx, [ecx + 1]
mov al, byte [ecx]
inc ecx
test al, al
jne 0x4416bc
sub ecx, edx
mov edx, 0x5cd75c
lea ebx, [edx + 1]
mov al, byte [edx]
inc edx
test al, al
jne 0x4416cd
push ecx
push 0x5cd758
sub edx, ebx
push edx
push 0x5cd75c
push edi
call dword [sym.imp.WININET.dll_HttpSendRequestA]
test eax, eax
je 0x44179d
push 0x800
xor ebx, ebx
lea eax, [ebp - 0x804]
push ebx
push eax
call fcn.0055ecc0
add esp, 0xc
mov dword [ebp - 0x810], 0x800
lea eax, [ebp - 0x810]
push ebx
push eax
lea eax, [ebp - 0x804]
push eax
push 0x16
push edi
call dword [sym.imp.WININET.dll_HttpQueryInfoA]
test eax, eax
je 0x44179d
lea eax, [ebp - 0x804]
push eax
push 0x6bedf0
call fcn.0042141f
push eax
call fcn.00432bb8
push 0x800
lea eax, [ebp - 0x804]
push ebx
push eax
call fcn.0055ecc0
add esp, 0x18
lea eax, [ebp - 0x810]
push eax
push 0x800
lea eax, [ebp - 0x804]
push eax
push edi
call dword [sym.imp.WININET.dll_InternetReadFile]
test eax, eax
je 0x44179d
push esi
mov esi, dword [sym.imp.WININET.dll_InternetCloseHandle]
call esi
push dword [ebp - 0x80c]
call esi
push edi
call esi
mov ecx, dword [ebp - 4]
pop edi
pop esi
xor ecx, ebp
pop ebx
call fcn.0055dcf4
mov esp, ebp
pop ebp
ret
call fcn.004417a3
int3
Function at 0x4417a3
Capabilities:
Create thread
Set file attributes
Terminate process

Disassembly:
push 0x158
mov eax, 0x580590
call fcn.0055dd89
xor ebx, ebx
cmp dword [0x69682c], 1
jne 0x441803
push 1
push 0x40
push 8
push str.GameGuard_Log.txt
lea ecx, [ebp - 0x164]
call fcn.0042443d
lea eax, [ebp - 0x164]
mov dword [ebp - 4], ebx
push str._nHTTP_Server_connection_fail_
push eax
call fcn.0042141f
pop ecx
pop ecx
lea ecx, [ebp - 0x164]
call fcn.00424a62
or dword [ebp - 4], 0xffffffff
lea ecx, [ebp - 0x164]
call fcn.00424592
cmp dword [0x69683c], 1
jne 0x4418ac
lea eax, [ebp - 0x14]
push eax
call fcn.0056300a
lea eax, [ebp - 0x14]
push eax
call fcn.00562d6b
pop ecx
pop ecx
push 1
push 0x40
push 8
mov edi, 0x58dacc
lea ecx, [ebp - 0xbc]
push edi
mov esi, eax
call fcn.0042443d
lea eax, [ebp - 0xbc]
mov dword [ebp - 4], 1
push str._nLocal_Time:
push eax
call fcn.0042141f
push esi
call fcn.00562b5e
push eax
lea eax, [ebp - 0xbc]
push eax
call fcn.0042141f
lea eax, [ebp - 0xbc]
push str.HTTP_Server_connection_fail_
push eax
call fcn.0042141f
lea eax, [ebp - 0xbc]
push str._n__________________
push eax
call fcn.0042141f
add esp, 0x24
lea ecx, [ebp - 0xbc]
call fcn.00424a62
push 2
push edi
call dword [sym.imp.KERNEL32.dll_SetFileAttributesA]
lea ecx, [ebp - 0xbc]
call fcn.00424592
mov eax, dword [0x696830]
cmp eax, 1
je 0x4418e9
cmp eax, 3
je 0x4418e9
cmp eax, 4
je 0x4418e9
push ebx
cmp eax, 2
jne 0x4418e7
push ebx
push ebx
push 0x4418f3
push ebx
push ebx
call dword [sym.imp.KERNEL32.dll_CreateThread]
push 0xbb8
call dword [sym.imp.KERNEL32.dll_Sleep]
push ebx
call dword [sym.imp.KERNEL32.dll_ExitProcess]
jmp 0x4418e1
push ebx
push ebx
push ebx
push 0x441914
jmp 0x4418cd

Function at 0x441935
Capabilities:
Create thread

Disassembly:
xor eax, eax
push eax
push eax
push eax
push fcn.004415b2
push eax
push eax
call dword [sym.imp.KERNEL32.dll_CreateThread]
ret

Function at 0x441a42
Capabilities:
Encode data using xor

Disassembly:
push ebp
mov ebp, esp
push ecx
push ecx
and dword [ecx + 4], 0
and dword [ecx + 8], 0
push ebx
push edi
push 0x595560
mov dword [ecx + 0x18], str.SPLASH
call dword [sym.imp.KERNEL32.dll_GetModuleHandleA]
mov dword [ebp - 4], 0x59556c
mov ebx, dword [ebp - 4]
mov edi, dword [ebp - 4]
add edi, 0x14
mov dword [ebp - 8], eax
cmp byte [ebx + 0x13], 0
je 0x441abf
push esi
mov esi, dword [ebx + 0xf]
lea eax, [esi + 1]
push eax
call fcn.00562163
mov edx, eax
xor eax, eax
pop ecx
test esi, esi
mov dword [ebp - 4], eax
pop esi
je 0x441ab3
sub edi, edx
lea ecx, [eax + edx]
and eax, 7
mov al, byte [eax + ebx + 7]
xor al, byte [edi + ecx]
mov byte [ecx], al
mov eax, dword [ebp - 4]
inc eax
mov dword [ebp - 4], eax
cmp eax, dword [ebx + 0xf]
jb 0x441a98
mov eax, dword [ebx + 0xf]
mov edi, edx
mov byte [edx + eax], 0
mov eax, dword [ebp - 8]
push edi
push eax
call dword [sym.imp.KERNEL32.dll_GetProcAddress]
pop edi
mov dword [0x69674c], eax
pop ebx
mov esp, ebp
pop ebp
ret
Function at 0x441d45
Capabilities:
Encode data using xor

Disassembly:
push 0x20
mov eax, 0x580c52
call fcn.0055dd89
mov dword [ebp - 0x10], 0x5955a4
mov ebx, dword [ebp - 0x10]
mov edi, dword [ebp - 0x10]
add edi, 0x14
cmp byte [ebx + 0x13], 0
je 0x441da5
mov esi, dword [ebx + 0xf]
lea eax, [esi + 1]
push eax
call fcn.00562163
mov edx, eax
xor eax, eax
mov dword [ebp - 0x10], eax
pop ecx
test esi, esi
je 0x441d9c
sub edi, edx
lea ecx, [eax + edx]
and eax, 7
mov al, byte [eax + ebx + 7]
xor al, byte [edi + ecx]
mov byte [ecx], al
mov eax, dword [ebp - 0x10]
inc eax
mov dword [ebp - 0x10], eax
cmp eax, dword [ebx + 0xf]
jb 0x441d81
mov eax, dword [ebx + 0xf]
mov edi, edx
mov byte [edx + eax], 0
push 0x808080
push edi
lea ecx, [ebp - 0x2c]
call fcn.00441960
and dword [ebp - 4], 0
lea ecx, [ebp - 0x2c]
call fcn.00441d07
push 0xbb8
call dword [sym.imp.KERNEL32.dll_Sleep]
lea ecx, [ebp - 0x2c]
call fcn.004419bf
or dword [ebp - 4], 0xffffffff
lea ecx, [ebp - 0x2c]
call fcn.0044198f
call fcn.0055dd66
ret
Function at 0x442f2c
Capabilities:
Create thread

Disassembly:
xor eax, eax
push eax
push eax
push eax
push 0x442f3f
push eax
push eax
call dword [sym.imp.KERNEL32.dll_CreateThread]
ret

Function at 0x44437c
Capabilities:
Create directory
Write file on windows

Disassembly:
push ebx
push esi
xor ebx, ebx
push edi
mov edi, ecx
mov esi, ebx
call fcn.00446869
mov dword [eax + esi*4 + 0x282], 1
call fcn.00446869
mov dword [eax + esi*4 + 0x1c6], ebx
cmp esi, 5
jge 0x4443ce
call fcn.00446869
mov dword [eax + esi*4 + 0x142], ebx
call fcn.00446869
mov dword [eax + esi*4 + 0x192], ebx
call fcn.00446869
mov dword [eax + esi*4 + 0x24e], 1
cmp esi, 4
jge 0x4443fb
call fcn.00446869
mov dword [eax + esi*4 + 0x156], ebx
call fcn.00446869
mov dword [eax + esi*4 + 0x1a6], ebx
call fcn.00446869
mov dword [eax + esi*4 + 0x262], 5
cmp esi, 2
jge 0x444450
call fcn.00446869
mov dword [eax + esi*4 + 0x166], ebx
call fcn.00446869
mov dword [eax + esi*4 + 0x16e], ebx
call fcn.00446869
mov dword [eax + esi*4 + 0x1b6], ebx
call fcn.00446869
mov dword [eax + esi*4 + 0x272], 5
call fcn.00446869
mov dword [eax + esi*4 + 0x1be], ebx
call fcn.00446869
mov dword [eax + esi*4 + 0x27a], 5
inc esi
cmp esi, 6
jl 0x444385
call fcn.00446869
mov dword [eax + 0x232], 0x1e
call fcn.00446869
xor esi, esi
inc esi
mov dword [eax + 0x176], esi
call fcn.00446869
mov dword [eax + 0x17a], esi
call fcn.00446869
mov esi, 0xfa
mov dword [eax + 0x21a], esi
call fcn.00446869
mov dword [eax + 0x21e], esi
call fcn.00446869
xor esi, esi
inc esi
mov dword [eax + 0x17e], esi
call fcn.00446869
mov dword [eax + 0x182], esi
call fcn.00446869
mov dword [eax + 0x242], esi
call fcn.00446869
push 3
pop esi
mov dword [eax + 0x246], esi
call fcn.00446869
mov dword [eax + 0x186], 1
call fcn.00446869
mov dword [eax + 0x126], 1
call fcn.00446869
mov dword [eax + 0xea], ebx
call fcn.00446869
mov dword [eax + 0xee], ebx
call fcn.00446869
mov dword [eax + 0xf2], ebx
call fcn.00446869
mov dword [eax + 0x18a], ebx
call fcn.00446869
mov dword [eax + 0x18e], ebx
call fcn.00446869
mov dword [eax + 0x20a], 5
call fcn.00446869
mov dword [eax + 0x212], 5
call fcn.00446869
mov dword [eax + 0x20e], 5
call fcn.00446869
mov dword [eax + 0x24a], esi
call fcn.00446869
mov dword [eax + 0x1f6], 5
call fcn.00446869
mov dword [eax + 0xf6], ebx
call fcn.00446869
xor esi, esi
inc esi
mov dword [eax + 0x106], esi
call fcn.00446869
mov dword [eax + 0x10a], esi
call fcn.00446869
mov dword [eax + 0x112], esi
call fcn.00446869
mov dword [eax + 0x11a], esi
call fcn.00446869
mov dword [eax + 0x29a], ebx
call fcn.00446869
mov dword [eax + 0x1de], esi
call fcn.00446869
mov dword [eax + 0x1e2], ebx
call fcn.00446869
mov dword [eax + 0x1e6], esi
call fcn.00446869
mov dword [eax + 0x1ea], esi
call fcn.00446869
mov dword [eax + 0x1ee], esi
call fcn.00446869
mov dword [eax + 0x1f2], esi
call fcn.00446869
mov ecx, edi
pop edi
pop esi
mov dword [eax + 0x29e], 0x3c
pop ebx
jmp fcn.00446681
Function at 0x44654c
Capabilities:
Read file on windows

Disassembly:
push ebp
mov ebp, esp
sub esp, 0x48
mov eax, dword [0x66c240]
xor eax, ebp
mov dword [ebp - 4], eax
mov eax, dword [0x6b1014]
push ebx
push esi
push edi
movzx eax, word [eax + 0x124]
mov esi, ecx
push eax
lea eax, [ebp - 0x44]
push str.._data_aiconfig__d.dat
push eax
call fcn.0055f31c
mov ebx, 0x1c5c
lea edi, [esi + 0xe6]
push ebx
push 0
push edi
call fcn.0055ecc0
push 0x58aa38
lea eax, [ebp - 0x44]
push eax
lea eax, [ebp - 0x48]
push eax
call fcn.0055f160
add esp, 0x24
cmp dword [ebp - 0x48], 0
je 0x44661c
push dword [ebp - 0x48]
push 1
push ebx
push edi
call fcn.0055f6f7
push dword [ebp - 0x48]
call fcn.0055f010
add esp, 0x14
call fcn.00446869
imul eax, dword [eax + 0x21a], 0x64
movd xmm0, eax
cvtdq2pd xmm0, xmm0
shr eax, 0x1f
addsd xmm0, qword [eax*8 + 0x58a810]
cvtpd2ps xmm0, xmm0
movss dword [esi + 0xda], xmm0
call fcn.00446869
imul eax, dword [eax + 0x21e], 0x64
movd xmm0, eax
cvtdq2pd xmm0, xmm0
shr eax, 0x1f
addsd xmm0, qword [eax*8 + 0x58a810]
cvtpd2ps xmm0, xmm0
movss dword [esi + 0xe2], xmm0
jmp 0x446623
mov ecx, esi
call fcn.0044437c
mov ecx, dword [ebp - 4]
pop edi
pop esi
xor ecx, ebp
pop ebx
call fcn.0055dcf4
mov esp, ebp
pop ebp
ret

Function at 0x446681
Capabilities:
Create directory
Write file on windows

Disassembly:
push ebp
mov ebp, esp
sub esp, 0x48
mov eax, dword [0x66c240]
xor eax, ebp
mov dword [ebp - 4], eax
push edi
push 0
push str.data
mov edi, ecx
call dword [sym.imp.KERNEL32.dll_CreateDirectoryA]
push 0
push str.data_aiconfig
call dword [sym.imp.KERNEL32.dll_CreateDirectoryA]
mov eax, dword [0x6b1014]
movzx eax, word [eax + 0x124]
push eax
lea eax, [ebp - 0x44]
push str.._data_aiconfig__d.dat
push eax
call fcn.0055f31c
push 0x595b3c
lea eax, [ebp - 0x44]
push eax
lea eax, [ebp - 0x48]
push eax
call fcn.0055f160
add esp, 0x18
cmp dword [ebp - 0x48], 0
je 0x446705
push dword [ebp - 0x48]
lea eax, [edi + 0xe6]
push 1
push 0x1c5c
push eax
call fcn.0055fa0e
push dword [ebp - 0x48]
call fcn.0055f010
add esp, 0x14
mov ecx, dword [ebp - 4]
xor ecx, ebp
pop edi
call fcn.0055dcf4
mov esp, ebp
pop ebp
ret

Function at 0x44e5a3
Capabilities:
Delete file

Disassembly:
push ebp
mov ebp, esp
cmp dword [ebp + 8], 1
push edi
mov edi, ecx
jne 0x44e5dc
mov eax, dword [0x6a8c0c]
push esi
add eax, 0x1d4c0
lea esi, [edi + 0x9c4]
mov ecx, esi
mov dword [edi + 0x978], eax
call fcn.004612b8
push str.ANRaster.tga
mov ecx, esi
call fcn.00461211
pop esi
jmp 0x44e5f2
lea ecx, [edi + 0x9c4]
call fcn.004612b8
push str.ANRaster.tga
call dword [sym.imp.KERNEL32.dll_DeleteFileA]
push dword [ebp + 8]
mov ecx, edi
call fcn.004a51ab
pop edi
pop ebp
ret 4
Function at 0x44e601
Capabilities:
Delete file

Disassembly:
push ebp
mov ebp, esp
cmp dword [ebp + 8], 1
push edi
mov edi, ecx
jne 0x44e63d
imul eax, dword [ebp + 0xc], 0x3e8
push esi
lea esi, [edi + 0x9c4]
mov ecx, esi
add eax, dword [0x6a8c0c]
mov dword [edi + 0x978], eax
call fcn.004612b8
push str.ANRaster.tga
mov ecx, esi
call fcn.00461211
pop esi
jmp 0x44e653
lea ecx, [edi + 0x9c4]
call fcn.004612b8
push str.ANRaster.tga
call dword [sym.imp.KERNEL32.dll_DeleteFileA]
push dword [ebp + 8]
mov ecx, edi
call fcn.004a51ab
pop edi
pop ebp
ret 8
Function at 0x46c901
Capabilities:
Set current directory

Disassembly:
push ebp
mov ebp, esp
push esi
mov esi, dword [ebp + 8]
push edi
mov edi, ecx
cmp esi, 0x12
jb 0x46c921
push 0
push 0x6a
push str.DirectoryManager.cpp
call fcn.0040f147
add esp, 0xc
cmp esi, dword [edi + 0x50]
je 0x46c938
cmp esi, 0x11
je 0x46c938
push dword [edi + esi*4 + 8]
call dword [sym.imp.KERNEL32.dll_SetCurrentDirectoryA]
mov dword [edi + 0x50], esi
pop edi
pop esi
pop ebp
ret 4

Function at 0x478b06
Capabilities:
Print debug messages

Disassembly:
push ebp
mov ebp, esp
sub esp, 0x418
mov eax, dword [0x66c240]
xor eax, ebp
mov dword [ebp - 4], eax
mov eax, dword [ebp + 0xc]
push ebx
push esi
mov dword [ebp - 0x414], eax
mov esi, ecx
mov eax, dword [ebp + 0x10]
push edi
mov edi, dword [ebp + 8]
mov dword [ebp - 0x418], eax
mov eax, dword [ebp + 0x14]
push 0x400
mov dword [ebp - 0x410], eax
lea eax, [ebp - 0x404]
push 0
push eax
call fcn.0055ecc0
mov ecx, edi
add esp, 0xc
and dword [ebp - 0x408], 0
lea edx, [ecx + 1]
mov al, byte [ecx]
inc ecx
test al, al
jne 0x478b5e
sub ecx, edx
push ecx
push edi
mov ecx, esi
call fcn.00478ada
lea ebx, [esi + 0x20]
mov dword [ebp - 0x40c], eax
push eax
mov ecx, ebx
call fcn.00463ba7
test eax, eax
jne 0x478c2c
cmp dword [ebx], 0xcd
jb 0x478bba
push 0x33
mov ecx, esi
call fcn.00478c5d
lea eax, [ebp - 0x404]
push 0x5996c4
push eax
call fcn.0055f31c
pop ecx
pop ecx
lea eax, [ebp - 0x404]
push eax
call dword [sym.imp.KERNEL32.dll_OutputDebugStringA]
mov eax, dword [esi]
xor edx, edx
push edx
push edx
push edx
mov ecx, dword [eax]
push edi
push eax
call dword [ecx + 0x18c]
mov dword [ebp - 0x408], eax
test eax, eax
je 0x478c2c
mov ecx, dword [esi]
push eax
push ecx
mov edx, dword [ecx]
call dword [edx + 0x114]
mov eax, dword [esi]
push dword [ebp - 0x408]
push eax
mov ecx, dword [eax]
call dword [ecx + 0x10c]
mov ecx, esi
call fcn.00478aa8
test eax, eax
je 0x478c0f
mov ecx, dword [ebp - 0x408]
mov dword [eax + 8], ecx
mov ecx, dword [ebp - 0x40c]
mov dword [eax + 4], ecx
push eax
lea ecx, [esi + 4]
call fcn.00559610
push dword [ebp - 0x40c]
lea eax, [ebp - 0x408]
mov ecx, ebx
push eax
call fcn.0054d130
push dword [ebp - 0x410]
mov eax, dword [esi]
push dword [ebp - 0x418]
push dword [ebp - 0x414]
mov ecx, dword [eax]
push edi
push eax
call dword [ecx + 0x18c]
mov ecx, dword [ebp - 4]
pop edi
pop esi
xor ecx, ebp
pop ebx
call fcn.0055dcf4
mov esp, ebp
pop ebp
ret 0x10

Function at 0x478d4c
Capabilities:
Print debug messages

Disassembly:
push esi
push edi
mov esi, ecx
call dword [sym.imp.KERNEL32.dll_GetTickCount]
mov edx, dword [esi + 0x4c]
mov edi, eax
add edx, 0x493e0
cmp edi, edx
jbe 0x478d7a
mov ecx, esi
call fcn.00478cac
push str._n____Cache_delete_one_item.__n_n
call dword [sym.imp.KERNEL32.dll_OutputDebugStringA]
mov dword [esi + 0x4c], edi
pop edi
pop esi
ret
Function at 0x480bca
Capabilities:
Resume thread

Disassembly:
push ebp
mov ebp, esp
sub esp, 0x2d0
mov eax, dword [0x66c240]
xor eax, ebp
mov dword [ebp - 4], eax
push esi
mov esi, ecx
push edi
xor edi, edi
cmp dword [esi + 0x40], edi
je 0x480cbf
mov ecx, dword [0x6a8c0c]
mov eax, ecx
sub eax, dword [esi + 0x44]
push ebx
xor ebx, ebx
inc ebx
cmp eax, 0x1388
jb 0x480c24
cmp dword [esi + 0x48], edi
jne 0x480c24
mov dword [esi + 0x48], ebx
push dword [0x6a4284]
call dword [sym.imp.KERNEL32.dll_SetEvent]
mov eax, dword [0x6a8c0c]
mov dword [esi + 0x44], eax
mov ecx, dword [0x6a8c0c]
mov eax, dword [esi + 0x4c]
mov esi, dword [sym.imp.USER32.dll_PostMessageA]
test eax, eax
je 0x480c4d
sub ecx, eax
cmp ecx, 0x1388
jb 0x480c4d
push edi
push edi
push 0x10
push dword [0x6a8154]
mov dword [0x6a85b0], ebx
call esi
push dword [0x6a428c]
call dword [sym.imp.KERNEL32.dll_ResumeThread]
test eax, eax
je 0x480c6f
push edi
push edi
push 0x10
push dword [0x6a8154]
mov dword [0x6a85b0], ebx
call esi
push 0x2c8
lea eax, [ebp - 0x2cc]
push edi
push eax
call fcn.0055ecc0
add esp, 0xc
mov dword [ebp - 0x2d0], 0x10007
lea eax, [ebp - 0x2d0]
push eax
push dword [0x6a428c]
call dword [sym.imp.KERNEL32.dll_GetThreadContext]
call dword [sym.imp.KERNEL32.dll_GetLastError]
cmp eax, 5
jne 0x480cbe
push edi
push edi
push 0x10
push dword [0x6a8154]
mov dword [0x6a85b0], ebx
call esi
pop ebx
mov ecx, dword [ebp - 4]
pop edi
xor ecx, ebp
pop esi
call fcn.0055dcf4
mov esp, ebp
pop ebp
ret
Function at 0x481504
Capabilities:
Query or enumerate registry key
Query or enumerate registry value

Disassembly:
push ebp
mov ebp, esp
sub esp, 0x12c
mov eax, dword [0x66c240]
xor eax, ebp
mov dword [ebp - 4], eax
push ebx
push edi
mov edi, dword [ebp + 8]
test edi, edi
je 0x4816bd
cmp byte [edi], 0
je 0x4816bd
lea eax, [ebp - 0x118]
xor ebx, ebx
push eax
push 0x20019
push ebx
push str.SYSTEMCurrentControlSetControlClass4D36E972_E325_11CE_BFC1_08002BE10318
push reloc.OLEAUT32.dll_SysReAllocString
mov dword [ebp - 0x118], ebx
call dword [sym.imp.ADVAPI32.dll_RegOpenKeyExA]
test eax, eax
jne 0x4816bd
push ebx
push ebx
push ebx
push ebx
push ebx
push ebx
push ebx
lea eax, [ebp - 0x11c]
mov dword [ebp - 0x11c], ebx
push eax
push ebx
push ebx
push ebx
push dword [ebp - 0x118]
call dword [sym.imp.ADVAPI32.dll_RegQueryInfoKeyA]
mov ecx, dword [ebp - 0x11c]
test eax, eax
push 0x64
pop edx
cmovne ecx, edx
mov eax, ebx
mov dword [ebp - 0x11c], ecx
mov dword [ebp - 0x128], eax
test ecx, ecx
je 0x4816ad
push esi
push eax
push str._04u
lea eax, [ebp - 0xc]
mov dword [ebp - 0xc], ebx
push 5
push eax
mov byte [ebp - 8], bl
call fcn.00484fb8
add esp, 0x10
mov dword [ebp - 0x114], ebx
lea eax, [ebp - 0x114]
push eax
push 0x20019
push ebx
lea eax, [ebp - 0xc]
push eax
push dword [ebp - 0x118]
call dword [sym.imp.ADVAPI32.dll_RegOpenKeyExA]
test eax, eax
jne 0x48168b
lea eax, [ebp - 0x120]
mov dword [ebp - 0x124], ebx
push eax
lea eax, [ebp - 0x110]
mov dword [ebp - 0x120], 0x104
push eax
lea eax, [ebp - 0x124]
push eax
push ebx
push str.NetCfgInstanceId
push dword [ebp - 0x114]
call dword [sym.imp.ADVAPI32.dll_RegQueryValueExA]
test eax, eax
je 0x481630
push dword [ebp - 0x114]
call dword [sym.imp.ADVAPI32.dll_RegCloseKey]
jmp 0x48168b
push edi
lea eax, [ebp - 0x110]
push eax
call dword [sym.imp.KERNEL32.dll_lstrcmpiA]
test eax, eax
jne 0x481622
lea eax, [ebp - 0x120]
mov dword [ebp - 0x12c], ebx
push eax
lea eax, [ebp - 0x12c]
mov dword [ebp - 0x120], 4
push eax
lea eax, [ebp - 0x124]
push eax
push ebx
push str.Characteristics
push dword [ebp - 0x114]
call dword [sym.imp.ADVAPI32.dll_RegQueryValueExA]
push dword [ebp - 0x114]
mov esi, eax
call dword [sym.imp.ADVAPI32.dll_RegCloseKey]
test esi, esi
je 0x4816a6
mov eax, dword [ebp - 0x128]
inc eax
mov dword [ebp - 0x128], eax
cmp eax, dword [ebp - 0x11c]
jb 0x4815a2
jmp 0x4816ac
mov ebx, dword [ebp - 0x12c]
pop esi
push dword [ebp - 0x118]
call dword [sym.imp.ADVAPI32.dll_RegCloseKey]
mov eax, ebx
jmp 0x4816bf
xor eax, eax
mov ecx, dword [ebp - 4]
pop edi
xor ecx, ebp
pop ebx
call fcn.0055dcf4
mov esp, ebp
pop ebp
ret 4
Function at 0x4817c8
Capabilities:
Get mac address on windows

Disassembly:
push ebp
mov ebp, esp
sub esp, 0xc
push esi
lea eax, [ebp - 4]
mov dword [ebp - 8], ecx
xor esi, esi
push eax
push esi
mov dword [ebp - 4], esi
call sub.IPHLPAPI.DLL_GetAdaptersInfo
cmp eax, 0x6f
je 0x481806
call dword [sym.imp.KERNEL32.dll_GetLastError]
push eax
push str.GetMAC_Failed__ErrorCode:__d
push 0x12
push dword [ebp + 8]
call fcn.00484fb8
add esp, 0x10
xor eax, eax
jmp 0x4818a9
push ebx
push dword [ebp - 4]
call fcn.00562163
mov ebx, eax
mov dword [ebp - 0xc], ebx
pop ecx
test ebx, ebx
jne 0x48182b
push str.GetMAC_Failed__Because_malloc_failed_
push dword [ebp + 8]
call dword [sym.imp.KERNEL32.dll_lstrcpyA]
xor eax, eax
jmp 0x4818a8
push edi
lea eax, [ebp - 4]
mov edi, ebx
push eax
push ebx
call sub.IPHLPAPI.DLL_GetAdaptersInfo
test eax, eax
je 0x481857
call dword [sym.imp.KERNEL32.dll_GetLastError]
push eax
push str.GetMAC_Failed__ErrorCode:__d
push 0x12
push dword [ebp + 8]
call fcn.00484fb8
add esp, 0x10
jmp 0x48189e
mov ebx, dword [ebp - 8]
mov eax, dword [edi + 0x190]
cmp eax, 6
jb 0x481895
cmp eax, 8
ja 0x481895
push eax
lea eax, [edi + 0x194]
push eax
push dword [ebp + 8]
call fcn.0055e220
mov esi, dword [edi + 0x190]
lea eax, [edi + 8]
add esp, 0xc
mov ecx, ebx
push eax
call fcn.00481504
shr eax, 2
test al, 1
jne 0x48189b
mov edi, dword [edi]
test edi, edi
jne 0x48185a
mov ebx, dword [ebp - 0xc]
push ebx
call fcn.0056212b
pop ecx
mov eax, esi
pop edi
pop ebx
pop esi
mov esp, ebp
pop ebp
ret 4