joyce8/EMBER2024-capa huggingface dataset:
Function at 0x40f13c
Capabilities:
Create process on windows

Disassembly:
push ebp
mov ebp, esp
sub esp, 0x3c
push 0x3c
lea eax, [ebp - 0x3c]
push 0
push eax
call fcn.0044c2f0
mov eax, dword [ebp + 8]
and dword [ebp - 0x38], 0
mov dword [ebp - 0x34], eax
mov eax, dword [ebp + 0xc]
mov dword [ebp - 0x30], eax
mov eax, dword [ebp + 0x10]
mov dword [ebp - 0x2c], eax
mov eax, dword [ebp + 0x14]
mov dword [ebp - 0x28], eax
mov eax, dword [ebp + 0x18]
mov dword [ebp - 0x24], eax
add esp, 0xc
lea eax, [ebp - 0x3c]
push eax
mov dword [ebp - 0x3c], 0x3c
mov dword [ebp - 0x20], 1
call dword [sym.imp.SHELL32.dll_ShellExecuteExW]
leave
ret

Function at 0x40f3fa
Capabilities:
Create thread
Terminate process

Disassembly:
push ebp
push esi
push edi
push 0xc
call fcn.0044a957
mov edi, eax
xor ebp, ebp
pop ecx
cmp edi, ebp
je 0x40f42c
push ebx
mov ebx, 0x4872ec
lea esi, [edi + 4]
mov ecx, ebx
call fcn.004017a8
lea esi, [edi + 8]
mov ecx, ebx
call fcn.004017a8
mov dword [edi], ebp
pop ebx
jmp 0x40f42e
xor edi, edi
mov eax, dword [esp + 0x10]
push ebp
push ebp
push edi
push 0x4023ed
push ebp
push ebp
mov dword [edi], eax
call dword [sym.imp.KERNEL32.dll_CreateThread]
mov esi, eax
cmp esi, ebp
je 0x40f45a
push 0xffffffffffffffff
push esi
call dword [sym.imp.KERNEL32.dll_WaitForSingleObject]
push esi
call dword [sym.imp.KERNEL32.dll_CloseHandle]
push 1
call dword [sym.imp.KERNEL32.dll_ExitProcess]
Function at 0x40ff1f
Capabilities:
Create thread

Disassembly:
push 4
mov eax, 0x466ad2
call fcn.00463fe0
xor ebx, ebx
push 0x50
mov dword [ebp - 4], ebx
call fcn.0044a957
pop ecx
mov dword [ebp - 0x10], eax
mov byte [ebp - 4], 1
cmp eax, ebx
je 0x40ff4d
push eax
call fcn.0040fb65
mov edi, eax
jmp 0x40ff4f
xor edi, edi
lea eax, [ebp + 8]
mov byte [ebp - 4], bl
call fcn.00401470
mov eax, dword [ebp + 0x14]
mov dword [edi + 0xc], eax
mov eax, dword [ebp + 0xc]
mov dword [edi + 4], eax
mov eax, dword [ebp + 0x10]
mov dword [edi + 8], eax
cmp dword [ebp + 0x1c], ebx
je 0x40ff7e
mov ebx, dword [ebp + 0x1c]
lea esi, [edi + 0x10]
call fcn.00401087
xor ebx, ebx
cmp dword [ebp + 0x18], ebx
je 0x40ff8f
push dword [ebp + 0x18]
lea eax, [edi + 0x10]
push eax
call fcn.004015c9
push 0x488894
mov dword [0x4887e0], ebx
call dword [sym.imp.KERNEL32.dll_InterlockedIncrement]
mov ecx, dword [ebp + 0x20]
mov dword [edi + 0x44], eax
cmp ecx, ebx
je 0x40ffac
mov dword [ecx], eax
lea eax, [edi + 0x4c]
push eax
push ebx
push edi
push 0x40fba8
push ebx
push ebx
call fcn.00447992
add esp, 0x18
mov dword [edi + 0x48], eax
cmp eax, ebx
jne 0x40ffdb
mov eax, dword [ebp + 8]
add eax, 0xfffffff0
call fcn.004017c3
mov eax, ebx
call fcn.0046407f
ret
xor ebx, ebx
inc ebx
jmp 0x40ffc8
Function at 0x410bdc
Capabilities:
Query remote server for available data
Read data from internet
Receive data

Disassembly:
push ebp
mov ebp, esp
push ecx
xor ecx, ecx
mov dword [edi], ecx
mov eax, dword [esi + 0x10]
cmp eax, ecx
jne 0x410c14
mov dword [esi], 4
call dword [sym.imp.KERNEL32.dll_GetLastError]
mov dword [esi + 4], eax
cmp eax, 0x2f05
je 0x410c0a
mov ecx, esi
call fcn.00410de5
jmp 0x410c10
mov dword [esi], 0x63
xor eax, eax
jmp 0x410c51
push ecx
push ecx
mov dword [ebp - 4], ecx
lea ecx, [ebp - 4]
push ecx
push eax
call dword [sym.imp.WININET.dll_InternetQueryDataAvailable]
test eax, eax
jne 0x410c30
mov dword [esi], 0xd
jmp 0x410bf1
push edi
push 0x1000
push dword [ebp + 8]
push dword [esi + 0x10]
call dword [sym.imp.WININET.dll_InternetReadFile]
test eax, eax
jne 0x410c4e
mov dword [esi], 0xe
jmp 0x410bf1
xor eax, eax
inc eax
leave
ret 4

Function at 0x41119a
Capabilities:
Query or enumerate registry value

Disassembly:
push ebp
mov ebp, esp
mov eax, dword [ebp + 8]
mov eax, dword [eax]
sub esp, 0x10
push ebx
xor ebx, ebx
cmp eax, ebx
jne 0x4111b3
xor eax, eax
jmp 0x411236
push esi
mov esi, dword [sym.imp.ADVAPI32.dll_RegQueryValueExW]
push edi
lea ecx, [ebp - 8]
push ecx
push ebx
lea ecx, [ebp - 4]
push ecx
push ebx
push dword [ebp + 0xc]
xor edi, edi
inc edi
push eax
mov dword [ebp - 8], ebx
mov dword [ebp - 0x10], ebx
mov dword [ebp - 4], edi
call esi
mov eax, dword [ebp - 8]
cmp eax, ebx
je 0x411231
cmp dword [ebp - 4], edi
je 0x4111ef
cmp dword [ebp - 4], 7
je 0x4111ef
cmp dword [ebp - 4], 2
jne 0x411231
add eax, 2
push eax
push edi
call fcn.00447bfb
pop ecx
pop ecx
mov dword [ebp - 0xc], eax
cmp eax, ebx
je 0x411231
lea ecx, [ebp - 8]
push ecx
push eax
lea eax, [ebp - 4]
push eax
mov eax, dword [ebp + 8]
push ebx
push dword [ebp + 0xc]
push dword [eax]
call esi
test eax, eax
jne 0x411228
push dword [ebp - 0xc]
push dword [ebp + 0x10]
call fcn.004015c9
mov dword [ebp - 0x10], edi
push dword [ebp - 0xc]
call fcn.00447b6d
pop ecx
mov eax, dword [ebp - 0x10]
pop edi
pop esi
pop ebx
leave
ret 0xc

Function at 0x41128a
Capabilities:
Set registry value

Disassembly:
push 4
lea eax, [esp + 0x10]
push eax
mov eax, dword [esp + 0xc]
push 4
push 0
push dword [esp + 0x18]
push dword [eax]
call dword [sym.imp.ADVAPI32.dll_RegSetValueExW]
neg eax
sbb eax, eax
inc eax
ret 0xc
Function at 0x411685
Capabilities:
Set registry value

Disassembly:
push 0xc
mov eax, 0x467db4
call fcn.00463fe0
mov esi, ecx
xor edi, edi
mov dword [ebp - 4], edi
mov dword [ebp - 0x10], edi
mov byte [ebp - 4], 2
mov eax, dword [0x4872ec]
mov ecx, 0x4872ec
call dword [eax + 0xc]
add eax, 0x10
mov dword [ebp - 0x14], eax
lea eax, [ebp - 0x14]
push eax
or esi, 0x2001f
push edi
mov byte [ebp - 4], 3
mov eax, dword [ebp + 8]
push esi
push ecx
add eax, 0xfffffff0
mov dword [ebp - 0x18], esp
mov esi, esp
call fcn.004015e7
add eax, 0x10
mov dword [esi], eax
lea eax, [ebp - 0x10]
push eax
call fcn.004112ad
add esp, 0x14
cmp eax, edi
jne 0x411722
mov eax, dword [ebp - 0x14]
add eax, 0xfffffff0
call fcn.004017c3
cmp dword [ebp - 0x10], edi
je 0x411701
push dword [ebp - 0x10]
call dword [sym.imp.ADVAPI32.dll_RegCloseKey]
mov eax, dword [ebp + 8]
add eax, 0xfffffff0
mov dword [ebp - 0x10], edi
call fcn.004017c3
mov eax, dword [ebp + 0xc]
add eax, 0xfffffff0
call fcn.004017c3
xor eax, eax
call fcn.0046407f
ret
mov ebx, dword [ebp + 0xc]
mov esi, dword [ebp - 0x14]
cmp dword [ebp - 0x10], edi
je 0x41174d
cmp ebx, edi
je 0x41174d
push ebx
call dword [sym.imp.KERNEL32.dll_lstrlenW]
add eax, eax
push eax
push ebx
push 1
push edi
push esi
push dword [ebp - 0x10]
call dword [sym.imp.ADVAPI32.dll_RegSetValueExW]
test eax, eax
je 0x411782
lea eax, [esi - 0x10]
call fcn.004017c3
cmp dword [ebp - 0x10], edi
je 0x411763
push dword [ebp - 0x10]
call dword [sym.imp.ADVAPI32.dll_RegCloseKey]
xor esi, esi
mov eax, dword [ebp + 8]
add eax, 0xfffffff0
mov dword [ebp - 0x10], edi
call fcn.004017c3
mov eax, dword [ebp + 0xc]
add eax, 0xfffffff0
call fcn.004017c3
mov eax, esi
jmp 0x41171c
lea eax, [esi - 0x10]
call fcn.004017c3
cmp dword [ebp - 0x10], edi
je 0x411798
push dword [ebp - 0x10]
call dword [sym.imp.ADVAPI32.dll_RegCloseKey]
xor esi, esi
inc esi
jmp 0x411765

Function at 0x413725
Capabilities:
Encode data using xor

Disassembly:
push edi
mov edi, dword [esp + 8]
test ebx, ebx
jl 0x4137c5
cmp ebx, dword [ecx + 0x14]
jge 0x4137c5
push esi
test edi, edi
jge 0x413744
xor esi, esi
jmp 0x413746
mov esi, edi
mov eax, dword [ecx + 0x10]
dec eax
cmp esi, eax
jge 0x413756
test edi, edi
jge 0x413758
xor edi, edi
jmp 0x413758
mov edi, eax
test edx, edx
jge 0x413760
xor esi, esi
jmp 0x413762
mov esi, edx
cmp esi, eax
jge 0x41376e
test edx, edx
jge 0x413770
xor edx, edx
jmp 0x413770
mov edx, eax
mov eax, dword [ecx + 0x1c]
mov esi, dword [ecx + 8]
imul eax, edi
imul esi, ebx
add eax, esi
add eax, dword [ecx + 0x20]
mov ecx, dword [ecx + 0x18]
pop esi
cmp ecx, 0x18
je 0x4137ab
cmp ecx, 0x20
jne 0x4137c5
cmp edi, edx
jg 0x4137c5
sub edx, edi
inc edx
mov cl, byte [eax + 1]
xor byte [eax], 0x80
xor byte [eax + 2], 0x80
mov byte [eax + 1], cl
add eax, 4
dec edx
jne 0x413796
jmp 0x4137c5
cmp edi, edx
jg 0x4137c5
sub edx, edi
inc edx
mov cl, byte [eax + 1]
xor byte [eax], 0x80
xor byte [eax + 2], 0x80
mov byte [eax + 1], cl
add eax, 3
dec edx
jne 0x4137b2
pop edi
ret 4
Function at 0x415dd1
Capabilities:
Encode data using xor
Hash data with crc32

Disassembly:
push edi
mov edi, edx
test ecx, ecx
jne 0x415ddc
xor eax, eax
pop edi
ret
push esi
not eax
mov edx, 0xff
cmp edi, 8
jb 0x415e8e
mov esi, edi
shr esi, 3
push ebx
movzx ebx, byte [ecx]
xor ebx, eax
and ebx, edx
shr eax, 8
xor eax, dword [ebx*4 + 0x46f8d8]
inc ecx
movzx ebx, byte [ecx]
xor ebx, eax
and ebx, edx
shr eax, 8
xor eax, dword [ebx*4 + 0x46f8d8]
inc ecx
movzx ebx, byte [ecx]
xor ebx, eax
and ebx, edx
shr eax, 8
xor eax, dword [ebx*4 + 0x46f8d8]
inc ecx
movzx ebx, byte [ecx]
xor ebx, eax
and ebx, edx
shr eax, 8
xor eax, dword [ebx*4 + 0x46f8d8]
inc ecx
movzx ebx, byte [ecx]
xor ebx, eax
and ebx, edx
shr eax, 8
xor eax, dword [ebx*4 + 0x46f8d8]
inc ecx
movzx ebx, byte [ecx]
xor ebx, eax
and ebx, edx
shr eax, 8
xor eax, dword [ebx*4 + 0x46f8d8]
inc ecx
movzx ebx, byte [ecx]
xor ebx, eax
and ebx, edx
shr eax, 8
xor eax, dword [ebx*4 + 0x46f8d8]
inc ecx
movzx ebx, byte [ecx]
xor ebx, eax
and ebx, edx
shr eax, 8
xor eax, dword [ebx*4 + 0x46f8d8]
inc ecx
sub edi, 8
dec esi
jne 0x415df3
pop ebx
test edi, edi
je 0x415ea7
movzx esi, byte [ecx]
xor esi, eax
and esi, edx
shr eax, 8
xor eax, dword [esi*4 + 0x46f8d8]
inc ecx
dec edi
jne 0x415e92
pop esi
not eax
pop edi
ret
Function at 0x41b7a0
Capabilities:
Hide graphical window

Disassembly:
push ebp
mov ebp, esp
sub esp, 0x30
push ebx
xor ebx, ebx
push edi
cmp dword [esi + 0x70], ebx
je 0x41b86e
lea eax, [ebp - 0x10]
push eax
lea edi, [esi + 4]
push dword [edi]
call dword [sym.imp.USER32.dll_GetWindowRect]
lea eax, [ebp - 0x10]
call fcn.0041be64
mov eax, dword [esi + 0x70]
lea ecx, [eax - 1]
mov eax, dword [ebp - 4]
sub eax, dword [ebp - 0xc]
push 2
cdq
idiv dword [esi + 0x64]
pop edi
push 1
push ecx
push ebx
push edi
push dword [esi + 0x38]
mov dword [ebp - 0x2c], 0x1c
mov dword [ebp - 0x28], 3
mov dword [ebp - 0x24], ebx
mov dword [ebp - 0x20], ecx
mov dword [ebp - 0x14], edi
mov dword [ebp - 0x1c], eax
mov dword [esi + 0x68], eax
call dword [sym.imp.USER32.dll_SetScrollRange]
push 1
lea eax, [ebp - 0x2c]
push eax
push edi
push dword [esi + 0x38]
call dword [sym.imp.USER32.dll_SetScrollInfo]
mov eax, dword [esi + 0x70]
dec eax
cmp dword [esi + 0x68], eax
jle 0x41b831
push ebx
push dword [esi + 0x38]
mov ebx, dword [sym.imp.USER32.dll_ShowWindow]
call ebx
push 0
jmp 0x41b840
mov ebx, dword [sym.imp.USER32.dll_ShowWindow]
push 5
push dword [esi + 0x38]
call ebx
push 5
push dword [esi + 0x3c]
call ebx
mov ecx, dword [esi + 0x68]
mov edx, dword [esi + 0x60]
mov eax, dword [esi + 0x70]
add edx, ecx
cmp edx, eax
jle 0x41b86e
sub eax, ecx
mov dword [esi + 0x60], eax
jns 0x41b85f
and dword [esi + 0x60], 0
push 1
push dword [esi + 0x60]
push edi
push dword [esi + 0x38]
call dword [sym.imp.USER32.dll_SetScrollPos]
pop edi
pop ebx
leave
ret

Function at 0x41b9d8
Capabilities:
Hide graphical window

Disassembly:
push ebp
mov ebp, esp
sub esp, 0x1c
push ebx
push esi
push edi
movsx edi, ax
shr eax, 0x10
cwde
push eax
mov esi, ecx
push edi
mov dword [ebp - 4], eax
call fcn.0041b90b
mov ebx, eax
test ebx, ebx
jl 0x41ba37
push 1
mov eax, esi
call fcn.0041bb19
test al, al
jne 0x41ba14
push 1
push 0
push dword [esi + 4]
call dword [sym.imp.USER32.dll_InvalidateRect]
mov ecx, dword [esi + 0x74]
mov dword [esi + 0x6c], ebx
mov eax, dword [ecx]
push ebx
call dword [eax + 0x98]
call fcn.0041b1f0
push 0x64
call dword [sym.imp.KERNEL32.dll_Sleep]
push 0
push dword [esi + 4]
jmp 0x41ba5a
lea eax, [ebp - 0x18]
push eax
push dword [esi + 4]
call dword [sym.imp.USER32.dll_GetClientRect]
push dword [ebp - 4]
lea eax, [ebp - 0x18]
push edi
push eax
call dword [sym.imp.USER32.dll_PtInRect]
test eax, eax
jne 0x41ba60
push eax
push dword [esi + 4]
call dword [sym.imp.USER32.dll_ShowWindow]
pop edi
pop esi
xor eax, eax
pop ebx
leave
ret
Function at 0x41c032
Capabilities:
Check if file exists
Get file attributes

Disassembly:
push 8
mov eax, 0x466b55
call fcn.00463fe0
push dword [ebp + 8]
mov esi, dword [sym.imp.KERNEL32.dll_GetFileAttributesW]
call esi
cmp eax, 0xffffffff
jne 0x41c0e8
mov edi, dword [sym.imp.KERNEL32.dll_GetLastError]
call edi
cmp eax, 3
jne 0x41c0d0
push dword [ebp + 8]
call dword [sym.imp.KERNEL32.dll_lstrlenW]
cmp eax, 0x104
jl 0x41c0e4
push 0x46ed10
lea eax, [ebp - 0x14]
push eax
call fcn.004021f0
push dword [ebp + 8]
and dword [ebp - 4], 0
lea ecx, [ebp - 0x10]
push ecx
mov ecx, eax
call fcn.00405274
mov eax, dword [ebp - 0x14]
pop ecx
pop ecx
add eax, 0xfffffff0
call fcn.004017c3
push dword [ebp - 0x10]
call esi
mov ebx, eax
call edi
mov dword [ebp - 0x14], eax
cmp ebx, 0xffffffff
je 0x41c0c2
test bl, 0x10
jne 0x41c0c2
mov eax, dword [ebp - 0x10]
add eax, 0xfffffff0
call fcn.004017c3
xor eax, eax
inc eax
jmp 0x41c0f3
mov eax, dword [ebp - 0x10]
add eax, 0xfffffff0
call fcn.004017c3
mov eax, dword [ebp - 0x14]
cmp eax, 2
je 0x41c0e4
cmp eax, 3
je 0x41c0e4
cmp eax, 0x7b
je 0x41c0e4
cmp eax, 0x35
jne 0x41c0bd
xor eax, eax
jmp 0x41c0f3
not al
movzx eax, al
shr eax, 4
and eax, 1
call fcn.0046407f
ret
Function at 0x4209f5
Capabilities:
Inspect section memory permissions

Disassembly:
cmp dword [eax + 4], ebx
jne 0x420986
cmp dword [eax + 0xc], ebx
je 0x420a29
mov edi, dword [eax + 0xc]
add edi, esi
push edi
call dword [ebp - 0xc0]
mov dword [ebp + 0xc], eax
call fcn.004203e1
and ah, byte [edi + 0xa]
ljmp 0x5712
mov eax, dword [ebp + 0x10]
mov eax, dword [eax]
cmp eax, ebx
je 0x420a17
test eax, 0x80000000
lea ecx, [eax + esi]
je 0x4209f2
and eax, 0xffff
push eax
jmp 0x4209f6
add ecx, 2
push ecx
push dword [ebp + 0xc]
push dword [ebp + 8]
call fcn.004203a6
add esp, 0xc
cmp edi, ebx
mov dword [edi], eax
je 0x420bd0
add edi, 4
add dword [ebp + 0x10], 4
jmp 0x4209d7
add dword [ebp - 0x44], 0x14
mov edi, dword [ebp - 0x88]
mov eax, dword [ebp - 0x44]
jmp 0x420978
call fcn.004203e1
mov esi, dword [esi]
ficomp dword [edi]
mov eax, dword [edi + 0xa0]
cmp eax, ebx
je 0x420a95
add eax, esi
cmp dword [eax], ebx
je 0x420a95
mov edx, dword [eax + 4]
lea ecx, [eax + 8]
add edx, eax
mov dword [ebp + 8], ecx
invalid

Function at 0x420ada
Capabilities:
Inspect section memory permissions

Disassembly:
mov edi, dword [ebp - 0x88]
mov eax, dword [ebp + 0xc]
cmp ax, word [edi + 6]
jne 0x420ab8
mov edx, dword [ebp - 0xb4]
xor ecx, ecx
mov edi, 0x60000000
jmp 0x420ad6
movzx eax, ax
lea eax, [eax + eax*4]
mov ecx, dword [edi + eax*8 + 0x104]
mov edx, dword [edi + eax*8 + 0x108]
lea eax, [edi + eax*8 + 0xf8]
mov edi, dword [eax + 0x24]
lea eax, [edx + ecx - 1]
xor edx, edx
div dword [ebp - 0xac]
xor edx, edx
mov dword [ebp - 0x44], eax
mov eax, ecx
div dword [ebp - 0xac]
cmp eax, dword [ebp - 0x44]
ja 0x420b34
mov edx, edi
mov dword [ebp + 8], edi
and dword [ebp + 8], 0x40000000
mov dword [ebp + 0x10], edi
and edx, 0x20000000
and dword [ebp + 0x10], 0x80000000
mov ecx, dword [ebp + 0x18]
cmp edx, ebx
je 0x420b1b
or byte [eax + ecx], 1
cmp dword [ebp + 8], ebx
je 0x420b24
or byte [eax + ecx], 2
cmp dword [ebp + 0x10], ebx
je 0x420b2e
add ecx, eax
or byte [ecx], 4
inc eax
cmp eax, dword [ebp - 0x44]
jbe 0x420b10
inc dword [ebp + 0xc]
mov eax, dword [ebp - 0x88]
mov cx, word [ebp + 0xc]
cmp cx, word [eax + 6]
jbe 0x420a9a
invalid
mov dword [ebp + 8], esi
xor edi, edi
mov eax, dword [ebp + 0x18]
push 2
pop ecx
movzx eax, byte [edi + eax]
sub eax, ecx
je 0x420b81
dec eax
je 0x420b78
sub eax, 3
je 0x420b6f
mov dword [ebp - 4], 0x40
jmp 0x420b9e
mov dword [ebp - 4], 4
jmp 0x420b84
mov dword [ebp - 4], 0x20
jmp 0x420b84
mov dword [ebp - 4], ecx
lea eax, [ebp - 4]
push eax
push dword [ebp - 4]
push dword [ebp - 0xac]
push dword [ebp + 8]
call dword [ebp - 0xbc]
test eax, eax
je 0x420bd0
mov eax, dword [ebp - 0xac]
add dword [ebp + 8], eax
inc edi
cmp edi, dword [ebp - 0x8c]
jbe 0x420b50
mov eax, dword [ebp - 0x88]
mov edi, dword [eax + 0x28]
add edi, esi
call fcn.004203e1
sbb al, 0x72
mov ch, 0x48
push dword [ebp + 0x14]
push 1
push esi
call edi
mov eax, esi
jmp 0x420bdc
push 0x8000
push ebx
push esi
call dword [ebp - 8]
xor eax, eax
pop edi
pop esi
pop ebx
leave
ret
Function at 0x420cd1
Capabilities:
Contain obfuscated stackstrings

Disassembly:
add byte [eax - 0x3c35b], al
inc dword [eax]
and byte [ebp - 0x3c3], 0
mov byte [ebp - 0x3c2], 0x99
and byte [ebp - 0x3c1], 0
mov byte [ebp - 0x3c0], 0x21
mov byte [ebp - 0x3bf], 3
mov byte [ebp - 0x3be], 0x12
mov byte [ebp - 0x3bd], 0x2b
mov byte [ebp - 0x3bc], 9
mov byte [ebp - 0x3bb], 2
mov byte [ebp - 0x3ba], 0x13
mov byte [ebp - 0x3b9], 0xa
mov byte [ebp - 0x3b8], 3
mov byte [ebp - 0x3b7], 0x20
mov byte [ebp - 0x3b6], 0xf
mov byte [ebp - 0x3b5], 0xa
mov byte [ebp - 0x3b4], 3
mov byte [ebp - 0x3b3], 0x28
mov byte [ebp - 0x3b2], 7
mov byte [ebp - 0x3b1], 0xb
mov byte [ebp - 0x3b0], 3
mov byte [ebp - 0x3af], 0x27
mov byte [ebp - 0x3ae], 0x66
lea eax, [ebp - 0x3c4]
push eax
call fcn.004203f1
pop ecx
push eax
push dword [ebp + 0x18]
push dword [ebp + 0x14]
call fcn.004203a6
add esp, 0xc
mov dword [ebp - 0x538], eax
and byte [ebp - 0x3ec], 0
and byte [ebp - 0x3eb], 0
mov byte [ebp - 0x3ea], 0x11
and byte [ebp - 0x3e9], 0
mov byte [ebp - 0x3e8], 0xa9
mov byte [ebp - 0x3e7], 0x8b
mov byte [ebp - 0x3e6], 0x9a
mov byte [ebp - 0x3e5], 0xa3
mov byte [ebp - 0x3e4], 0x81
mov byte [ebp - 0x3e3], 0x8a
mov byte [ebp - 0x3e2], 0x9b
mov byte [ebp - 0x3e1], 0x82
mov byte [ebp - 0x3e0], 0x8b
mov byte [ebp - 0x3df], 0xa6
mov byte [ebp - 0x3de], 0x8f
mov byte [ebp - 0x3dd], 0x80
mov byte [ebp - 0x3dc], 0x8a
mov byte [ebp - 0x3db], 0x82
mov byte [ebp - 0x3da], 0x8b
mov byte [ebp - 0x3d9], 0xaf
mov byte [ebp - 0x3d8], 0xee
lea eax, [ebp - 0x3ec]
push eax
call fcn.004203f1
pop ecx
push eax
push dword [ebp + 0x18]
push dword [ebp + 0x14]
call fcn.004203a6
add esp, 0xc
mov dword [ebp - 0x340], eax
call fcn.004203e1
lds ebx, [edx - 0x5a7fb0dc]
int3
Function at 0x4217c7
Capabilities:
Contain obfuscated stackstrings

Disassembly:
jecxz 0x421819
lea eax, [ebp - 0x394]
push eax
call fcn.00420352
add esp, 0xc
and dword [ebp - 0x700], 0
jmp 0x4217ee
mov eax, dword [ebp - 0x700]
inc eax
mov dword [ebp - 0x700], eax
cmp dword [ebp - 0x700], 5
jge 0x421837
mov eax, dword [ebp - 0x700]
movsx eax, byte [ebp + eax - 0x394]
movsx ecx, byte [ebp - 0x24]
xor eax, ecx
mov ecx, dword [ebp - 0x700]
mov byte [ebp + ecx - 0x394], al
mov eax, dword [ebp - 0x700]
movsx eax, byte [ebp + eax - 0x394]
not eax
mov ecx, dword [ebp - 0x700]
mov byte [ebp + ecx - 0x394], al
jmp 0x4217e1
test dword [eax], eax
stc
invalid
call fcn.004203e1
xchg esi, eax
cwde
test byte [ecx], ah
and byte [ebp - 0x72c], 0
and byte [ebp - 0x72b], 0
mov byte [ebp - 0x72a], 0xc2
and byte [ebp - 0x729], 0
mov byte [ebp - 0x728], 0x6b
mov byte [ebp - 0x727], 0x54
mov byte [ebp - 0x726], 0x4f
mov byte [ebp - 0x725], 0x49
mov byte [ebp - 0x724], 0x48
mov byte [ebp - 0x723], 0x5c
mov byte [ebp - 0x722], 0x51
mov byte [ebp - 0x721], 0x6d
mov byte [ebp - 0x720], 0x4f
mov byte [ebp - 0x71f], 0x52
invalid
test edx, esp
clc
invalid
invalid

Function at 0x4225a5
Capabilities:
Resolve function by parsing pe exports

Disassembly:
mov eax, dword [eax + 8]
push eax
call fcn.004203e1
in al, 0xd9
push ds
push ss
mov edi, eax
mov eax, dword [edi + 0x3c]
mov edx, dword [edi + eax + 0x78]
add edx, edi
mov ecx, dword [edx + 0x18]
mov ebx, dword [edx + 0x20]
add ebx, edi
call fcn.004203e1
xchg ebp, eax
push es
mov esp, 0x348b4945
mov eax, dword [ebx]
idiv dword [eax + 0x50746547]
dec ecx
mov esi, dword [ebx + ecx*4]
add esi, edi
mov eax, 0x50746547
cmp dword [esi], eax
jne 0x4225ce
mov eax, 0x41636f72
cmp dword [esi + 4], eax
jne 0x4225ce
call fcn.004203e1
adc ch, dh
push ss
mov ebx, dword [edx + 0x24]

Function at 0x422a14
Capabilities:
Hide graphical window

Disassembly:
push esi
lea esi, [eax + 0x31c]
cmp dword [esi], 0
je 0x422a36
push 1
push dword [eax + 0x2d4]
call dword [sym.imp.USER32.dll_KillTimer]
mov eax, dword [esi]
pop esi
jmp fcn.0041d6c6
pop esi
ret
Function at 0x42d199
Capabilities:
Log keystrokes via polling

Disassembly:
push ebp
mov ebp, esp
and esp, 0xfffffff8
push ecx
push ebx
push esi
push edi
mov esi, ecx
xor edi, edi
cmp dword [esi + 0x244], edi
jg 0x42d1b6
xor eax, eax
jmp 0x42d387
mov eax, esi
call fcn.0042cbf0
mov ebx, eax
cmp dword [esi + 0x254], edi
je 0x42d204
cmp dword [esi + 0x268], edi
jl 0x42d204
cmp dword [esi + 0x26c], edi
jl 0x42d204
push 0xa0
call dword [sym.imp.USER32.dll_GetKeyState]
cwde
mov edi, 0x10000
test edi, eax
jne 0x42d1fc
push 0xa1
call dword [sym.imp.USER32.dll_GetKeyState]
cwde
test edi, eax
je 0x42d209
mov ebx, dword [esi + 0x26c]
jmp 0x42d209
mov edi, 0x10000
mov eax, dword [ebp + 8]
sub eax, 0x21
je 0x42d2ba
dec eax
je 0x42d297
dec eax
je 0x42d28e
dec eax
je 0x42d286
dec eax
dec eax
je 0x42d26f
dec eax
dec eax
je 0x42d252
sub eax, 0x19
jne 0x42d1af
cmp dword [esi + 0x254], eax
je 0x42d1af
push 0x11
call dword [sym.imp.USER32.dll_GetKeyState]
cwde
test edi, eax
je 0x42d1af
call fcn.0042ca3c
jmp 0x42d1af
mov edi, ebx
inc edi
inc ebx
neg edi
sbb edi, edi
and edi, ebx
cmp dword [esi + 0x278], 0
je 0x42d2ab
cmp dword [esi + 0x244], edi
jg 0x42d2ce
jmp 0x42d2cc
mov edi, ebx
inc edi
dec ebx
neg edi
sbb edi, edi
and edi, ebx
cmp dword [esi + 0x278], 0
jne 0x42d28a
test edi, edi
jge 0x42d2d6
xor edi, edi
jmp 0x42d2d6
test edi, edi
jge 0x42d2d6
mov edi, dword [esi + 0x244]
dec edi
jmp 0x42d2ce
cmp ebx, 0xffffffff
jne 0x42d2a0
xor edi, edi
jmp 0x42d2ab
mov eax, esi
call fcn.0042d11d
mov edi, eax
add edi, ebx
mov eax, dword [esi + 0x244]
dec eax
cmp eax, edi
jge 0x42d2ce
mov edi, eax
jmp 0x42d2ce
cmp ebx, 0xffffffff
je 0x42d286
mov eax, esi
call fcn.0042d11d
sub ebx, eax
mov edi, ebx
jns 0x42d2d6
xor edi, edi
test edi, edi
jl 0x42d1af
cmp dword [esi + 0x254], 0
je 0x42d332
cmp dword [esi + 0x268], 0
jl 0x42d332
mov ebx, dword [sym.imp.USER32.dll_GetKeyState]
push 0xa0
call ebx
cwde
test eax, 0x10000
jne 0x42d30c
push 0xa1
call ebx
cwde
test eax, 0x10000
je 0x42d332
mov ebx, dword [esi + 0x268]
mov dword [esp + 0xc], ebx
call fcn.0042cd38
mov ecx, ebx
mov eax, edi
mov ebx, esi
call fcn.0042ce4f
mov eax, dword [esp + 0xc]
mov dword [esi + 0x268], eax
jmp 0x42d348
call fcn.0042cd38
xor eax, eax
push edi
inc eax
mov ecx, esi
call fcn.0042c9de
mov dword [esi + 0x268], edi
push 0
lea ebx, [esi + 0x118]
push dword [ebx]
mov eax, esi
push dword [0x488808]
mov dword [esi + 0x274], edi
mov dword [esi + 0x26c], edi
call fcn.00427aff
mov ecx, dword [esi + 0x260]
test ecx, ecx
je 0x42d37b
push dword [ebx]
mov eax, dword [ecx]
call dword [eax]
mov eax, edi
mov ecx, esi
call fcn.0042d14c
xor eax, eax
inc eax
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret 0xc
Function at 0x431784
Capabilities:
Link many functions at runtime

Disassembly:
push ebx
xor ebx, ebx
cmp dword [esi + 0x20], ebx
jne 0x431832
cmp dword [esi + 0x24], ebx
jne 0x431832
push edi
push 0x4786f4
call fcn.00404bde
mov edi, dword [sym.imp.KERNEL32.dll_GetProcAddress]
pop ecx
mov dword [esi + 0x20], eax
cmp eax, ebx
je 0x4317cc
push str.GetDpiForMonitor
push eax
call edi
push str.SetProcessDpiAwareness
push dword [esi + 0x20]
mov dword [esi + 4], eax
call edi
mov dword [esi + 0xc], eax
jmp 0x4317d2
mov dword [esi + 4], ebx
mov dword [esi + 0xc], ebx
push str.user32.dll
call fcn.00404bde
pop ecx
mov dword [esi + 0x24], eax
cmp eax, ebx
je 0x431825
push str.SetProcessDpiAwarenessContext
push eax
call edi
push str.SetDialogControlDpiChangeBehavior
push dword [esi + 0x24]
mov dword [esi + 8], eax
call edi
push str.GetDpiForWindow
push dword [esi + 0x24]
mov dword [esi + 0x10], eax
call edi
push str.SystemParametersInfoForDpi
push dword [esi + 0x24]
mov dword [esi + 0x14], eax
call edi
push str.EnableNonClientDpiScaling
push dword [esi + 0x24]
mov dword [esi + 0x18], eax
call edi
mov dword [esi + 0x1c], eax
jmp 0x431831
mov dword [esi + 8], ebx
mov dword [esi + 0x10], ebx
mov dword [esi + 0x14], ebx
mov dword [esi + 0x18], ebx
pop edi
pop ebx
ret