joyce8/EMBER2024-capa huggingface dataset:
Function at 0x478250
Capabilities:
Encrypt data using rc4 prga

Disassembly:
push ebp
mov ebp, esp
push esi
mov esi, dword [ebp + 8]
push edi
mov eax, dword [esi + 8]
mov edi, eax
and edi, 7
je 0x478277
cmp eax, edi
jge 0x47826f
push esi
call fcn.004741a0
add esp, 4
mov ecx, edi
shr dword [esi + 0xc], cl
sub dword [esi + 8], edi
mov edx, dword [esi + 8]
xor ecx, ecx
test edx, edx
jle 0x4782a0
mov edi, dword [esi + 0xc]
mov al, byte [esi + 0xc]
sub edx, 8
mov byte [ebp + ecx + 8], al
inc ecx
shr edi, 8
mov dword [esi + 0xc], edi
test edx, edx
jg 0x478283
mov dword [esi + 8], edx
cmp ecx, 4
jge 0x4782bc
mov edi, dword [esi + 4]
mov eax, dword [esi]
cmp eax, edi
jb 0x4782ad
xor dl, dl
jmp 0x4782b2
mov dl, byte [eax]
inc eax
mov dword [esi], eax
mov byte [ebp + ecx + 8], dl
inc ecx
cmp ecx, 4
jl 0x4782a5
mov eax, dword [ebp + 8]
movzx ecx, byte [ebp + 0xb]
movzx edi, ah
movzx eax, al
shl edi, 8
add edi, eax
shl ecx, 8
movzx eax, byte [ebp + 0xa]
add ecx, eax
mov eax, edi
xor eax, 0xffff
cmp ecx, eax
je 0x4782f1
pop edi
pop esi
mov dword [ebp + 8], str.zlib_corrupt
pop ebp
jmp fcn.004740b0
mov eax, dword [esi]
add eax, edi
cmp eax, dword [esi + 4]
jbe 0x478309
pop edi
pop esi
mov dword [ebp + 8], str.read_past_buffer
pop ebp
jmp fcn.004740b0
mov ecx, dword [esi + 0x10]
lea eax, [ecx + edi]
cmp eax, dword [esi + 0x18]
jbe 0x478327
push edi
push ecx
push esi
call fcn.0047b4d0
add esp, 0xc
test eax, eax
jne 0x478327
pop edi
pop esi
pop ebp
ret
push edi
push dword [esi]
push dword [esi + 0x10]
call fcn.0048cfb0
add dword [esi], edi
add esp, 0xc
add dword [esi + 0x10], edi
mov eax, 1
pop edi
pop esi
pop ebp
ret
Function at 0x47c4aa
Capabilities:
Create process on windows

Disassembly:
push 0x88
mov eax, 0x50d23b
call fcn.004b4d7f
mov esi, dword [ebp + 8]
lea eax, [ebp - 0x94]
mov edi, dword [ebp + 0xc]
push 0x44
pop ebx
push ebx
push 0
push eax
call fcn.0048d530
push 0x10
lea eax, [ebp - 0x50]
mov dword [ebp - 0x94], ebx
push 0
push eax
call fcn.0048d530
add esp, 0x18
xor edx, edx
xor eax, eax
mov dword [ebp - 0x18], edx
mov word [ebp - 0x28], ax
push 7
pop ecx
mov dword [ebp - 0x14], ecx
mov dword [ebp - 4], edx
mov dword [ebp - 0x2c], ecx
mov dword [ebp - 0x30], edx
mov word [ebp - 0x40], ax
or ebx, 0xffffffff
mov byte [ebp - 4], 1
test edi, edi
je 0x47c588
cmp word [edi], dx
jne 0x47c519
mov eax, edx
jmp 0x47c520
push edi
call fcn.0049dd7d
pop ecx
push eax
push edi
lea ecx, [ebp - 0x40]
call fcn.00403840
cmp dword [ebp - 0x30], 0
je 0x47c588
mov edi, 0x50f96c
push edi
call fcn.0049dd7d
pop ecx
push eax
push edi
lea ecx, [ebp - 0x28]
call fcn.00403840
xor edi, edi
cmp word [esi], di
jne 0x47c551
mov eax, edi
jmp 0x47c558
push esi
call fcn.0049dd7d
pop ecx
push eax
push esi
lea ecx, [ebp - 0x28]
call fcn.004033c0
mov esi, 0x51f17c
push esi
call fcn.0049dd7d
pop ecx
push eax
push esi
lea ecx, [ebp - 0x28]
call fcn.004033c0
push ebx
push edi
lea eax, [ebp - 0x40]
push eax
lea ecx, [ebp - 0x28]
call fcn.004032b0
jmp 0x47c5a4
xor edi, edi
cmp word [esi], di
jne 0x47c593
mov eax, edi
jmp 0x47c59a
push esi
call fcn.0049dd7d
pop ecx
push eax
push esi
lea ecx, [ebp - 0x28]
call fcn.00403840
cmp dword [ebp - 0x14], 8
lea eax, [ebp - 0x28]
cmovae eax, dword [ebp - 0x28]
push eax
push str.CreateRunProcess__s_
call fcn.004f7930
cmp dword [ebp - 0x14], 8
lea eax, [ebp - 0x28]
pop ecx
cmovae eax, dword [ebp - 0x28]
pop ecx
lea ecx, [ebp - 0x50]
push ecx
lea ecx, [ebp - 0x94]
push ecx
push edi
push edi
push edi
push 1
push edi
push edi
push eax
push edi
call dword [sym.imp.KERNEL32.dll_CreateProcessW]
test eax, eax
jne 0x47c5e9
mov esi, edi
jmp 0x47c614
cmp byte [ebp + 0x10], 0
je 0x47c601
cmp dword [ebp + 0x14], 0
cmovg ebx, dword [ebp + 0x14]
push ebx
push dword [ebp - 0x50]
call dword [sym.imp.KERNEL32.dll_WaitForSingleObject]
push dword [ebp - 0x50]
mov esi, dword [sym.imp.KERNEL32.dll_CloseHandle]
call esi
push dword [ebp - 0x4c]
call esi
xor esi, esi
inc esi
push edi
push 1
lea ecx, [ebp - 0x40]
call fcn.0047c3c1
push edi
push 1
lea ecx, [ebp - 0x28]
call fcn.0047c3c1
mov eax, esi
call fcn.004b4d3a
ret
Function at 0x47c76e
Capabilities:
Enumerate processes

Disassembly:
push 0x260
mov eax, 0x50d2b7
call fcn.004b4d7f
mov eax, dword [ebp + 8]
test eax, eax
je 0x47c86a
push eax
lea ecx, [ebp - 0x40]
call fcn.00401d80
lea eax, [ebp - 0x40]
xor ebx, ebx
push eax
mov dword [ebp - 4], ebx
call fcn.0047d99c
mov edi, 0x22c
lea eax, [ebp - 0x26c]
push edi
push ebx
push eax
call fcn.0048d530
add esp, 0x10
push ebx
push 2
call sub.KERNEL32.dll_CreateToolhelp32Snapshot
mov esi, eax
cmp esi, 0xffffffff
je 0x47c85b
lea eax, [ebp - 0x26c]
mov dword [ebp - 0x26c], edi
push eax
push esi
call sub.KERNEL32.dll_Process32FirstW
jmp 0x47c850
xor eax, eax
mov dword [ebp - 0x14], 7
mov dword [ebp - 0x18], ebx
mov word [ebp - 0x28], ax
cmp word [ebp - 0x248], ax
jne 0x47c7fa
mov eax, ebx
jmp 0x47c807
lea eax, [ebp - 0x248]
push eax
call fcn.0049dd7d
pop ecx
push eax
lea eax, [ebp - 0x248]
push eax
lea ecx, [ebp - 0x28]
call fcn.00403840
lea eax, [ebp - 0x28]
mov byte [ebp - 4], 1
push eax
call fcn.0047d99c
pop ecx
lea eax, [ebp - 0x40]
push eax
lea ecx, [ebp - 0x28]
call fcn.0047c9cd
test eax, eax
je 0x47c870
push ebx
push 1
lea ecx, [ebp - 0x28]
mov byte [ebp - 4], bl
call fcn.0047c3c1
lea eax, [ebp - 0x26c]
push eax
push esi
call sub.KERNEL32.dll_Process32NextW
test eax, eax
jne 0x47c7dd
push esi
call dword [sym.imp.KERNEL32.dll_CloseHandle]
mov esi, ebx
push ebx
push 1
lea ecx, [ebp - 0x40]
call fcn.0047c3c1
mov eax, esi
call fcn.004b4d3a
ret
push esi
call dword [sym.imp.KERNEL32.dll_CloseHandle]
mov esi, dword [ebp - 0x264]
lea ecx, [ebp - 0x28]
push ebx
push 1
call fcn.0047c3c1
jmp 0x47c85d
Function at 0x47ca25
Capabilities:
Query or enumerate registry value

Disassembly:
push 0x83c
mov eax, 0x50d2ea
call fcn.004b4d7f
mov eax, dword [ebp + 0x14]
lea ecx, [ebp - 0x828]
mov edi, dword [ebp + 8]
mov ebx, dword [ebp + 0xc]
mov esi, dword [ebp + 0x10]
and dword [ebp - 0x848], 0
mov dword [ebp - 0x83c], eax
mov eax, dword [ebp + 0x18]
mov dword [ebp - 0x844], eax
mov eax, dword [ebp + 0x1c]
push eax
call fcn.00401d80
xor ecx, ecx
lea eax, [ebp - 0x82c]
push eax
push 0x20119
push ecx
push esi
mov esi, dword [sym.imp.ADVAPI32.dll_RegOpenKeyExW]
push reloc.WS2_32.dll_closesocket
mov dword [ebp - 4], ecx
mov dword [ebp - 0x82c], ecx
mov dword [ebp - 0x838], ecx
mov dword [ebp - 0x834], ecx
mov dword [ebp - 0x830], ecx
call esi
test eax, eax
je 0x47cab6
lea eax, [ebp - 0x828]
mov ecx, edi
push eax
call fcn.00401d50
push 0
jmp 0x47cbf3
lea eax, [ebp - 0x838]
push eax
push 0x20119
push 0
push str.SoftWare
push dword [ebp - 0x82c]
call esi
test eax, eax
je 0x47cae3
push dword [ebp - 0x82c]
call dword [sym.imp.ADVAPI32.dll_RegCloseKey]
jmp 0x47caa1
lea eax, [ebp - 0x834]
push eax
push 0x20119
push 0
push ebx
push dword [ebp - 0x838]
call esi
test eax, eax
je 0x47cb16
push dword [ebp - 0x838]
mov esi, dword [sym.imp.ADVAPI32.dll_RegCloseKey]
call esi
push dword [ebp - 0x82c]
call esi
jmp 0x47caa1
lea eax, [ebp - 0x830]
xor ebx, ebx
push eax
push 0x20119
push ebx
push dword [ebp - 0x83c]
push dword [ebp - 0x834]
call esi
test eax, eax
je 0x47cb68
push dword [ebp - 0x830]
mov esi, dword [sym.imp.ADVAPI32.dll_RegCloseKey]
call esi
push dword [ebp - 0x834]
call esi
push dword [ebp - 0x82c]
call esi
mov ecx, edi
lea eax, [ebp - 0x828]
push eax
call fcn.00401d50
jmp 0x47cbf2
push 0x800
lea eax, [ebp - 0x810]
push ebx
push eax
call fcn.0048d530
add esp, 0xc
mov dword [ebp - 0x840], 0x400
lea eax, [ebp - 0x840]
push eax
lea eax, [ebp - 0x810]
push eax
push ebx
push ebx
push dword [ebp - 0x844]
push dword [ebp - 0x830]
call dword [sym.imp.ADVAPI32.dll_RegQueryValueExW]
push dword [ebp - 0x830]
mov esi, dword [sym.imp.ADVAPI32.dll_RegCloseKey]
call esi
push dword [ebp - 0x834]
call esi
push dword [ebp - 0x838]
call esi
push dword [ebp - 0x82c]
call esi
lea eax, [ebp - 0x810]
push eax
call fcn.0049dd7d
pop ecx
mov ecx, edi
test eax, eax
je 0x47cb57
lea eax, [ebp - 0x810]
push eax
call fcn.00401d80
push ebx
push 1
lea ecx, [ebp - 0x828]
call fcn.0047c3c1
mov eax, edi
call fcn.004b4d3a
ret
Function at 0x47cda7
Capabilities:
Query or enumerate registry value

Disassembly:
push 0x838
mov eax, 0x50d352
call fcn.004b4d7f
mov eax, dword [ebp + 0x10]
lea ecx, [ebp - 0x828]
mov edi, dword [ebp + 8]
xor esi, esi
mov ebx, dword [ebp + 0xc]
mov dword [ebp - 0x838], eax
mov eax, dword [ebp + 0x14]
mov dword [ebp - 0x840], eax
mov eax, dword [ebp + 0x18]
push eax
mov dword [ebp - 0x844], esi
call fcn.00401d80
lea eax, [ebp - 0x834]
mov dword [ebp - 0x834], esi
push eax
push 0x20119
push esi
push str.SoftWare
mov dword [ebp - 0x830], esi
mov dword [ebp - 0x82c], esi
mov dword [ebp - 4], esi
mov esi, dword [sym.imp.ADVAPI32.dll_RegOpenKeyExW]
push reloc.OLEAUT32.dll_SysReAllocString
call esi
test eax, eax
je 0x47ce32
lea eax, [ebp - 0x828]
mov ecx, edi
push eax
call fcn.00401d50
push 0
jmp 0x47cf21
lea eax, [ebp - 0x830]
push eax
push 0x20119
push 0
push ebx
push dword [ebp - 0x834]
call esi
test eax, eax
je 0x47ce5b
push dword [ebp - 0x834]
call dword [sym.imp.ADVAPI32.dll_RegCloseKey]
jmp 0x47ce1d
lea eax, [ebp - 0x82c]
xor ebx, ebx
push eax
push 0x20119
push ebx
push dword [ebp - 0x838]
push dword [ebp - 0x830]
call esi
test eax, eax
je 0x47cea2
push dword [ebp - 0x830]
mov esi, dword [sym.imp.ADVAPI32.dll_RegCloseKey]
call esi
push dword [ebp - 0x82c]
call esi
mov ecx, edi
lea eax, [ebp - 0x828]
push eax
call fcn.00401d50
jmp 0x47cf20
push 0x800
lea eax, [ebp - 0x810]
push ebx
push eax
call fcn.0048d530
add esp, 0xc
mov dword [ebp - 0x83c], 0x400
lea eax, [ebp - 0x83c]
push eax
lea eax, [ebp - 0x810]
push eax
push ebx
push ebx
push dword [ebp - 0x840]
push dword [ebp - 0x82c]
call dword [sym.imp.ADVAPI32.dll_RegQueryValueExW]
push dword [ebp - 0x82c]
mov esi, dword [sym.imp.ADVAPI32.dll_RegCloseKey]
call esi
push dword [ebp - 0x830]
call esi
push dword [ebp - 0x834]
call esi
lea eax, [ebp - 0x810]
push eax
call fcn.0049dd7d
pop ecx
mov ecx, edi
test eax, eax
je 0x47ce94
lea eax, [ebp - 0x810]
push eax
call fcn.00401d80
push ebx
push 1
lea ecx, [ebp - 0x828]
call fcn.0047c3c1
mov eax, edi
call fcn.004b4d3a
ret
Function at 0x47cf36
Capabilities:
Query or enumerate registry value

Disassembly:
push 0x834
mov eax, 0x50d385
call fcn.004b4d7f
mov eax, dword [ebp + 0x14]
lea ecx, [ebp - 0x828]
mov edi, dword [ebp + 8]
mov esi, dword [ebp + 0xc]
mov ebx, dword [ebp + 0x10]
and dword [ebp - 0x840], 0
mov dword [ebp - 0x83c], eax
mov eax, dword [ebp + 0x18]
push eax
call fcn.00401d80
xor ecx, ecx
lea eax, [ebp - 0x834]
push eax
push 0xf013f
push ecx
push str.SoftWare
push reloc.WS2_32.dll_accept
mov dword [ebp - 4], ecx
mov dword [ebp - 0x834], ecx
mov dword [ebp - 0x830], ecx
mov dword [ebp - 0x82c], ecx
call dword [sym.imp.ADVAPI32.dll_RegOpenKeyExW]
test eax, eax
je 0x47cfba
lea eax, [ebp - 0x828]
mov ecx, edi
push eax
call fcn.00401d50
push 0
jmp 0x47d0b8
xor ecx, ecx
lea eax, [ebp - 0x830]
push ecx
push eax
push ecx
push 0xf013f
push ecx
push ecx
push ecx
push esi
push dword [ebp - 0x834]
mov esi, dword [sym.imp.ADVAPI32.dll_RegCreateKeyExW]
call esi
test eax, eax
je 0x47cfee
push dword [ebp - 0x834]
call dword [sym.imp.ADVAPI32.dll_RegCloseKey]
jmp 0x47cfa5
xor ecx, ecx
lea eax, [ebp - 0x82c]
push ecx
push eax
push ecx
push 0xf013f
push ecx
push ecx
push ecx
push ebx
push dword [ebp - 0x830]
call esi
test eax, eax
je 0x47d029
push dword [ebp - 0x830]
mov esi, dword [sym.imp.ADVAPI32.dll_RegCloseKey]
call esi
push dword [ebp - 0x82c]
call esi
jmp 0x47cfa5
push 0x800
xor ebx, ebx
lea eax, [ebp - 0x810]
push ebx
push eax
call fcn.0048d530
add esp, 0xc
mov dword [ebp - 0x838], 0x400
lea eax, [ebp - 0x838]
push eax
lea eax, [ebp - 0x810]
push eax
push ebx
push ebx
push dword [ebp - 0x83c]
push dword [ebp - 0x82c]
call dword [sym.imp.ADVAPI32.dll_RegQueryValueExW]
push dword [ebp - 0x82c]
mov esi, dword [sym.imp.ADVAPI32.dll_RegCloseKey]
call esi
push dword [ebp - 0x830]
call esi
push dword [ebp - 0x834]
call esi
lea eax, [ebp - 0x810]
push eax
call fcn.0049dd7d
pop ecx
mov ecx, edi
test eax, eax
jne 0x47d0ab
lea eax, [ebp - 0x828]
push eax
call fcn.00401d50
jmp 0x47d0b7
lea eax, [ebp - 0x810]
push eax
call fcn.00401d80
push ebx
push 1
lea ecx, [ebp - 0x828]
call fcn.0047c3c1
mov eax, edi
call fcn.004b4d3a
ret
Function at 0x47d0cd
Capabilities:
Query or enumerate registry key
Query or enumerate registry value

Disassembly:
push ebp
mov ebp, esp
sub esp, 0xc28
mov eax, dword [0x5490a4]
xor eax, ebp
mov dword [ebp - 4], eax
mov eax, dword [ebp + 0x10]
push ebx
push esi
mov esi, dword [ebp + 8]
xor ebx, ebx
push edi
mov edi, dword [ebp + 0xc]
push 0x208
mov dword [ebp - 0xc24], eax
lea eax, [ebp - 0x20c]
push ebx
push eax
mov dword [ebp - 0xc28], ebx
mov dword [ebp - 0xc18], ebx
call fcn.0048d530
add esp, 0xc
lea eax, [ebp - 0x20c]
push 0x104
push eax
push ebx
jmp 0x47d1c7
lea eax, [ebp - 0xc18]
push eax
lea eax, [ebp - 0x20c]
push eax
push edi
call dword [sym.imp.ADVAPI32.dll_RegOpenKeyW]
test eax, eax
jne 0x47d1b9
push 0x208
push eax
lea eax, [ebp - 0x414]
mov dword [ebp - 0xc1c], 0x104
push eax
call fcn.0048d530
add esp, 0xc
mov dword [ebp - 0xc20], 1
lea eax, [ebp - 0xc1c]
push eax
lea eax, [ebp - 0x414]
push eax
lea eax, [ebp - 0xc20]
push eax
push 0
push str.DisplayName
push dword [ebp - 0xc18]
call dword [sym.imp.ADVAPI32.dll_RegQueryValueExW]
test eax, eax
jne 0x47d1ad
push dword [ebp - 0xc24]
lea eax, [ebp - 0x414]
push eax
call fcn.0048c8e4
pop ecx
pop ecx
test eax, eax
jne 0x47d1f5
push dword [ebp - 0xc18]
call dword [sym.imp.ADVAPI32.dll_RegCloseKey]
push 0x104
lea eax, [ebp - 0x20c]
inc ebx
push eax
push ebx
push edi
call dword [sym.imp.ADVAPI32.dll_RegEnumKeyW]
test eax, eax
je 0x47d127
push 0x50f7a0
mov ecx, esi
call fcn.00401d80
mov ecx, dword [ebp - 4]
mov eax, esi
pop edi
pop esi
xor ecx, ebp
pop ebx
call fcn.00413c46
mov esp, ebp
pop ebp
ret
push 0x800
lea eax, [ebp - 0xc14]
push 0
push eax
call fcn.0048d530
add esp, 0xc
mov dword [ebp - 0xc1c], 0x400
lea eax, [ebp - 0xc1c]
push eax
lea eax, [ebp - 0xc14]
push eax
lea eax, [ebp - 0xc20]
push eax
push 0
push str.UninstallString
push dword [ebp - 0xc18]
call dword [sym.imp.ADVAPI32.dll_RegQueryValueExW]
lea eax, [ebp - 0xc14]
push eax
jmp 0x47d1db
Function at 0x47d246
Capabilities:
Set registry value

Disassembly:
push ebp
mov ebp, esp
sub esp, 0x10
push ebx
push esi
mov esi, dword [sym.imp.ADVAPI32.dll_RegOpenKeyExW]
lea eax, [ebp - 4]
push edi
push eax
xor edi, edi
mov ebx, 0xf013f
push ebx
push edi
push dword [ebp + 0xc]
mov dword [ebp - 4], edi
push reloc.WS2_32.dll_closesocket
mov dword [ebp - 8], edi
mov dword [ebp - 0xc], edi
mov dword [ebp - 0x10], edi
call esi
test eax, eax
jne 0x47d31e
lea eax, [ebp - 8]
push eax
push ebx
push edi
push str.SoftWare
push dword [ebp - 4]
call esi
test eax, eax
je 0x47d29f
push dword [ebp - 4]
call dword [sym.imp.ADVAPI32.dll_RegCloseKey]
jmp 0x47d31e
mov esi, dword [sym.imp.ADVAPI32.dll_RegCreateKeyExW]
lea eax, [ebp - 0xc]
push edi
push eax
push edi
push ebx
push edi
push edi
push edi
push dword [ebp + 8]
push dword [ebp - 8]
call esi
test eax, eax
je 0x47d2c3
mov esi, dword [sym.imp.ADVAPI32.dll_RegCloseKey]
jmp 0x47d314
push edi
lea eax, [ebp - 0x10]
push eax
push edi
push ebx
push edi
push edi
push edi
push dword [ebp + 0x10]
push dword [ebp - 0xc]
call esi
test eax, eax
je 0x47d2e1
mov esi, dword [sym.imp.ADVAPI32.dll_RegCloseKey]
jmp 0x47d30f
push dword [ebp + 0x18]
call fcn.0049dd7d
pop ecx
lea eax, [eax*2 + 2]
push eax
push dword [ebp + 0x18]
push 1
push edi
push dword [ebp + 0x14]
push dword [ebp - 0x10]
call dword [sym.imp.ADVAPI32.dll_RegSetValueExW]
push dword [ebp - 0x10]
mov esi, dword [sym.imp.ADVAPI32.dll_RegCloseKey]
call esi
push dword [ebp - 0xc]
call esi
push dword [ebp - 8]
call esi
push dword [ebp - 4]
call esi
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret

Function at 0x47d325
Capabilities:
Set registry value

Disassembly:
push ebp
mov ebp, esp
sub esp, 0xc
push ebx
push edi
lea eax, [ebp - 0xc]
xor edi, edi
push eax
mov ebx, 0xf013f
mov dword [ebp - 0xc], edi
push ebx
push edi
push str.SoftWare
push reloc.WS2_32.dll_accept
mov dword [ebp - 8], edi
mov dword [ebp - 4], edi
call dword [sym.imp.ADVAPI32.dll_RegOpenKeyExW]
test eax, eax
jne 0x47d3e2
push esi
mov esi, dword [sym.imp.ADVAPI32.dll_RegCreateKeyExW]
lea eax, [ebp - 8]
push edi
push eax
push edi
push ebx
push edi
push edi
push edi
push dword [ebp + 8]
push dword [ebp - 0xc]
call esi
test eax, eax
je 0x47d383
push dword [ebp - 0xc]
call dword [sym.imp.ADVAPI32.dll_RegCloseKey]
jmp 0x47d3e1
push edi
lea eax, [ebp - 4]
push eax
push edi
push ebx
push edi
push edi
push edi
push dword [ebp + 0xc]
push dword [ebp - 8]
call esi
test eax, eax
je 0x47d3a9
push dword [ebp - 8]
mov esi, dword [sym.imp.ADVAPI32.dll_RegCloseKey]
call esi
push dword [ebp - 4]
jmp 0x47d3df
push dword [ebp + 0x14]
call fcn.0049dd7d
pop ecx
lea eax, [eax*2 + 2]
push eax
push dword [ebp + 0x14]
push 1
push edi
push dword [ebp + 0x10]
push dword [ebp - 4]
call dword [sym.imp.ADVAPI32.dll_RegSetValueExW]
push dword [ebp - 4]
mov esi, dword [sym.imp.ADVAPI32.dll_RegCloseKey]
call esi
push dword [ebp - 8]
call esi
push dword [ebp - 0xc]
call esi
pop esi
pop edi
pop ebx
mov esp, ebp
pop ebp
ret
Function at 0x47de34
Capabilities:
Query or enumerate registry value

Disassembly:
push 0x30
mov eax, 0x50d525
call fcn.004b4d4b
xor esi, esi
mov dword [ebp - 0x18], 0x104
lea ecx, [ebp - 0x3c]
mov dword [ebp - 0x10], esi
mov dword [ebp - 0x14], esi
call fcn.00482ace
lea ecx, [ebp - 0x3c]
mov dword [ebp - 4], esi
call fcn.00482b02
test eax, eax
mov edi, 0xf013f
lea eax, [ebp - 0x10]
push eax
jne 0x47de74
mov edi, 0xf003f
push edi
push esi
push str.SoftWare
push reloc.OLEAUT32.dll_SysReAllocString
call dword [sym.imp.ADVAPI32.dll_RegOpenKeyExW]
test eax, eax
jne 0x47ded6
push esi
lea eax, [ebp - 0x14]
push eax
push esi
push edi
push esi
push esi
push esi
push str.XiangCaoWifi
push dword [ebp - 0x10]
call dword [sym.imp.ADVAPI32.dll_RegCreateKeyExW]
test eax, eax
je 0x47deb1
push dword [ebp - 0x10]
call dword [sym.imp.ADVAPI32.dll_RegCloseKey]
jmp 0x47ded6
lea eax, [ebp - 0x18]
push eax
push dword [ebp + 0xc]
push esi
push esi
push dword [ebp + 8]
push dword [ebp - 0x14]
call dword [sym.imp.ADVAPI32.dll_RegQueryValueExW]
push dword [ebp - 0x14]
mov esi, dword [sym.imp.ADVAPI32.dll_RegCloseKey]
call esi
push dword [ebp - 0x10]
call esi
lea ecx, [ebp - 0x3c]
call fcn.00482ae1
call fcn.004b4d25
ret 8

Function at 0x47e005
Capabilities:
Read .ini file

Disassembly:
push 0x82c
mov eax, 0x50d562
call fcn.004b4d7f
mov edi, ecx
mov eax, dword [ebp + 0xc]
xor ecx, ecx
mov esi, dword [ebp + 8]
mov ebx, dword [ebp + 0x14]
mov dword [ebp - 0x830], eax
mov eax, dword [ebp + 0x10]
push 0x800
mov dword [ebp - 0x82c], eax
lea eax, [ebp - 0x810]
push ecx
push eax
mov dword [ebp - 4], ecx
mov dword [ebp - 0x838], esi
mov dword [ebp - 0x834], ecx
call fcn.0048d530
lea eax, [edi + 0x84]
add esp, 0xc
cmp dword [eax + 0x14], 8
jb 0x47e062
mov eax, dword [eax]
push eax
push 0x400
lea eax, [ebp - 0x810]
push eax
push ebx
push dword [ebp - 0x82c]
push dword [ebp - 0x830]
call dword [sym.imp.KERNEL32.dll_GetPrivateProfileStringW]
lea eax, [ebp - 0x810]
mov ecx, esi
push eax
call fcn.00401d80
and dword [ebp - 4], 0
cmp dword [esi + 0x14], 8
mov dword [ebp - 0x834], 1
jb 0x47e0a8
mov eax, dword [esi]
jmp 0x47e0aa
mov eax, esi
push ebx
push eax
call fcn.0049de57
pop ecx
pop ecx
test eax, eax
jne 0x47e0f6
cmp byte [edi + 1], 0
lea eax, [ebp - 0x828]
push ebx
push dword [ebp - 0x82c]
mov ecx, edi
push dword [ebp - 0x830]
push eax
je 0x47e0da
call fcn.0047df12
jmp 0x47e0df
call fcn.0047dfcc
push eax
mov ecx, esi
call fcn.00402620
push 0
push 1
lea ecx, [ebp - 0x828]
call fcn.0047c3c1
mov eax, esi
call fcn.004b4d3a
ret 0x10
Function at 0x47f200
Capabilities:
Read .ini file

Disassembly:
push 0x23c
mov eax, 0x50d5ff
call fcn.004b4d7f
mov ebx, ecx
call fcn.0047dee6
lea edi, [ebx + 0x9c]
push eax
mov ecx, edi
call fcn.0047c418
mov esi, str.XiangCaoWifi.ini
push esi
call fcn.0049dd7d
pop ecx
push eax
push esi
mov ecx, edi
call fcn.004033c0
push str.xcwifigf
push 0x51f4cc
push str.AppInfo
lea eax, [ebp - 0x248]
mov ecx, ebx
push eax
call fcn.0047dfa2
and dword [ebp - 4], 0
lea esi, [ebx + 0xb4]
lea eax, [ebp - 0x248]
cmp esi, eax
je 0x47f276
push 0xffffffffffffffff
push 0
push eax
mov ecx, esi
call fcn.00403720
push str.xcwifigf
mov ecx, esi
call fcn.0047d3e8
test eax, eax
jne 0x47f2f2
push 0x208
push eax
lea eax, [ebp - 0x218]
push eax
call fcn.0048d530
add esp, 0xc
cmp dword [edi + 0x14], 8
jb 0x47f2a3
mov edi, dword [edi]
push edi
push 0x104
lea eax, [ebp - 0x218]
mov edi, str.xcwifigf
push eax
push edi
push 0x51f4cc
push str.AppInfo
call dword [sym.imp.KERNEL32.dll_GetPrivateProfileStringW]
cmp word [ebp - 0x218], 0
jne 0x47f2d4
xor eax, eax
jmp 0x47f2e1
lea eax, [ebp - 0x218]
push eax
call fcn.0049dd7d
pop ecx
push eax
lea eax, [ebp - 0x218]
mov ecx, esi
push eax
call fcn.00403840
jmp 0x47f2f7
mov edi, str.xcwifigf
push edi
mov ecx, esi
call fcn.0047d3e8
test eax, eax
jne 0x47f3ba
push 0x208
push eax
lea eax, [ebp - 0x218]
push eax
call fcn.0048d530
add esp, 0xc
lea eax, [ebx + 0x54]
lea ecx, [ebp - 0x230]
push eax
call fcn.0047c9fd
push str.XiangCaoWifi.ini
mov byte [ebp - 4], 1
call fcn.0049dd7d
pop ecx
push eax
push str.XiangCaoWifi.ini
lea ecx, [ebp - 0x230]
call fcn.004033c0
cmp dword [ebp - 0x21c], 8
lea eax, [ebp - 0x230]
cmovae eax, dword [ebp - 0x230]
push eax
push 0x104
lea eax, [ebp - 0x218]
push eax
push edi
push 0x51f4cc
push str.AppInfo
call dword [sym.imp.KERNEL32.dll_GetPrivateProfileStringW]
cmp word [ebp - 0x218], 0
jne 0x47f38b
xor eax, eax
jmp 0x47f398
lea eax, [ebp - 0x218]
push eax
call fcn.0049dd7d
pop ecx
push eax
lea eax, [ebp - 0x218]
mov ecx, esi
push eax
call fcn.00403840
push 0
push 1
lea ecx, [ebp - 0x230]
mov byte [ebp - 4], 0
call fcn.0047c3c1
push edi
mov ecx, esi
call fcn.0047d3e8
test eax, eax
jne 0x47f3f6
push edi
push 0x51f4cc
push str.AppInfo
lea eax, [ebp - 0x230]
mov ecx, ebx
push eax
call fcn.0047e005
push eax
mov ecx, esi
call fcn.00402620
push 0
push 1
lea ecx, [ebp - 0x230]
call fcn.0047c3c1
push 0
push 1
lea ecx, [ebp - 0x248]
call fcn.0047c3c1
call fcn.004b4d3a
ret
Function at 0x482b4e
Capabilities:
Link many functions at runtime

Disassembly:
push ebx
mov ebx, dword [sym.imp.KERNEL32.dll_LoadLibraryW]
push esi
push str.kernel32.dll
mov esi, ecx
call ebx
mov dword [esi], eax
test eax, eax
je 0x482bce
push edi
mov edi, dword [sym.imp.KERNEL32.dll_GetProcAddress]
push str.GetNativeSystemInfo
push eax
call edi
push str.IsWow64Process
push dword [esi]
mov dword [esi + 8], eax
call edi
push str.Wow64DisableWow64FsRedirection
push dword [esi]
mov dword [esi + 0xc], eax
call edi
push str.Wow64RevertWow64FsRedirection
push dword [esi]
mov dword [esi + 0x18], eax
call edi
push str.GetSystemWow64DirectoryW
push dword [esi]
mov dword [esi + 0x14], eax
call edi
push str.advapi32.dll
mov dword [esi + 0x10], eax
call ebx
mov dword [esi + 4], eax
test eax, eax
je 0x482bcd
mov ebx, str.Wow64RevertWow64FsRedirection
push ebx
push eax
call edi
push ebx
push dword [esi + 4]
mov dword [esi + 0x20], eax
call edi
mov dword [esi + 0x1c], eax
xor eax, eax
inc eax
pop edi
pop esi
pop ebx
ret

Function at 0x482dd0
Capabilities:
Hash data with md5

Disassembly:
xor eax, eax
mov byte [ecx + 0x68], al
mov dword [ecx + 0x14], eax
mov dword [ecx + 0x10], eax
mov dword [ecx], 0x67452301
mov dword [ecx + 4], 0xefcdab89
mov dword [ecx + 8], 0x98badcfe
mov dword [ecx + 0xc], 0x10325476
ret

Function at 0x48362e
Capabilities:
Check if file exists
Create directory

Disassembly:
push ebp
mov ebp, esp
push ecx
push ebx
push esi
push edi
push dword [ebp + 8]
call fcn.0049dd7d
mov dword [ebp - 4], eax
xor ecx, ecx
push 2
inc eax
pop edx
mul edx
seto cl
neg ecx
or ecx, eax
push ecx
call fcn.00413c8d
push dword [ebp + 8]
mov esi, eax
push esi
call fcn.0049dd5b
mov eax, dword [ebp - 4]
xor edi, edi
add esp, 0x10
xor ebx, ebx
inc edi
test eax, eax
js 0x4836a8
push 0x5c
pop ecx
cmp word [esi + ebx*2], cx
jne 0x48369f
xor eax, eax
push esi
mov word [esi + ebx*2], ax
call dword [sym.imp.SHLWAPI.dll_PathFileExistsW]
test eax, eax
jne 0x483695
push eax
push esi
call dword [sym.imp.KERNEL32.dll_CreateDirectoryW]
test eax, eax
je 0x4836a6
mov eax, dword [ebp - 4]
push 0x5c
pop ecx
mov word [esi + ebx*2], cx
inc ebx
cmp ebx, eax
jle 0x483672
jmp 0x4836a8
xor edi, edi
push esi
call fcn.00413ca0
pop ecx
mov eax, edi
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret