joyce8/EMBER2024-capa huggingface dataset:
Function at 0x46e7c0
Capabilities:
Delete registry value
Query or enumerate registry value
Set registry value

Disassembly:
push ebp
mov ebp, esp
push 0xffffffffffffffff
push 0x47a440
mov eax, dword fs:[0]
push eax
sub esp, 0x20
mov eax, dword [0x49d7b0]
xor eax, ebp
push eax
lea eax, [ebp - 0xc]
mov dword fs:[0], eax
mov dword [ebp - 0x2c], ecx
movzx eax, byte [ebp + 8]
test eax, eax
je 0x46e91b
lea ecx, [ebp - 0x10]
push ecx
push 0xf003f
push 0
push str.SOFTWAREMicrosoftInternet_Explorer_
push reloc.OLEAUT32.dll_SysReAllocString
call dword [sym.imp.ADVAPI32.dll_RegOpenKeyExW]
test eax, eax
jne 0x46e919
mov dword [ebp - 0x18], 0x400
mov dword [ebp - 0x14], 1
lea ecx, [ebp - 0x1c]
call fcn.004017e0
mov dword [ebp - 4], 0
lea edx, [ebp - 0x18]
push edx
push 0x400
lea ecx, [ebp - 0x1c]
call fcn.00401210
push eax
lea eax, [ebp - 0x14]
push eax
push 0
push str.Version
mov ecx, dword [ebp - 0x10]
push ecx
call dword [sym.imp.ADVAPI32.dll_RegQueryValueExW]
push 0xffffffffffffffff
lea ecx, [ebp - 0x1c]
call fcn.00404620
mov edx, dword [ebp - 0x10]
push edx
call dword [sym.imp.ADVAPI32.dll_RegCloseKey]
push 0
push 0x2e
lea ecx, [ebp - 0x1c]
call fcn.00406850
push eax
lea eax, [ebp - 0x20]
push eax
lea ecx, [ebp - 0x1c]
call fcn.00405510
mov byte [ebp - 4], 1
lea ecx, [ebp - 0x20]
call fcn.00404160
movzx ecx, al
test ecx, ecx
jne 0x46e8fe
push 0x48af9c
lea ecx, [ebp - 0x20]
call fcn.00406590
lea ecx, [ebp - 0x20]
call fcn.00407f80
push eax
call fcn.0043c487
add esp, 4
mov dword [ebp - 0x24], eax
lea edx, [ebp - 0x10]
push edx
push 0xf003f
push 0
push 0x48afc8
push reloc.OLEAUT32.dll_SysReAllocString
call dword [sym.imp.ADVAPI32.dll_RegOpenKeyExW]
test eax, eax
jne 0x46e8fe
push 4
lea eax, [ebp - 0x24]
push eax
push 4
push 0
push 0x48afa4
mov ecx, dword [ebp - 0x10]
push ecx
call dword [sym.imp.ADVAPI32.dll_RegSetValueExW]
mov edx, dword [ebp - 0x10]
push edx
call dword [sym.imp.ADVAPI32.dll_RegCloseKey]
mov byte [ebp - 4], 0
lea ecx, [ebp - 0x20]
call fcn.00401870
mov dword [ebp - 4], 0xffffffff
lea ecx, [ebp - 0x1c]
call fcn.00401870
jmp 0x46e953
lea eax, [ebp - 0x28]
push eax
push 0xf003f
push 0
push str.SOFTWAREMicrosoftInternet_ExplorerMAINFeatureControlFEATURE_BROWSER_EMULATION
push reloc.OLEAUT32.dll_SysReAllocString
call dword [sym.imp.ADVAPI32.dll_RegOpenKeyExW]
test eax, eax
jne 0x46e953
push str.QiyiFragment.exe
mov ecx, dword [ebp - 0x28]
push ecx
call dword [sym.imp.ADVAPI32.dll_RegDeleteValueW]
mov edx, dword [ebp - 0x28]
push edx
call dword [sym.imp.ADVAPI32.dll_RegCloseKey]
mov ecx, dword [ebp - 0xc]
mov dword fs:[0], ecx
pop ecx
mov esp, ebp
pop ebp
ret 4
Function at 0x46e970
Capabilities:
Read .ini file

Disassembly:
push ebp
mov ebp, esp
mov eax, 0x1020
call fcn.0043eb60
mov eax, dword [0x49d7b0]
xor eax, ebp
mov dword [ebp - 0xc], eax
mov dword [ebp - 0x101c], ecx
mov word [ebp - 0x1010], 0
push 0xffe
push 0
lea eax, [ebp - 0x100e]
push eax
call fcn.0043bd70
add esp, 0xc
push 0x48ae54
mov ecx, dword [ebp - 0x101c]
add ecx, 0xa8
push ecx
lea edx, [ebp - 0x1018]
push edx
call fcn.00403fe0
add esp, 0xc
mov dword [ebp - 0x1020], eax
mov ecx, dword [ebp - 0x1020]
call fcn.00407f80
push eax
push 0x800
lea eax, [ebp - 0x1010]
push eax
call dword [sym.imp.KERNEL32.dll_GetPrivateProfileSectionNamesW]
lea ecx, [ebp - 0x1018]
call fcn.00401870
mov dword [ebp - 0x1014], 0
mov dword [ebp - 4], 0
mov dword [ebp - 8], 0
mov ecx, dword [ebp - 4]
lea edx, [ebp + ecx*2 - 0x1010]
push edx
call fcn.0043c2e2
add esp, 4
mov dword [ebp - 8], eax
cmp dword [ebp - 8], 0
jle 0x46ea4e
mov eax, dword [ebp - 0x1014]
add eax, 1
mov dword [ebp - 0x1014], eax
mov ecx, dword [ebp - 8]
mov edx, dword [ebp - 4]
lea eax, [edx + ecx + 1]
mov dword [ebp - 4], eax
jmp 0x46ea14
mov eax, dword [ebp - 0x1014]
mov ecx, dword [ebp - 0xc]
xor ecx, ebp
call fcn.0043bc9b
mov esp, ebp
pop ebp
ret
Function at 0x46ea70
Capabilities:
Enumerate processes

Disassembly:
push ebp
mov ebp, esp
push 0xffffffffffffffff
push 0x47a466
mov eax, dword fs:[0]
push eax
sub esp, 0x254
mov eax, dword [0x49d7b0]
xor eax, ebp
mov dword [ebp - 0x10], eax
push eax
lea eax, [ebp - 0xc]
mov dword fs:[0], eax
mov dword [ebp - 0x260], ecx
mov dword [ebp - 0x25c], 0
lea ecx, [ebp - 0x24c]
call fcn.004017e0
mov dword [ebp - 4], 0
mov dword [ebp - 0x250], 0
mov dword [ebp - 0x258], 0
mov dword [ebp - 0x248], 0
mov dword [ebp - 0x254], 0
mov dword [ebp - 0x244], 0
push 0x228
push 0
lea eax, [ebp - 0x240]
push eax
call fcn.0043bd70
add esp, 0xc
mov dword [ebp - 0x244], 0x22c
call dword [sym.imp.KERNEL32.dll_GetCurrentProcessId]
mov dword [ebp - 0x250], eax
push 0
push 0x40000002
call sub.KERNEL32.dll_CreateToolhelp32Snapshot
mov dword [ebp - 0x254], eax
cmp dword [ebp - 0x254], 0xffffffff
je 0x46eb8d
lea ecx, [ebp - 0x244]
push ecx
mov edx, dword [ebp - 0x254]
push edx
call sub.KERNEL32.dll_Process32FirstW
test eax, eax
je 0x46eb8d
mov eax, dword [ebp - 0x23c]
cmp eax, dword [ebp - 0x250]
jne 0x46eb69
mov ecx, dword [ebp - 0x22c]
mov dword [ebp - 0x258], ecx
jmp 0x46eb80
lea edx, [ebp - 0x244]
push edx
mov eax, dword [ebp - 0x254]
push eax
call sub.KERNEL32.dll_Process32NextW
test eax, eax
jne 0x46eb4d
mov ecx, dword [ebp - 0x254]
push ecx
call dword [sym.imp.KERNEL32.dll_CloseHandle]
cmp dword [ebp - 0x258], 0
jbe 0x46ec0e
push 0
push 0x40000002
call sub.KERNEL32.dll_CreateToolhelp32Snapshot
mov dword [ebp - 0x254], eax
cmp dword [ebp - 0x254], 0xffffffff
je 0x46ec0e
lea edx, [ebp - 0x244]
push edx
mov eax, dword [ebp - 0x254]
push eax
call sub.KERNEL32.dll_Process32FirstW
test eax, eax
je 0x46ec0e
mov ecx, dword [ebp - 0x23c]
cmp ecx, dword [ebp - 0x258]
jne 0x46ebea
lea edx, [ebp - 0x220]
push edx
lea ecx, [ebp - 0x24c]
call fcn.00403770
jmp 0x46ec01
lea eax, [ebp - 0x244]
push eax
mov ecx, dword [ebp - 0x254]
push ecx
call sub.KERNEL32.dll_Process32NextW
test eax, eax
jne 0x46ebc8
mov edx, dword [ebp - 0x254]
push edx
call dword [sym.imp.KERNEL32.dll_CloseHandle]
lea eax, [ebp - 0x24c]
push eax
mov ecx, dword [ebp + 8]
call fcn.004035f0
mov ecx, dword [ebp - 0x25c]
or ecx, 1
mov dword [ebp - 0x25c], ecx
mov dword [ebp - 4], 0xffffffff
lea ecx, [ebp - 0x24c]
call fcn.00401870
mov eax, dword [ebp + 8]
mov ecx, dword [ebp - 0xc]
mov dword fs:[0], ecx
pop ecx
mov ecx, dword [ebp - 0x10]
xor ecx, ebp
call fcn.0043bc9b
mov esp, ebp
pop ebp
ret 4
Function at 0x46ee90
Capabilities:
Get mac address on windows

Disassembly:
push ebp
mov ebp, esp
push 0xffffffffffffffff
push 0x47a4d9
mov eax, dword fs:[0]
push eax
sub esp, 0x34
mov eax, dword [0x49d7b0]
xor eax, ebp
mov dword [ebp - 0x14], eax
push eax
lea eax, [ebp - 0xc]
mov dword fs:[0], eax
mov dword [ebp - 0x40], 0
lea ecx, [ebp - 0x30]
call fcn.00406900
mov dword [ebp - 4], 0
mov dword [ebp - 0x10], 0
mov dword [ebp - 0x38], 0
lea eax, [ebp - 0x38]
push eax
push 0
call sub.IPHLPAPI.DLL_GetAdaptersInfo
mov dword [ebp - 0x3c], eax
cmp dword [ebp - 0x3c], 0
je 0x46ef22
cmp dword [ebp - 0x3c], 0x6f
je 0x46ef22
lea ecx, [ebp - 0x30]
push ecx
mov ecx, dword [ebp + 8]
call fcn.00401dd0
mov edx, dword [ebp - 0x40]
or edx, 1
mov dword [ebp - 0x40], edx
mov dword [ebp - 4], 0xffffffff
lea ecx, [ebp - 0x30]
call fcn.00401e10
mov eax, dword [ebp + 8]
jmp 0x46f057
mov eax, dword [ebp - 0x38]
push eax
push 0x40
call dword [sym.imp.KERNEL32.dll_GlobalAlloc]
mov dword [ebp - 0x10], eax
cmp dword [ebp - 0x10], 0
jne 0x46ef63
lea ecx, [ebp - 0x30]
push ecx
mov ecx, dword [ebp + 8]
call fcn.00401dd0
mov edx, dword [ebp - 0x40]
or edx, 1
mov dword [ebp - 0x40], edx
mov dword [ebp - 4], 0xffffffff
lea ecx, [ebp - 0x30]
call fcn.00401e10
mov eax, dword [ebp + 8]
jmp 0x46f057
lea eax, [ebp - 0x38]
push eax
mov ecx, dword [ebp - 0x10]
push ecx
call sub.IPHLPAPI.DLL_GetAdaptersInfo
test eax, eax
je 0x46efaa
mov edx, dword [ebp - 0x10]
push edx
call dword [sym.imp.KERNEL32.dll_GlobalFree]
lea eax, [ebp - 0x30]
push eax
mov ecx, dword [ebp + 8]
call fcn.00401dd0
mov ecx, dword [ebp - 0x40]
or ecx, 1
mov dword [ebp - 0x40], ecx
mov dword [ebp - 4], 0xffffffff
lea ecx, [ebp - 0x30]
call fcn.00401e10
mov eax, dword [ebp + 8]
jmp 0x46f057
lea ecx, [ebp - 0x34]
call fcn.004017e0
mov byte [ebp - 4], 1
mov edx, dword [ebp - 0x10]
movzx eax, byte [edx + 0x199]
push eax
mov ecx, dword [ebp - 0x10]
movzx edx, byte [ecx + 0x198]
push edx
mov eax, dword [ebp - 0x10]
movzx ecx, byte [eax + 0x197]
push ecx
mov edx, dword [ebp - 0x10]
movzx eax, byte [edx + 0x196]
push eax
mov ecx, dword [ebp - 0x10]
movzx edx, byte [ecx + 0x195]
push edx
mov eax, dword [ebp - 0x10]
movzx ecx, byte [eax + 0x194]
push ecx
push str._02X_02X_02X_02X_02X_02X
lea edx, [ebp - 0x34]
push edx
call fcn.00406ee0
add esp, 0x20
mov eax, dword [ebp - 0x10]
push eax
call dword [sym.imp.KERNEL32.dll_GlobalFree]
lea ecx, [ebp - 0x34]
call fcn.00406990
push eax
lea ecx, [ebp - 0x30]
call fcn.00406930
lea ecx, [ebp - 0x30]
push ecx
mov ecx, dword [ebp + 8]
call fcn.00401dd0
mov edx, dword [ebp - 0x40]
or edx, 1
mov dword [ebp - 0x40], edx
mov byte [ebp - 4], 0
lea ecx, [ebp - 0x34]
call fcn.00401870
mov dword [ebp - 4], 0xffffffff
lea ecx, [ebp - 0x30]
call fcn.00401e10
mov eax, dword [ebp + 8]
mov ecx, dword [ebp - 0xc]
mov dword fs:[0], ecx
pop ecx
mov ecx, dword [ebp - 0x14]
xor ecx, ebp
call fcn.0043bc9b
mov esp, ebp
pop ebp
ret
Function at 0x46f070
Capabilities:
Print debug messages

Disassembly:
push ebp
mov ebp, esp
push 0xffffffffffffffff
push 0x47a50e
mov eax, dword fs:[0]
push eax
push ecx
sub esp, 0x18
push ebx
push esi
push edi
mov eax, dword [0x49d7b0]
xor eax, ebp
push eax
lea eax, [ebp - 0xc]
mov dword fs:[0], eax
mov dword [ebp - 0x10], esp
mov dword [ebp - 0x28], ecx
mov dword [ebp - 4], 0
mov eax, dword [ebp - 0x28]
add eax, 0x278
push eax
call dword [sym.imp.KERNEL32.dll_TryEnterCriticalSection]
test eax, eax
je 0x46f187
mov byte [ebp - 4], 1
lea ecx, [ebp - 0x24]
push ecx
call dword [sym.imp.KERNEL32.dll_GetLocalTime]
lea ecx, [ebp - 0x14]
call fcn.004017e0
mov byte [ebp - 4], 2
mov edx, dword [ebp + 8]
push edx
movzx eax, word [ebp - 0x16]
push eax
movzx ecx, word [ebp - 0x18]
push ecx
movzx edx, word [ebp - 0x1a]
push edx
movzx eax, word [ebp - 0x1c]
push eax
movzx ecx, word [ebp - 0x1e]
push ecx
movzx edx, word [ebp - 0x22]
push edx
movzx eax, word [ebp - 0x24]
push eax
push str._r_n_d__02d__02d__02d:_02d:_02d._03d_:__s
lea ecx, [ebp - 0x14]
push ecx
call fcn.00401890
add esp, 0x28
lea ecx, [ebp - 0x14]
call fcn.00407f80
push eax
call dword [sym.imp.KERNEL32.dll_OutputDebugStringW]
mov edx, dword [ebp - 0x28]
cmp dword [edx + 0x26c], 0xffffffff
je 0x46f155
lea ecx, [ebp - 0x14]
call fcn.004039d0
shl eax, 1
push eax
lea ecx, [ebp - 0x14]
call fcn.00407f80
push eax
mov ecx, dword [ebp - 0x28]
add ecx, 0x268
mov eax, dword [ebp - 0x28]
mov edx, dword [eax + 0x268]
mov eax, dword [edx + 0x38]
call eax
mov byte [ebp - 4], 1
lea ecx, [ebp - 0x14]
call fcn.00401870
jmp 0x46f170
mov dword [ebp - 4], 0
mov ecx, dword [ebp - 0x28]
add ecx, 0x278
push ecx
call dword [sym.imp.KERNEL32.dll_LeaveCriticalSection]
mov dword [ebp - 4], 0xffffffff
lea ecx, [ebp + 8]
call fcn.00401870
mov ecx, dword [ebp - 0xc]
mov dword fs:[0], ecx
pop ecx
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret 4
Function at 0x40b4d0
Capabilities:
Get geographical location

Disassembly:
push ebp
mov ebp, esp
add esp, 0xfffffff4
push ebx
xor edx, edx
mov dword [ebp - 0xc], edx
xor edx, edx
push ebp
push 0x40b534
push dword fs:[edx]
mov dword fs:[edx], esp
push 7
lea edx, [ebp - 7]
push edx
push 0x1004
push eax
call sub.kernel32.dll_GetLocaleInfoA_1
lea eax, [ebp - 0xc]
lea edx, [ebp - 7]
mov ecx, 7
call fcn.00404128
mov eax, dword [ebp - 0xc]
push eax
call sub.kernel32.dll_GetACP
mov edx, eax
pop eax
call fcn.004074dc
mov ebx, eax
xor eax, eax
pop edx
pop ecx
pop ecx
mov dword fs:[eax], edx
push 0x40b53b
lea eax, [ebp - 0xc]
call fcn.00403eb8
ret

Function at 0x433000
Capabilities:
Encode data using xor
Packed with generic packer

Disassembly:
pushal
nop
nop
nop
nop
nop
nop
mov eax, section..text
push 4
nop
nop
nop
nop
nop
nop
nop
nop
nop
pop edi
nop
nop
nop
cmp eax, 0
nop
nop
je 0x433072
nop
nop
nop
mov ebx, 0x40de38
mov ecx, ebx
nop
nop
nop
nop
nop
sub ecx, eax
nop
nop
nop
nop
nop
nop
xor edx, edx
nop
nop
nop
push eax
nop
nop
nop
nop
mov eax, ecx
nop
nop
nop
nop
div edi
nop
nop
nop
nop
nop
xchg ecx, eax
nop
nop
nop
pop eax
nop
nop
nop
nop
nop
nop
mov esi, 0x28f4100d
nop
nop
nop
nop
xor dword [eax], esi
add eax, edi
nop
nop
nop
nop
nop
nop
nop
loop 0x433060
nop
nop
mov eax, section..data
nop
nop
nop
cmp eax, 0
nop
je 0x4330d2
nop
nop
nop
nop
mov ebx, 0x4304d8
nop
mov ecx, ebx
nop
nop
nop
nop
nop
sub ecx, eax
nop
nop
nop
nop
nop
nop
xor edx, edx
nop
push eax
nop
nop
nop
nop
nop
nop
nop
nop
mov eax, ecx
nop
nop
div edi
nop
nop
nop
xchg ecx, eax
nop
nop
nop
nop
nop
pop eax
nop
nop
nop
nop
mov esi, 0x462e0339
nop
nop
xor dword [eax], esi
nop
nop
nop
nop
nop
nop
nop
add eax, edi
nop
nop
nop
nop
loop 0x4330c0
nop
nop
popal
nop
nop
nop
jmp 0x431219
Function at 0x401040
Capabilities:
Access peb ldr_data
Get kernel32 base address

Disassembly:
push 0xffffffffffffffff
push 0x463749
mov eax, dword fs:[0]
push eax
push ebx
push esi
push edi
mov eax, dword [0x47e820]
xor eax, esp
push eax
lea eax, [esp + 0x10]
mov dword fs:[0], eax
mov esi, dword [esp + 0x20]
call fcn.0042fdf3
xor ecx, ecx
xor ebx, ebx
cmp eax, ebx
setne cl
cmp ecx, ebx
jne 0x401083
push 0x80004005
call fcn.0040aa40
mov edx, dword [eax]
mov ecx, eax
mov eax, dword [edx + 0xc]
call eax
add eax, 0x10
mov dword [esi], eax
mov dword [esp + 0x18], ebx
lea edi, [esi + 4]
call fcn.0042fdf3
xor ecx, ecx
cmp eax, ebx
setne cl
cmp ecx, ebx
jne 0x4010b2
push 0x80004005
call fcn.0040aa40
mov edx, dword [eax]
mov ecx, eax
mov eax, dword [edx + 0xc]
call eax
add eax, 0x10
mov dword [edi], eax
mov dword [esi + 0x2c], ebx
mov dword [esi + 0x38], ebx
mov dword [esi + 0x34], ebx
mov dword [esi + 0x30], ebx
mov ecx, esi
mov byte [esp + 0x18], 3
call fcn.0040ad60
mov ecx, edi
call fcn.0040ad60
mov ecx, esi
call fcn.00413e90
mov dword [esi + 0x28], ebx
mov eax, esi
mov ecx, dword [esp + 0x10]
mov dword fs:[0], ecx
pop ecx
pop edi
pop esi
pop ebx
add esp, 0xc
ret 4
Function at 0x4016c0
Capabilities:
Delete directory

Disassembly:
push 0xffffffffffffffff
push 0x462e6e
mov eax, dword fs:[0]
push eax
sub esp, 0x34c
mov eax, dword [0x47e820]
xor eax, esp
mov dword [esp + 0x344], eax
push ebp
push esi
push edi
mov eax, dword [0x47e820]
xor eax, esp
push eax
lea eax, [esp + 0x35c]
mov dword fs:[0], eax
lea ecx, [esp + 0x18]
mov dword [esp + 0x364], 0
call fcn.0042f07d
mov byte [esp + 0x364], 1
mov edi, dword [esp + 0x36c]
push edi
lea eax, [esp + 0x1c8]
push str._s.
push eax
call fcn.0044908c
add esp, 0xc
push 0
lea ecx, [esp + 0x1c8]
push ecx
lea ecx, [esp + 0x20]
call fcn.0042f109
test eax, eax
je 0x401857
mov edi, edi
lea ecx, [esp + 0x18]
call fcn.0042ef0e
lea ecx, [esp + 0x18]
mov ebp, eax
call fcn.0042f044
test eax, eax
jne 0x40184f
lea edx, [esp + 0x14]
push edx
lea ecx, [esp + 0x1c]
call fcn.0042f338
mov esi, eax
mov byte [esp + 0x364], 2
mov eax, dword [esi]
sub eax, 0x10
mov ecx, 1
sub ecx, dword [eax + 0xc]
mov eax, dword [eax + 8]
sub eax, 0xc8
or eax, ecx
jge 0x4017a9
push 0xc8
mov ecx, esi
call fcn.0040abd0
mov ecx, dword [esi]
lea edx, [esp + 0x34]
nop
mov al, byte [ecx]
mov byte [edx], al
add ecx, 1
add edx, 1
test al, al
jne 0x4017b0
mov byte [esp + 0x364], 1
mov eax, dword [esp + 0x14]
add eax, 0xfffffff0
lea ecx, [eax + 0xc]
or edx, 0xffffffff
lock xadd dword [ecx], edx
dec edx
test edx, edx
jg 0x4017e6
mov ecx, dword [eax]
mov edx, dword [ecx]
push eax
mov eax, dword [edx + 4]
call eax
mov edx, dword [esp + 0x18]
mov eax, dword [edx + 0x38]
push 0x10
lea ecx, [esp + 0x1c]
call eax
test eax, eax
lea ecx, [esp + 0x34]
push ecx
push edi
push str._s_s
je 0x401831
lea edx, [esp + 0x108]
push edx
call fcn.0044908c
add esp, 0xc
lea eax, [esp + 0x100]
mov ecx, esp
mov dword [esp + 0x34], esp
push eax
call fcn.0040aee0
call fcn.004016c0
add esp, 4
jmp 0x40184f
lea edx, [esp + 0x298]
push edx
call fcn.0044908c
add esp, 0x10
lea eax, [esp + 0x28c]
push eax
call dword [sym.imp.KERNEL32.dll_DeleteFileA]
test ebp, ebp
jne 0x401750
lea ecx, [esp + 0x18]
call fcn.0042ee3e
push edi
call dword [sym.imp.KERNEL32.dll_RemoveDirectoryA]
test eax, eax
mov byte [esp + 0x364], 0
lea ecx, [esp + 0x18]
jne 0x4018a7
call fcn.0042f0a1
lea eax, [edi - 0x10]
mov dword [esp + 0x364], 0xffffffff
lea ecx, [eax + 0xc]
or edx, 0xffffffff
lock xadd dword [ecx], edx
dec edx
test edx, edx
jg 0x4018a3
mov ecx, dword [eax]
mov edx, dword [ecx]
push eax
mov eax, dword [edx + 4]
call eax
xor al, al
jmp 0x4018d5
call fcn.0042f0a1
lea eax, [edi - 0x10]
mov dword [esp + 0x364], 0xffffffff
lea ecx, [eax + 0xc]
or edx, 0xffffffff
lock xadd dword [ecx], edx
dec edx
test edx, edx
jg 0x4018d3
mov ecx, dword [eax]
mov edx, dword [ecx]
push eax
mov eax, dword [edx + 4]
call eax
mov al, 1
mov ecx, dword [esp + 0x35c]
mov dword fs:[0], ecx
pop ecx
pop edi
pop esi
pop ebp
mov ecx, dword [esp + 0x344]
xor ecx, esp
call fcn.00448c81
add esp, 0x358
ret
Function at 0x401900
Capabilities:
Extract resource via kernel32 functions

Disassembly:
sub esp, 0x408
mov eax, dword [0x47e820]
xor eax, esp
mov dword [esp + 0x404], eax
push esi
mov dword [esp + 4], 0
call fcn.0042fc51
movzx ecx, word [esp + 0x410]
mov eax, dword [eax + 8]
push str.MYDATA
push ecx
push eax
call dword [sym.imp.KERNEL32.dll_FindResourceA]
mov esi, eax
test esi, esi
jne 0x401964
push 0x46ee7c
mov ecx, edi
call fcn.0040aee0
mov eax, edi
pop esi
mov ecx, dword [esp + 0x404]
xor ecx, esp
call fcn.00448c81
add esp, 0x408
ret
call fcn.0042fc51
mov eax, dword [eax + 8]
push esi
push eax
call dword [sym.imp.KERNEL32.dll_LoadResource]
test eax, eax
je 0x401940
push ebp
push eax
call dword [sym.imp.KERNEL32.dll_LockResource]
mov ebp, eax
call fcn.0042fc51
mov eax, dword [eax + 8]
push esi
push eax
call dword [sym.imp.KERNEL32.dll_SizeofResource]
mov esi, eax
lea edx, [esi - 1]
cmp edx, 0x3ff
ja 0x4019ba
push esi
lea eax, [esp + 0x10]
push ebp
push eax
call fcn.00449150
add esp, 0xc
lea ecx, [esp + 0xc]
mov byte [esp + esi + 0xc], 0
push ecx
jmp 0x4019bf
push 0x46ee7c
mov ecx, edi
call fcn.0040aee0
mov ecx, dword [esp + 0x40c]
pop ebp
pop esi
xor ecx, esp
mov eax, edi
call fcn.00448c81
add esp, 0x408
ret

Function at 0x4019e0
Capabilities:
Create directory
Get common file path

Disassembly:
sub esp, 0x114
mov eax, dword [0x47e820]
xor eax, esp
mov dword [esp + 0x110], eax
lea eax, [esp]
push eax
call dword [sym.imp.SHELL32.dll_SHGetMalloc]
test eax, eax
jl 0x401a53
lea ecx, [esp + 4]
push ecx
push 0x1a
push 0
call dword [sym.imp.SHELL32.dll_SHGetSpecialFolderLocation]
test eax, eax
jl 0x401a48
mov eax, dword [esp + 4]
lea edx, [esp + 8]
push edx
push eax
call dword [sym.imp.SHELL32.dll_SHGetPathFromIDListA]
test eax, eax
je 0x401a38
lea ecx, [esp + 8]
push ecx
mov ecx, 0x482e1c
call fcn.0040adc0
mov eax, dword [esp]
mov ecx, dword [esp + 4]
mov edx, dword [eax]
mov edx, dword [edx + 0x14]
push ecx
push eax
call edx
mov eax, dword [esp]
mov ecx, dword [eax]
mov edx, dword [ecx + 8]
push eax
call edx
mov edx, dword [0x482e1c]
mov ecx, dword [edx - 0xc]
lea eax, [ecx - 1]
test eax, eax
jl 0x401aea
cmp eax, ecx
jg 0x401aea
cmp byte [edx + eax], 0x5c
je 0x401a82
push 1
push 0x46e918
mov ecx, 0x482e1c
call fcn.004097f0
push esi
push 5
push str.iPep_
mov ecx, 0x482e1c
call fcn.004097f0
mov eax, dword [0x482e1c]
mov esi, dword [sym.imp.KERNEL32.dll_CreateDirectoryA]
push 0
push eax
call esi
push 0x482e1c
mov ecx, 0x482e18
call fcn.0040ae60
push 3
push 0x46e924
mov ecx, 0x482e18
call fcn.004097f0
mov ecx, dword [0x482e18]
push 0
push ecx
call esi
mov ecx, dword [esp + 0x114]
pop esi
xor ecx, esp
mov eax, 1
call fcn.00448c81
add esp, 0x114
ret
push 0x80070057
call fcn.0040aa40
int3
Function at 0x401b00
Capabilities:
Read .ini file

Disassembly:
push 0xffffffffffffffff
push 0x462e1b
mov eax, dword fs:[0]
push eax
sub esp, 0xd4
mov eax, dword [0x47e820]
xor eax, esp
mov dword [esp + 0xd0], eax
push ebp
push esi
push edi
mov eax, dword [0x47e820]
xor eax, esp
push eax
lea eax, [esp + 0xe4]
mov dword fs:[0], eax
mov eax, dword [esp + 0xf4]
mov dword [esp + 0x14], eax
mov dword [esp + 0x10], 0
mov dword [esp + 0xec], 1
call fcn.0042fdf3
xor ecx, ecx
test eax, eax
setne cl
test ecx, ecx
jne 0x401b72
push 0x80004005
call fcn.0040aa40
mov edx, dword [eax]
mov ecx, eax
mov eax, dword [edx + 0xc]
call eax
add eax, 0x10
mov dword [esp + 0x10], eax
push 0x482e1c
lea ecx, [esp + 0x14]
mov byte [esp + 0xf0], 2
call fcn.0040ae60
push 0x11
push str.Configdooland.ini
lea ecx, [esp + 0x18]
call fcn.004097f0
mov ecx, dword [str.DOC_]
mov dl, byte [0x46e940]
mov ebp, dword [esp + 0xf8]
mov dword [esp + 0x18], ecx
mov byte [esp + 0x1c], dl
mov edx, dword [ebp - 0xc]
mov eax, dword [ebp - 8]
mov ecx, 1
sub ecx, dword [ebp - 4]
sub eax, edx
or eax, ecx
jge 0x401beb
push edx
lea ecx, [esp + 0xfc]
call fcn.0040abd0
mov ebp, dword [esp + 0xf8]
mov eax, ebp
mov edx, ebp
nop
mov cl, byte [eax]
add eax, 1
test cl, cl
jne 0x401bf0
lea edi, [esp + 0x18]
sub eax, edx
add edi, 0xffffffff
mov cl, byte [edi + 1]
add edi, 1
test cl, cl
jne 0x401c02
mov ecx, eax
shr ecx, 2
mov esi, edx
rep movsd dword es:[edi], dword [esi]
mov ecx, eax
and ecx, 3
rep movsb byte es:[edi], byte [esi]
mov esi, dword [esp + 0x10]
cmp dword [esi - 4], 1
jle 0x401c37
mov eax, dword [esi - 0xc]
push eax
lea ecx, [esp + 0x14]
call fcn.0040a930
mov esi, dword [esp + 0x10]
mov edi, dword [esp + 0xfc]
push esi
push 0x64
lea ecx, [esp + 0x84]
push ecx
push 0x46ee7c
push edi
lea edx, [esp + 0x2c]
push edx
call dword [sym.imp.KERNEL32.dll_GetPrivateProfileStringA]
mov ecx, dword [esp + 0x14]
lea eax, [esp + 0x7c]
push eax
call fcn.0040aee0
lea eax, [esi - 0x10]
mov byte [esp + 0xec], 1
lea ecx, [eax + 0xc]
or edx, 0xffffffff
lock xadd dword [ecx], edx
dec edx
test edx, edx
jg 0x401c8c
mov ecx, dword [eax]
mov edx, dword [ecx]
push eax
mov eax, dword [edx + 4]
call eax
lea eax, [ebp - 0x10]
mov byte [esp + 0xec], 0
lea ecx, [eax + 0xc]
or edx, 0xffffffff
lock xadd dword [ecx], edx
dec edx
test edx, edx
jg 0x401cb0
mov ecx, dword [eax]
mov edx, dword [ecx]
push eax
mov eax, dword [edx + 4]
call eax
lea eax, [edi - 0x10]
mov dword [esp + 0xec], 0xffffffff
lea ecx, [eax + 0xc]
or edx, 0xffffffff
lock xadd dword [ecx], edx
dec edx
test edx, edx
jg 0x401cd7
mov ecx, dword [eax]
mov edx, dword [ecx]
push eax
mov eax, dword [edx + 4]
call eax
mov eax, dword [esp + 0x14]
mov ecx, dword [esp + 0xe4]
mov dword fs:[0], ecx
pop ecx
pop edi
pop esi
pop ebp
mov ecx, dword [esp + 0xd0]
xor ecx, esp
call fcn.00448c81
add esp, 0xe0
ret
Function at 0x404430
Capabilities:
Extract resource via kernel32 functions

Disassembly:
push 0xffffffffffffffff
push 0x461df8
mov eax, dword fs:[0]
push eax
push esi
push edi
mov eax, dword [0x47e820]
xor eax, esp
push eax
lea eax, [esp + 0xc]
mov dword fs:[0], eax
movzx eax, word [esp + 0x1c]
push str.MYDATA
push eax
push 0
mov dword [esp + 0x20], 0
call dword [sym.imp.KERNEL32.dll_FindResourceA]
mov esi, eax
test esi, esi
jne 0x4044af
mov dword [esp + 0x14], 0xffffffff
mov eax, dword [esp + 0x20]
add eax, 0xfffffff0
lea ecx, [eax + 0xc]
or edx, 0xffffffff
lock xadd dword [ecx], edx
dec edx
test edx, edx
jg 0x40449b
mov ecx, dword [eax]
mov edx, dword [ecx]
push eax
mov eax, dword [edx + 4]
call eax
xor eax, eax
mov ecx, dword [esp + 0xc]
mov dword fs:[0], ecx
pop ecx
pop edi
pop esi
add esp, 0xc
ret
push esi
push 0
call dword [sym.imp.KERNEL32.dll_LoadResource]
test eax, eax
je 0x404473
push eax
call dword [sym.imp.KERNEL32.dll_LockResource]
push esi
push 0
mov edi, eax
call dword [sym.imp.KERNEL32.dll_SizeofResource]
mov esi, dword [esp + 0x20]
push eax
push esi
mov eax, edi
call fcn.004177d0
lea eax, [esi - 0x10]
mov dword [esp + 0x14], 0xffffffff
lea ecx, [eax + 0xc]
or edx, 0xffffffff
lock xadd dword [ecx], edx
dec edx
test edx, edx
jg 0x4044ff
mov ecx, dword [eax]
mov edx, dword [ecx]
push eax
mov eax, dword [edx + 4]
call eax
mov eax, 1
mov ecx, dword [esp + 0xc]
mov dword fs:[0], ecx
pop ecx
pop edi
pop esi
add esp, 0xc
ret