joyce8/EMBER2024-capa huggingface dataset:
Function at 0x4131f6
Capabilities:
Get graphical window text

Disassembly:
push ebp
mov ebp, esp
sub esp, 0x108
push ebx
push esi
push edi
cmp dword [ebp + 8], 0
jne 0x413213
xor eax, eax
jmp 0x413261
push 0x105
lea eax, [ebp - 0x108]
push eax
push 0x489
push dword [ebp + 0xc]
call dword [sym.imp.USER32.dll_GetDlgItem]
push eax
call dword [sym.imp.USER32.dll_GetWindowTextA]
lea eax, [ebp - 0x108]
push eax
mov eax, dword [ebp + 8]
add eax, 0x30f
push eax
call dword [sym.imp.KERNEL32.dll_lstrcpyA]
mov eax, dword [ebp + 8]
mov dword [eax + 0x62c], 1
mov eax, 1
jmp 0x413261
pop edi
pop esi
pop ebx
leave
ret

Function at 0x415a30
Capabilities:
Get common file path

Disassembly:
sub esp, 0x108
lea eax, [esp]
push ebx
push esi
push edi
mov esi, dword [esp + 0x118]
mov edi, dword [sym.imp.KERNEL32.dll_lstrcpyA]
push esi
push eax
call edi
lea ecx, [esp + 0xc]
mov eax, dword [esp + 0x11c]
push ecx
push eax
call dword [sym.imp.KERNEL32.dll_GetCurrentDirectoryA]
mov ebx, eax
lea eax, [esp + 0xc]
push eax
push esi
call edi
pop edi
cmp ebx, 1
sbb eax, eax
pop esi
inc eax
pop ebx
add esp, 0x108
ret 8

Function at 0x416910
Capabilities:
Encode data using xor

Disassembly:
mov dl, 1
mov al, byte [esp + 4]
test al, al
je 0x416928
mov cl, al
shr al, 1
and cl, 1
xor dl, cl
test al, al
jne 0x41691a
xor eax, eax
mov al, dl
ret 4
Function at 0x4173e1
Capabilities:
Accept command line arguments
Query environment variable
Terminate process

Disassembly:
mov eax, dword fs:[0]
push ebp
mov ebp, esp
push 0xffffffffffffffff
push section..rdata
push 0x4180b0
push eax
mov dword fs:[0], esp
sub esp, 0x60
push ebx
push esi
push edi
mov dword [ebp - 0x18], esp
call dword [sym.imp.KERNEL32.dll_GetVersion]
mov dword [0x41cdd8], eax
mov al, ah
and eax, 0xff
mov dword [0x41cde4], eax
mov eax, dword [0x41cdd8]
shr dword [0x41cdd8], 0x10
and eax, 0xff
mov dword [0x41cde0], eax
shl eax, 8
add eax, dword [0x41cde4]
mov dword [0x41cddc], eax
call fcn.00418005
mov dword [ebp - 4], 0
call fcn.00417f17
call fcn.00417f0c
call dword [sym.imp.KERNEL32.dll_GetCommandLineA]
mov dword [0x41af4c], eax
call fcn.00417a80
call dword [sym.imp.KERNEL32.dll_GetEnvironmentStrings]
mov dword [0x41cb94], eax
call fcn.004179b5
call fcn.00417637
mov esi, dword [0x41af4c]
mov al, byte [esi]
cmp al, 0x22
je 0x417495
cmp al, 0x20
jbe 0x4174c1
inc esi
cmp byte [esi], 0x20
ja 0x41748d
jmp 0x4174c1
inc esi
cmp byte [esi], 0x22
je 0x4174c0
mov bl, byte [ebp - 0x28]
mov bl, byte [esi]
test bl, bl
je 0x4174bb
movzx eax, bl
push eax
call fcn.00417972
add esp, 4
test eax, eax
je 0x4174b5
inc esi
inc esi
cmp byte [esi], 0x22
jne 0x41749e
cmp byte [esi], 0x22
jne 0x4174c1
inc esi
cmp byte [esi], 0
je 0x4174d1
cmp byte [esi], 0x20
ja 0x4174d1
inc esi
cmp byte [esi], 0
jne 0x4174c6
mov dword [ebp - 0x44], 0
lea eax, [ebp - 0x70]
push eax
call dword [sym.imp.KERNEL32.dll_GetStartupInfoA]
test byte [ebp - 0x44], 1
mov eax, 0xa
je 0x4174f1
movzx eax, word [ebp - 0x40]
push eax
push esi
push 0
push 0
call dword [sym.imp.KERNEL32.dll_GetModuleHandleA]
push eax
call main
push eax
call fcn.00417667
jmp 0x41752d
add esp, 4
mov dword [ebp - 4], 0xffffffff
mov eax, dword [ebp - 0x10]
pop edi
mov dword fs:[0], eax
pop esi
pop ebx
mov esp, ebp
pop ebp
ret

Function at 0x417689
Capabilities:
Terminate process

Disassembly:
mov dword [0x41ce10], 1
cmp dword [esp + 8], 0
push ebx
push esi
mov ebx, dword [esp + 0x14]
mov byte [0x41ce0c], bl
jne 0x4176e5
cmp dword [0x41af48], 0
je 0x4176d3
mov esi, dword [0x41af40]
sub esi, 4
cmp dword [0x41af48], esi
ja 0x4176d3
mov eax, dword [esi]
test eax, eax
je 0x4176c8
call eax
sub esi, 4
cmp dword [0x41af48], esi
jbe 0x4176c0
push 0x41d6b0
push 0x41d6ac
call fcn.00417708
add esp, 8
push 0x41d6b8
push 0x41d6b4
call fcn.00417708
add esp, 8
test ebx, ebx
jne 0x417705
push dword [esp + 0xc]
call dword [sym.imp.KERNEL32.dll_ExitProcess]
pop esi
pop ebx
ret
Function at 0x41969e
Capabilities:
Set environment variable

Disassembly:
sub esp, 4
push ebx
push esi
mov esi, dword [esp + 0x10]
push edi
push ebp
test esi, esi
je 0x41988e
push 0x3d
push esi
call fcn.00419aba
add esp, 8
mov ebp, eax
test ebp, ebp
je 0x41988e
cmp ebp, esi
je 0x41988e
cmp byte [ebp + 1], 1
sbb eax, eax
mov ecx, dword [0x41cdf8]
neg eax
mov dword [esp + 0x10], eax
cmp dword [0x41cdf4], ecx
jne 0x4196fb
mov eax, dword [0x41cdf4]
push eax
call fcn.004198f8
add esp, 4
mov dword [0x41cdf4], eax
cmp dword [0x41cdf4], 0
jne 0x41978a
cmp dword [esp + 0x1c], 0
je 0x419726
cmp dword [0x41cdfc], 0
je 0x419726
call fcn.0041927f
test eax, eax
je 0x41978a
jmp 0x41988e
cmp dword [esp + 0x10], 0
je 0x419734
xor eax, eax
jmp 0x419893
cmp dword [0x41cdf4], 0
jne 0x41975f
push 4
call fcn.004183b9
add esp, 4
mov dword [0x41cdf4], eax
test eax, eax
je 0x41988e
mov eax, dword [0x41cdf4]
mov dword [eax], 0
cmp dword [0x41cdfc], 0
jne 0x41978a
push 4
call fcn.004183b9
add esp, 4
mov dword [0x41cdfc], eax
test eax, eax
je 0x41988e
mov eax, dword [0x41cdfc]
mov dword [eax], 0
mov edi, dword [0x41cdf4]
sub ebp, esi
push ebp
push esi
call fcn.0041989b
add esp, 8
mov ebx, eax
test ebx, ebx
jl 0x4197e0
cmp dword [edi], 0
je 0x4197e0
cmp dword [esp + 0x10], 0
je 0x4197db
lea eax, [edi + ebx*4]
cmp dword [eax], 0
je 0x4197c4
mov ecx, dword [eax + 4]
inc ebx
mov dword [eax], ecx
add eax, 4
cmp dword [eax], 0
jne 0x4197b6
lea eax, [ebx*4]
push eax
push edi
call fcn.00419968
add esp, 8
test eax, eax
je 0x41981b
jmp 0x419816
mov dword [edi + ebx*4], esi
jmp 0x41981b
cmp dword [esp + 0x10], 0
jne 0x41988a
test ebx, ebx
jge 0x4197f1
neg ebx
lea eax, [ebx*4 + 8]
push eax
push edi
call fcn.00419968
add esp, 8
test eax, eax
je 0x41988e
lea ecx, [eax + ebx*4]
mov dword [ecx], esi
mov dword [ecx + 4], 0
mov dword [0x41cdf4], eax
cmp dword [esp + 0x1c], 0
je 0x419886
mov edi, esi
mov ecx, 0xffffffff
sub eax, eax
repne scasb al, byte es:[edi]
not ecx
inc ecx
push ecx
call fcn.004183b9
add esp, 4
mov ebx, eax
test ebx, ebx
je 0x419886
mov edi, esi
mov ecx, 0xffffffff
sub eax, eax
repne scasb al, byte es:[edi]
not ecx
sub edi, ecx
mov eax, ecx
shr ecx, 2
mov esi, edi
mov edi, ebx
rep movsd dword es:[edi], dword [esi]
mov ecx, eax
and ecx, 3
rep movsb byte es:[edi], byte [esi]
cmp dword [esp + 0x10], 1
sbb eax, eax
lea ecx, [ebp + ebx]
mov ebp, dword [sym.imp.KERNEL32.dll_SetEnvironmentVariableA]
mov byte [ecx], 0
lea ecx, [ecx + 1]
and eax, ecx
push eax
push ebx
call ebp
push ebx
call fcn.00418752
add esp, 4
xor eax, eax
jmp 0x419893
xor eax, eax
jmp 0x419893
mov eax, 0xffffffff
pop ebp
pop edi
pop esi
pop ebx
add esp, 4
ret
Function at 0x401770
Capabilities:
Hide graphical window

Disassembly:
push ebp
mov ebp, esp
mov eax, dword [ebp + 8]
push esi
push 0
push eax
push 0
push 0
push 0x80000000
push 0x80000000
push 0x80000000
push 0x80000000
push 0xcf0000
push str.Best_Application
push str.Clariot
push 0
mov dword [0x405101], eax
call dword [sym.imp.USER32.dll_CreateWindowExA]
mov esi, eax
test esi, esi
jne 0x4017b7
pop esi
pop ebp
ret
push 0
push esi
call dword [sym.imp.USER32.dll_ShowWindow]
push esi
call dword [sym.imp.USER32.dll_UpdateWindow]
mov eax, 1
pop esi
pop ebp
ret

Function at 0x401f94
Capabilities:
Accept command line arguments
Terminate process

Disassembly:
push ebp
mov ebp, esp
sub esp, 0x44
mov eax, dword [0x405364]
test eax, eax
je 0x401fad
call eax
test eax, eax
jne 0x401fad
push 0xfffffffffffffffe
jmp 0x401fc7
push 1
push 0x405010
push 0x405008
call fcn.00401bc1
add esp, 0xc
test eax, eax
je 0x401fcd
push 0xfffffffffffffffd
call dword [sym.imp.KERNEL32.dll_ExitProcess]
push esi
push 0
push 0x405004
push section..data
call fcn.00401bc1
add esp, 0xc
call dword [sym.imp.KERNEL32.dll_GetCommandLineA]
mov esi, eax
test esi, esi
jne 0x401ff3
mov esi, 0x4048e6
mov cl, 0x20
jmp 0x401ffc
cmp al, 0x20
ja 0x402006
inc esi
mov al, byte [esi]
test al, al
jne 0x401ff7
cmp al, 0x20
jbe 0x40201d
mov al, byte [esi]
cmp al, 0x22
jne 0x40200f
xor cl, 0x20
inc esi
mov al, byte [esi]
cmp al, cl
ja 0x402008
jmp 0x40201d
cmp al, cl
ja 0x402023
inc esi
mov al, byte [esi]
test al, al
jne 0x402018
and dword [ebp - 0x18], 0
lea eax, [ebp - 0x44]
push eax
call dword [sym.imp.KERNEL32.dll_GetStartupInfoA]
test eax, 0xa0d0a0d
sub eax, 0x54524357
sub eax, 0xa0d0a0d
test byte [ebp - 0x18], 1
je 0x40204c
movzx eax, word [ebp - 0x14]
jmp 0x40204f
push 0xa
pop eax
push eax
push esi
push 0
push 0
call dword [sym.imp.KERNEL32.dll_GetModuleHandleA]
push eax
call main
push eax
call fcn.00402084
pop ecx
pop esi
leave
ret

Function at 0x402084
Capabilities:
Terminate process

Disassembly:
call fcn.004020ce
push 0
push 0x405018
push 0x405014
call fcn.00401bc1
push 0
push 0x405020
push 0x40501c
call fcn.00401bc1
add esp, 0x18
push dword [esp + 4]
call dword [sym.imp.KERNEL32.dll_ExitProcess]
Function at 0x401a50
Capabilities:
Query or enumerate registry key

Disassembly:
mov eax, dword fs:[0]
push 0xffffffffffffffff
push 0x407636
push eax
mov dword fs:[0], esp
sub esp, 0x114
lea ecx, [esp + 8]
push ebx
push esi
mov esi, dword [esp + 0x134]
push edi
mov edi, dword [esp + 0x134]
xor ebx, ebx
mov eax, dword [esi]
push ecx
push 0x20019
push ebx
push eax
push edi
call dword [sym.imp.ADVAPI32.dll_RegOpenKeyExA]
test eax, eax
je 0x401b09
lea ecx, [esp + 0xc]
call sub.MFC42.DLL_CString::CString_1
lea edx, [esp + 0x18]
push edi
push edx
mov dword [esp + 0x130], ebx
call fcn.00401e80
add esp, 8
mov ecx, dword [esi]
mov edx, dword [eax]
push ecx
push edx
lea eax, [esp + 0x14]
push 0x40a0d8
push eax
mov byte [esp + 0x138], 1
call sub.MFC42.DLL_CString::Format
add esp, 0x10
lea ecx, [esp + 0x18]
mov byte [esp + 0x128], bl
call sub.MFC42.DLL_CString::CString
mov ecx, dword [esp + 0xc]
push ebx
push ebx
push ecx
call sub.MFC42.DLL_AfxMessageBox
lea ecx, [esp + 0xc]
mov dword [esp + 0x128], 0xffffffff
call sub.MFC42.DLL_CString::CString
xor eax, eax
jmp 0x401b82
push ebp
mov ebp, dword [esp + 0x134]
mov dword [esp + 0x14], 0x104
xor esi, esi
mov ecx, dword [esp + 0x18]
push 0
push 0
push 0
lea edx, [esp + 0x20]
push 0
lea eax, [esp + 0x30]
push edx
push eax
push esi
push ecx
call dword [sym.imp.ADVAPI32.dll_RegEnumKeyExA]
test eax, eax
jne 0x401b6e
mov eax, dword [ebp + 8]
lea edx, [esp + 0x20]
push edx
push eax
mov ecx, ebp
call sub.MFC42.DLL_CStringArray::SetAtGrow
mov ecx, dword [esp + 0x14]
xor eax, eax
mov edx, ecx
lea edi, [esp + 0x20]
shr ecx, 2
rep stosd dword es:[edi], eax
mov ecx, edx
inc ebx
and ecx, 3
mov dword [esp + 0x14], 0x104
rep stosb byte es:[edi], al
inc esi
cmp esi, 0xa
jb 0x401b1b
mov eax, dword [esp + 0x18]
push eax
call dword [sym.imp.ADVAPI32.dll_RegCloseKey]
mov eax, ebx
pop ebp
mov ecx, dword [esp + 0x120]
pop edi
pop esi
pop ebx
mov dword fs:[0], ecx
add esp, 0x120
ret

Function at 0x402210
Capabilities:
Encode data using xor

Disassembly:
mov eax, dword [esp + 4]
push ebx
push ebp
mov ebp, ecx
push esi
push edi
xor edi, edi
lea ecx, [eax + 4]
lea esi, [ebp + 4]
mov eax, ecx
xor edx, edx
shl eax, 4
add eax, edi
add eax, ebp
mov bl, byte [eax]
add eax, 4
xor byte [esi + edx], bl
inc edx
cmp edx, 4
jl 0x40222d
inc edi
add esi, 4
cmp edi, 4
jl 0x402222
pop edi
pop esi
pop ebp
pop ebx
ret 4
Function at 0x4022f0
Capabilities:
Encode data using xor

Disassembly:
sub esp, 0x18
push ebx
push ebp
push esi
mov esi, ecx
push edi
lea edi, [esp + 0x20]
mov eax, dword [esi + 4]
mov ecx, dword [esi + 8]
mov edx, dword [esi + 0xc]
mov dword [esp + 0x18], eax
mov eax, dword [esi + 0x10]
mov dword [esp + 0x1c], ecx
mov dword [esp + 0x24], eax
mov eax, 0xfffffff8
sub eax, esi
mov dword [esp + 0x20], edx
lea ebp, [esi + 8]
mov dword [esp + 0x14], eax
mov al, byte [edi - 8]
mov bl, byte [edi - 4]
push eax
mov ecx, esi
call fcn.00402430
mov dl, al
push ebx
mov ecx, esi
mov bl, dl
call fcn.00402450
mov ecx, esi
xor bl, al
mov al, byte [edi + 4]
push eax
call fcn.00402420
xor bl, al
mov al, byte [edi]
push eax
mov ecx, esi
call fcn.00402420
xor bl, al
mov al, byte [edi - 8]
push eax
mov ecx, esi
mov byte [ebp - 4], bl
call fcn.00402420
mov bl, al
mov al, byte [edi - 4]
push eax
mov ecx, esi
call fcn.00402430
xor bl, al
mov al, byte [edi + 4]
push eax
mov ecx, esi
call fcn.00402420
xor bl, al
mov al, byte [edi]
push eax
mov ecx, esi
call fcn.00402450
xor bl, al
mov al, byte [edi - 8]
push eax
mov ecx, esi
mov byte [ebp], bl
call fcn.00402420
mov bl, al
mov al, byte [edi - 4]
push eax
mov ecx, esi
call fcn.00402420
xor bl, al
mov al, byte [edi + 4]
push eax
mov ecx, esi
call fcn.00402450
xor bl, al
mov al, byte [edi]
push eax
mov ecx, esi
call fcn.00402430
xor bl, al
mov al, byte [edi - 8]
push eax
mov ecx, esi
mov byte [ebp + 4], bl
call fcn.00402450
mov bl, al
mov al, byte [edi - 4]
push eax
mov ecx, esi
call fcn.00402420
xor bl, al
mov al, byte [edi + 4]
push eax
mov ecx, esi
call fcn.00402430
xor bl, al
mov al, byte [edi]
push eax
mov ecx, esi
call fcn.00402420
mov ecx, dword [esp + 0x14]
xor bl, al
mov byte [ebp + 8], bl
inc ebp
add ecx, ebp
inc edi
cmp ecx, 4
jl 0x402327
pop edi
pop esi
pop ebp
pop ebx
add esp, 0x18
ret
Function at 0x4029c0
Capabilities:
Create process on windows

Disassembly:
mov eax, dword fs:[0]
push 0xffffffffffffffff
push 0x4076cf
push eax
mov eax, dword [0x40ab30]
mov dword fs:[0], esp
sub esp, 0x1a8
push ebx
push esi
or esi, 0xffffffff
test eax, eax
jne 0x402a99
push 4
call sub.MFC42.DLL_operatornew
add esp, 4
mov dword [esp + 0x14], eax
test eax, eax
mov dword [esp + 0x1b8], 0
je 0x402a13
mov ecx, eax
call fcn.00401050
jmp 0x402a15
xor eax, eax
push edi
mov dword [0x40ab30], eax
mov ecx, 0x20
xor eax, eax
lea edi, [esp + 0x1c]
push 0x80
rep stosd dword es:[edi], eax
lea eax, [esp + 0x20]
mov dword [esp + 0x1c0], esi
push eax
push 0
call dword [sym.imp.KERNEL32.dll_GetModuleFileNameA]
lea ecx, [esp + 0x1c]
push ecx
lea ecx, [esp + 0x10]
call sub.MFC42.DLL_CString::CString_2
push 0x5c
lea ecx, [esp + 0x10]
mov dword [esp + 0x1c0], 1
call sub.MFC42.DLL_CString::ReverseFind
mov edx, dword [esp + 0xc]
mov ecx, dword [edx - 8]
sub ecx, eax
push ecx
push eax
lea ecx, [esp + 0x14]
call sub.MFC42.DLL_CString::Delete
lea eax, [esp + 0xc]
mov ecx, 0x40ab2c
push eax
call sub.MFC42.DLL_CString::operator_1
lea ecx, [esp + 0xc]
mov dword [esp + 0x1bc], esi
call sub.MFC42.DLL_CString::CString
pop edi
lea ecx, [esp + 0x10]
push ecx
mov ecx, dword [0x40ab30]
call fcn.00402bc0
lea edx, [esp + 0x10]
push str.Sys17PmSendDmp.exe
lea eax, [esp + 0x10]
mov ebx, 2
push edx
push eax
mov dword [esp + 0x1c4], ebx
call sub.MFC42.DLL_operator_1
mov edx, dword [esp + 0xc]
lea ecx, [esp + 0x98]
push ecx
push edx
mov byte [esp + 0x1c0], 3
call sub.MFC42.DLL_CFile::GetStatus
test eax, eax
jne 0x402b20
lea ecx, [esp + 0xc]
mov byte [esp + 0x1b8], bl
call sub.MFC42.DLL_CString::CString
lea ecx, [esp + 0x10]
mov dword [esp + 0x1b8], esi
call sub.MFC42.DLL_CString::CString
pop esi
xor eax, eax
pop ebx
mov ecx, dword [esp + 0x1a8]
mov dword fs:[0], ecx
add esp, 0x1b4
ret
cmp byte [esp + 0xa8], 0x20
je 0x402b63
lea ecx, [esp + 0xc]
mov byte [esp + 0x1b8], bl
call sub.MFC42.DLL_CString::CString
lea ecx, [esp + 0x10]
mov dword [esp + 0x1b8], esi
call sub.MFC42.DLL_CString::CString
pop esi
xor eax, eax
pop ebx
mov ecx, dword [esp + 0x1a8]
mov dword fs:[0], ecx
add esp, 0x1b4
ret
mov eax, dword [esp + 0xc]
push 3
push 0
push 0x40ab34
push eax
push 0
push 0
call dword [sym.imp.SHELL32.dll_ShellExecuteA]
lea ecx, [esp + 0xc]
mov byte [esp + 0x1b8], bl
call sub.MFC42.DLL_CString::CString
lea ecx, [esp + 0x10]
mov dword [esp + 0x1b8], esi
call sub.MFC42.DLL_CString::CString
mov ecx, dword [esp + 0x1b0]
pop esi
mov eax, 1
pop ebx
mov dword fs:[0], ecx
add esp, 0x1b4
ret
Function at 0x4032e0
Capabilities:
Extract resource via kernel32 functions

Disassembly:
push ecx
push ebp
push esi
push edi
call sub.MFC42.DLL_AfxGetModuleState
mov esi, dword [eax + 0xc]
mov ecx, dword [esp + 0x14]
mov eax, dword [esp + 0x18]
and ecx, 0xffff
push eax
push ecx
push esi
call dword [sym.imp.KERNEL32.dll_FindResourceA]
mov edi, eax
test edi, edi
jne 0x403310
pop edi
pop esi
pop ebp
pop ecx
ret 0xc
push edi
push esi
call dword [sym.imp.KERNEL32.dll_SizeofResource]
push edi
push esi
mov ebp, eax
call dword [sym.imp.KERNEL32.dll_LoadResource]
mov esi, eax
test esi, esi
jne 0x40332f
pop edi
pop esi
pop ebp
pop ecx
ret 0xc
push ebx
push ebp
push 0
call dword [sym.imp.KERNEL32.dll_GlobalAlloc]
mov ebx, eax
push ebx
call dword [sym.imp.KERNEL32.dll_GlobalLock]
mov ecx, ebp
mov edi, eax
mov edx, ecx
lea eax, [esp + 0x10]
shr ecx, 2
rep movsd dword es:[edi], dword [esi]
mov ecx, edx
push eax
and ecx, 3
push 0
rep movsb byte es:[edi], byte [esi]
push ebx
call dword [sym.imp.ole32.dll_CreateStreamOnHGlobal]
mov ecx, dword [esp + 0x10]
push 0
push ecx
call fcn.004036f0
mov edx, dword [esp + 0x28]
add esp, 8
push ebx
mov dword [edx], eax
call dword [sym.imp.KERNEL32.dll_GlobalUnlock]
mov eax, dword [esp + 0x10]
push eax
mov ecx, dword [eax]
call dword [ecx + 8]
pop ebx
pop edi
pop esi
mov eax, 1
pop ebp
pop ecx
ret 0xc
Function at 0x4047e0
Capabilities:
Read .ini file

Disassembly:
push 0xffffffffffffffff
push 0x407948
mov eax, dword fs:[0]
push eax
mov dword fs:[0], esp
sub esp, 0x3e8
push esi
push edi
mov esi, dword [esp + 0x404]
mov ecx, 0xfa
xor eax, eax
lea edi, [esp + 8]
rep stosd dword es:[edi], eax
mov edi, dword [esp + 0x400]
push eax
lea ecx, [esp + 0x410]
mov dword [esp + 0x3fc], 2
call sub.MFC42.DLL_CString::GetBuffer
push eax
lea eax, [esp + 0xc]
push 0x3e8
push eax
push str.error
push esi
push edi
call dword [sym.imp.KERNEL32.dll_GetPrivateProfileStringA]
mov esi, dword [esp + 0x408]
lea ecx, [esp + 8]
push ecx
mov ecx, esi
call sub.MFC42.DLL_CString::operator
mov esi, dword [esi]
push str.error
push esi
call dword [sym.imp.MSVCRT.dll__mbscmp]
add esp, 8
mov byte [esp + 0x3f8], 1
test eax, eax
pop edi
pop esi
lea ecx, [esp + 0x3f8]
jne 0x4048c8
call sub.MFC42.DLL_CString::CString
lea ecx, [esp + 0x3fc]
mov byte [esp + 0x3f0], 0
call sub.MFC42.DLL_CString::CString
lea ecx, [esp + 0x404]
mov dword [esp + 0x3f0], 0xffffffff
call sub.MFC42.DLL_CString::CString
xor eax, eax
mov ecx, dword [esp + 0x3e8]
mov dword fs:[0], ecx
add esp, 0x3f4
ret
call sub.MFC42.DLL_CString::CString
lea ecx, [esp + 0x3fc]
mov byte [esp + 0x3f0], 0
call sub.MFC42.DLL_CString::CString
lea ecx, [esp + 0x404]
mov dword [esp + 0x3f0], 0xffffffff
call sub.MFC42.DLL_CString::CString
mov ecx, dword [esp + 0x3e8]
mov eax, 1
mov dword fs:[0], ecx
add esp, 0x3f4
ret
Function at 0x4020f9
Capabilities:
Encode data using xor

Disassembly:
bound esi, qword [ebx]
xor esp, edi
into
add al, 0
add byte [eax], al
add byte [eax], al
add byte [eax], bh
push esp
cwde
sub ch, cl
push ecx
jecxz 0x402000
xor dword [eax], eax
inc esp
rol al, 0xbf
adc ebx, esp
push 0x7b050008
push ss
rol byte [ebx], 0x95
enter 0x30a, 0xffffffffffffffa8
and ah, byte [ebx]
outsd dx, dword [esi]
jle 0x402070
into
scasd eax, dword es:[edi]
mov byte [ebx + ebx*2], 0
push cs
push edi
and byte [eax], ch
push cs
mov al, byte [0x88d99d94]
int3
dec ecx
or byte [eax + edx*8 + 0x48292f], 0x40
inc eax
sar byte [edi + 0x10982012], 0
add eax, 0x4b5f577b
jb 0x402012
jmp 0x9f65c8e4
lahf
fst dword [ebp + 0x385f5131]
adc al, 0xd4
pushal
add eax, 0x2463800f
and byte ds:[esi], dl
xchg edi, eax
cmp cl, bl
dec ebp
jne 0x402044
cmpsd dword [esi], dword es:[edi]
call 0x82e4a99f
invalid
cmp ebp, dword [ecx]
add byte [eax + eax*4 - 0x40], al
mov edi, 0x8486112
add byte [0xc3df137b], al
jne 0x402070
or al, byte [ebx]
test al, 0x25
daa
jbe 0x402111
xor esi, dword [ebx]
out 0xce, eax
add al, 0
add byte [eax], al
add byte [eax], al
add byte [eax], bh
push esp
cwde
sub ch, cl
push ecx
dec edx
wait
xor dword [eax], eax
inc esp
rol al, 0xbf
adc ah, byte [ebx + 0x5000868]
jnp 0x4020e7
rol byte [ebx], 0x95
into
sbb dword [ebx - 0x78], esp
and ah, byte [ebx]
outsd dx, dword [esi]
jle 0x40211e
into
scasd eax, dword es:[edi]
mov byte [ebx + ebx*2], 0
push cs
push edi
cmp byte [ebp - 0x72], ah
and byte [ebp + ebx*4 - 0x33337727], dl
jg 0x402129
mov fs, word [eax]
xchg esp, eax
popfd
invalid
adc eax, 0xd08c8249
rcl eax, 1
dec eax
add byte [eax + 0x40], al
sar byte [edi + 0x1098e012], 0
add eax, 0x4b5f577b
jb 0x4020c6
clc
jecxz 0x402095
and eax, 0x3195d99f
push ecx
pop edi
xor dword [ecx + 0x5f], edx
cmp byte [edi], cl
rcr byte [ebx - 0x68], 0xdf
cmp ebx, eax
mov byte [0x3195d99f], ah
push ecx
pop edi
lahf
fst dword [ebp + 0x385f5131]
adc al, 0xd4
cmp byte [esp + edx*8], dl
pushal
add eax, 0x2463800f
and byte ds:[eax], dl
cmp dh, cl
jo 0x207e4592
adc byte [eax], bh
into
dec ecx
in al, 0x65
pushfd
out 0xe8, eax
adc dword [ecx + 0xac6829c], ecx
xor al, 0xaa
xor eax, 0x2935c482
add byte [eax + eax*4 - 0x40], al
mov edi, 0x8482113
add byte [0xc3df137b], al
jne 0x402124
sbb dword [ebx - 0x78], esp
and eax, 0x33627627
xor esp, edi
into
add al, 0
add byte [eax], al
add byte [eax], al
add byte [eax], bh
push esp
cwde
sub ch, cl
push ecx
rol eax, 1
xor dword [eax], eax
inc esp
rol al, 0xbf
adc esp, dword [ebx + 0x68]
or byte [eax], al
add eax, 0x3c0167b
xchg ebp, eax
aam 8
ret
Function at 0x404f00
Capabilities:
Link many functions at runtime

Disassembly:
sub esp, 0x108
push esi
push edi
mov ecx, 0x40
xor eax, eax
lea edi, [esp + 0xd]
mov byte [esp + 0xc], 0
rep stosd dword es:[edi], eax
stosw word es:[edi], ax
stosb byte es:[edi], al
lea eax, [esp + 8]
lea ecx, [esp + 0xc]
push eax
push ecx
push 0x4104a8
mov dword [esp + 0x14], 0x104
call dword [0x412fc0]
test eax, eax
jne 0x404fae
lea edx, [esp + 0xc]
push 0x5c
push edx
call dword [sym.imp.MSVCRT.dll_strrchr]
add esp, 8
test eax, eax
je 0x404f88
mov byte [eax + 1], 0
mov edi, 0x410a00
or ecx, 0xffffffff
xor eax, eax
repne scasb al, byte es:[edi]
not ecx
sub edi, ecx
push ebp
lea edx, [esp + 0x10]
mov esi, edi
mov ebp, ecx
mov edi, edx
or ecx, 0xffffffff
repne scasb al, byte es:[edi]
mov ecx, ebp
dec edi
shr ecx, 2
rep movsd dword es:[edi], dword [esi]
mov ecx, ebp
pop ebp
and ecx, 3
rep movsb byte es:[edi], byte [esi]
jmp 0x404fae
mov edi, 0x412aa4
or ecx, 0xffffffff
xor eax, eax
lea edx, [esp + 0xc]
repne scasb al, byte es:[edi]
not ecx
sub edi, ecx
mov eax, ecx
mov esi, edi
mov edi, edx
shr ecx, 2
rep movsd dword es:[edi], dword [esi]
mov ecx, eax
and ecx, 3
rep movsb byte es:[edi], byte [esi]
lea edi, [esp + 0xc]
or ecx, 0xffffffff
xor eax, eax
repne scasb al, byte es:[edi]
not ecx
dec ecx
je 0x404fc5
lea ecx, [esp + 0xc]
push ecx
jmp 0x404fca
push 0x410a00
call dword [sym.imp.KERNEL32.dll_LoadLibraryA]
test eax, eax
mov dword [0x412ab0], eax
jne 0x404fe2
pop edi
pop esi
add esp, 0x108
ret
mov esi, dword [sym.imp.KERNEL32.dll_GetProcAddress]
push 0x4109ec
push eax
call esi
mov edx, dword [0x412ab0]
push 0x4109d8
push edx
mov dword [0x412b04], eax
call esi
mov dword [0x412b00], eax
mov eax, dword [0x412ab0]
push 0x4109c4
push eax
call esi
mov ecx, dword [0x412ab0]
push 0x4109b0
push ecx
mov dword [0x412afc], eax
call esi
mov edx, dword [0x412ab0]
push 0x410998
push edx
mov dword [0x412af8], eax
call esi
mov dword [0x412af4], eax
mov eax, dword [0x412ab0]
push 0x41098c
push eax
call esi
mov ecx, dword [0x412ab0]
push 0x41097c
push ecx
mov dword [0x412af0], eax
call esi
mov edx, dword [0x412ab0]
push 0x41096c
push edx
mov dword [0x412aec], eax
call esi
mov dword [0x412ae8], eax
mov eax, dword [0x412ab0]
push 0x41095c
push eax
call esi
mov ecx, dword [0x412ab0]
push 0x410944
push ecx
mov dword [0x412ae4], eax
call esi
mov edx, dword [0x412ab0]
push 0x410934
push edx
mov dword [0x412ad8], eax
call esi
mov dword [0x412adc], eax
mov eax, dword [0x412ab0]
push 0x410920
push eax
call esi
mov ecx, dword [0x412b04]
mov dword [0x412ae0], eax
xor eax, eax
pop edi
test ecx, ecx
setne al
pop esi
add esp, 0x108
ret