joyce8/EMBER2024-capa huggingface dataset:
Function at 0x442be0
Capabilities:
Create process on windows
Hide graphical window

Disassembly:
push ebp
mov ebp, esp
sub esp, 0x5c
mov eax, dword [ebp + 8]
xorps xmm0, xmm0
push ebx
push esi
push edi
mov edi, dword [0x4a35d4]
mov dword [ebp - 0x48], eax
lea eax, [ebp - 0x5c]
push eax
mov dword [ebp - 4], edi
mov dword [ebp - 0x54], 0
mov dword [ebp - 0x44], 0
movlpd qword [ebp - 0x3c], xmm0
movlpd qword [ebp - 0x34], xmm0
movlpd qword [ebp - 0x2c], xmm0
mov dword [ebp - 0x24], 0
mov dword [ebp - 0x5c], 0x3c
mov dword [ebp - 0x58], 0x440
mov dword [ebp - 0x50], str.open
mov dword [ebp - 0x4c], edx
mov dword [ebp - 0x40], 5
call dword [sym.imp.SHELL32.dll_ShellExecuteExW]
test eax, eax
je 0x442cf5
mov ebx, dword [ebp + 0xc]
test bl, 1
je 0x442ce3
call fcn.00425c00
mov esi, dword [sym.imp.USER32.dll_ShowWindow]
and ebx, 2
je 0x442c82
push 0
push dword [edi + 0x10]
call esi
mov eax, dword [edi + 0x4c4]
test eax, eax
je 0x442c82
push 0
push eax
call esi
mov edi, dword [sym.imp.USER32.dll_MsgWaitForMultipleObjects]
lea eax, [ebp + 8]
push eax
push dword [ebp - 0x24]
call dword [sym.imp.KERNEL32.dll_GetExitCodeProcess]
test eax, eax
je 0x442cc0
cmp dword [ebp + 8], 0x103
jne 0x442cc0
xor edx, edx
lea ecx, [ebp - 0x20]
call fcn.004014a0
push 0x4ff
push 0xc8
push 0
push 0
push 0
call edi
jmp 0x442c88
test bx, bx
je 0x442cde
mov edi, dword [ebp - 4]
push 5
push dword [edi + 0x10]
call esi
mov eax, dword [edi + 0x4c4]
test eax, eax
je 0x442cde
push 5
push eax
call esi
call fcn.00425d00
push dword [ebp - 0x24]
call dword [sym.imp.KERNEL32.dll_CloseHandle]
xor eax, eax
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret
pop edi
pop esi
mov eax, 1
pop ebx
mov esp, ebp
pop ebp
ret

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

Disassembly:
push ebp
mov ebp, esp
push esi
mov esi, dword [ebp + 8]
mov ecx, dword [esi + 0x4c]
mov eax, dword [esi + 0x60]
mov edx, dword [esi + 0x54]
mov dword [esi + 0x104], ecx
sub ecx, dword [esi + 0x58]
add eax, ecx
mov dword [esi + 0x108], edx
sub edx, dword [esi + 0x5c]
mov dword [esi + 0x120], eax
mov eax, dword [esi + 0x64]
add eax, edx
mov dword [esi + 0x118], ecx
mov dword [esi + 0x124], eax
mov ecx, esi
mov eax, dword [esi + 0xdc]
mov dword [esi + 0x10c], eax
mov eax, dword [esi + 0xe8]
mov dword [esi + 0x11c], edx
mov edx, 1
mov dword [esi + 0x110], eax
pop esi
pop ebp
jmp fcn.0044b000
Function at 0x456910
Capabilities:
Read file on windows

Disassembly:
push ebp
mov ebp, esp
sub esp, 0x10
push ebx
push esi
push edi
mov ebx, ecx
mov byte [ebp - 1], 0
xor edi, edi
lea ecx, [ebp - 0x10]
push edi
push ecx
push 1
lea ecx, [ebp - 1]
mov eax, edx
push ecx
push eax
mov dword [ebp - 0xc], eax
call dword [sym.imp.KERNEL32.dll_ReadFile]
test eax, eax
je 0x456999
cmp byte [ebp - 1], 0
je 0x456994
push dword [ebx + 0x2ac]
mov edx, dword [ebx + 0x44]
mov ecx, ebx
push edi
call fcn.00455dd0
mov ecx, dword [ebx + 0x2a4]
add esp, 8
test ecx, ecx
je 0x456999
call fcn.00401410
mov ecx, dword [ebx + 0x2a4]
xor edx, edx
mov esi, eax
call fcn.00404e80
mov ecx, dword [ebp - 0xc]
lea edx, [ebp - 8]
mov dword [ebp - 8], edi
call fcn.00431380
mov ecx, esi
mov edi, eax
call fcn.00401410
mov eax, edi
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret
mov edi, 1
mov eax, edi
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret

Function at 0x457f30
Capabilities:
Log keystrokes via polling

Disassembly:
push ebp
mov ebp, esp
sub esp, 0xc
push ebx
mov ebx, dword [0x4a35d4]
mov dword [ebp - 8], ecx
xor ecx, ecx
mov dword [ebp - 4], edx
test ebx, ebx
jne 0x457f50
xor eax, eax
pop ebx
mov esp, ebp
pop ebp
ret
push esi
push edi
cmp edx, 0x100
jne 0x457f9b
cmp dword [ebp + 8], 9
jne 0x457ff6
cmp dword [ebx + 0x518], ecx
jle 0x457ff6
push 0x10
call dword [sym.imp.USER32.dll_GetKeyState]
mov ecx, ebx
test ax, ax
js 0x457f86
call fcn.00433cd0
jmp 0x457f8b
call fcn.00433e90
test eax, eax
je 0x457ff1
pop edi
pop esi
mov eax, 4
pop ebx
mov esp, ebp
pop ebp
ret
cmp edx, 5
jne 0x457ff6
mov eax, dword [ebx + 0x18]
test byte [eax + 0x14], 0x10
je 0x457ff6
cmp byte [ebx + 0x4c8], cl
je 0x457ff6
mov esi, dword [ebx + 0x1278]
xor edi, edi
cmp dword [ebx + 0x3c], ecx
jle 0x457ff6
nop
mov eax, dword [esi]
test eax, eax
jne 0x457fd0
mov eax, dword [esi + 8]
add esi, 8
test eax, eax
je 0x457fc6
test byte [eax + 0x7c], 4
jne 0x457fe8
test dword [eax + 0x78], 0x2b0
je 0x457fe8
push eax
mov eax, dword [eax + 0x8c]
call eax
inc edi
add esi, 8
cmp edi, dword [ebx + 0x3c]
jl 0x457fc0
mov edx, dword [ebp - 4]
xor ecx, ecx
movsx eax, word [ebx + 0x1d8]
mov dword [ebp - 0xc], eax
test eax, eax
je 0x458033
xor esi, esi
test eax, eax
jle 0x458033
lea edi, [ebx + 0x1dc]
push dword [ebp + 0xc]
mov eax, dword [edi]
push dword [ebp + 8]
push edx
push dword [ebp - 8]
push ebx
call eax
movsx ecx, ax
test cl, 0x5c
jne 0x458033
mov edx, dword [ebp - 4]
inc esi
add edi, 4
cmp esi, dword [ebp - 0xc]
jl 0x458010
pop edi
pop esi
mov eax, ecx
pop ebx
mov esp, ebp
pop ebp
ret
Function at 0x458040
Capabilities:
Hide graphical window

Disassembly:
push ebp
mov ebp, esp
sub esp, 0x20
push dword [0x4a35a8]
call dword [sym.imp.USER32.dll_IsWindowVisible]
mov dword [ebp - 4], eax
test eax, eax
je 0x458067
push 0
push dword [0x4a35a8]
call dword [sym.imp.USER32.dll_ShowWindow]
push ebx
push esi
push edi
push 0x304
push 0
push 0
call dword [sym.imp.USER32.dll_GetDesktopWindow]
mov edi, dword [sym.imp.USER32.dll_RedrawWindow]
push eax
call edi
mov ebx, dword [sym.imp.USER32.dll_GetWindow]
push 0
push dword [0x4a35a8]
call ebx
mov esi, eax
test esi, esi
je 0x4580b7
nop dword [eax + eax]
push 0x100
push 0
push 0
push esi
call edi
push 2
push esi
call ebx
mov esi, eax
test esi, esi
jne 0x4580a0
mov eax, dword [0x4a35cc]
cmp dword [eax + 0x1fc], 0
jne 0x45810e
mov esi, dword [sym.imp.USER32.dll_PeekMessageW]
lea eax, [ebp - 0x20]
push 1
push 0
push 0
push 0
push eax
call esi
test eax, eax
je 0x45810e
mov edi, dword [sym.imp.USER32.dll_TranslateMessage]
mov ebx, dword [sym.imp.USER32.dll_DispatchMessageW]
nop dword [eax]
lea eax, [ebp - 0x20]
push eax
call edi
lea eax, [ebp - 0x20]
push eax
call ebx
push 1
push 0
push 0
push 0
lea eax, [ebp - 0x20]
push eax
call esi
test eax, eax
jne 0x4580f0
push dword [0x4a35a4]
call dword [sym.imp.MMFS2.dll_Ordinal_35]
cmp dword [ebp - 4], 0
pop edi
pop esi
pop ebx
je 0x458131
push 5
push dword [0x4a35a8]
call dword [sym.imp.USER32.dll_ShowWindow]
mov esp, ebp
pop ebp
ret
Function at 0x458c80
Capabilities:
Hide graphical window

Disassembly:
push ebp
mov ebp, esp
sub esp, 0x30
mov eax, dword [0x4a1014]
xor eax, ebp
mov dword [ebp - 4], eax
push esi
mov esi, dword [0x4a35cc]
push edi
mov ax, word [esi + 0x14]
mov word [esi + 0x1f8], ax
push dword [0x4a35a8]
call dword [sym.imp.USER32.dll_GetMenu]
test eax, eax
setne al
mov byte [esi + 0x3d1], al
push dword [0x4a35a8]
call dword [sym.imp.USER32.dll_IsWindowVisible]
mov edi, dword [sym.imp.USER32.dll_ShowWindow]
test eax, eax
jne 0x458d1b
push 1
push dword [0x4a35a8]
call edi
push dword [0x4a35ac]
call dword [sym.imp.USER32.dll_IsWindowVisible]
test eax, eax
jne 0x458cf4
push 1
push dword [0x4a35ac]
call edi
mov ax, word [esi + 0x14]
mov ecx, 0x180
and ax, cx
mov ecx, 0x100
cmp ax, cx
jne 0x458d16
call fcn.00459ac0
mov byte [esi + 0x3d1], 1
call fcn.00457ca0
mov dword [esi + 0x20c], 0
lea eax, [esi + 0x208]
mov dword [esi + 0x210], 0
mov dword [esi + 0x214], 0
mov dword [esi + 0x218], 0
mov dword [esi + 0x21c], 0
mov dword [esi + 0x220], 0
mov dword [esi + 0x224], 0
mov dword [esi + 0x228], 0
mov dword [esi + 0x22c], 0
mov dword [esi + 0x230], 0
push eax
mov dword [eax], 0x2c
push dword [0x4a35a8]
call dword [sym.imp.USER32.dll_GetWindowPlacement]
push dword [0x4a35a8]
call dword [sym.imp.USER32.dll_IsZoomed]
test eax, eax
je 0x458db2
push 1
push dword [0x4a35a8]
call edi
mov ax, word [esi + 0x14]
mov ecx, 0xfefe
and ax, cx
mov ecx, 0x82
or ax, cx
test byte [esi + 0x1f8], 0x10
mov word [esi + 0x14], ax
jne 0x458e5a
mov ecx, dword [0x4a35d0]
test ecx, ecx
je 0x458e36
movsx eax, word [esi + 0x1c]
cmp dword [ecx], eax
jl 0x458e36
movsx eax, word [esi + 0x1e]
cmp dword [ecx + 4], eax
jl 0x458e36
push 2
push dword [0x4a35a8]
call dword [sym.imp.USER32.dll_MonitorFromWindow]
test eax, eax
je 0x458e36
lea ecx, [ebp - 0x2c]
mov dword [ebp - 0x2c], 0x28
push ecx
push eax
call dword [sym.imp.USER32.dll_GetMonitorInfoW]
test eax, eax
je 0x458e36
mov ecx, dword [ebp - 0x20]
sub ecx, dword [ebp - 0x28]
movsx eax, word [esi + 0x1c]
cmp eax, ecx
jne 0x458e36
mov ecx, dword [ebp - 0x1c]
sub ecx, dword [ebp - 0x24]
movsx eax, word [esi + 0x1e]
cmp eax, ecx
je 0x458e5a
or word [esi + 0x14], 0x14
push dword [0x4a35a4]
call dword [sym.imp.MMFS2.dll_Ordinal_16]
movzx eax, ax
or eax, 2
push eax
push dword [0x4a35a4]
call dword [sym.imp.MMFS2.dll_Ordinal_17]
call fcn.00457de0
mov eax, dword [esi + 0xb0]
test eax, eax
je 0x458e8f
push 0
push 0x401
push eax
call dword [sym.imp.USER32.dll_GetMenuState]
cmp eax, 0xffffffff
je 0x458e8f
push 8
push 0x401
push dword [esi + 0xb0]
call dword [sym.imp.USER32.dll_CheckMenuItem]
call fcn.00459d00
call fcn.00457ca0
call fcn.004578c0
push 3
push dword [0x4a35a8]
call edi
mov esi, dword [sym.imp.USER32.dll_InvalidateRect]
push 1
push 0
push dword [0x4a35ac]
call esi
push 1
push 0
push dword [0x4a35a8]
call esi
mov ecx, dword [ebp - 4]
pop edi
xor ecx, ebp
mov dword [0x4a35e0], 1
pop esi
call fcn.0046336c
mov esp, ebp
pop ebp
ret
Function at 0x459dc0
Capabilities:
Log keystrokes via polling

Disassembly:
push ebp
mov ebp, esp
push ecx
push ebx
push esi
mov esi, dword [ebp + 0xc]
mov ebx, edx
push edi
xor edi, edi
mov dword [ebp - 4], ecx
test esi, esi
je 0x459e98
mov eax, dword [ebp + 8]
nop dword [eax]
cmp ax, word [esi + 2]
jne 0x459e32
test byte [esi], 0x10
je 0x459df1
test ebx, ebx
jne 0x459df5
jmp 0x459e32
test ebx, ebx
jne 0x459e32
push 0x11
call dword [sym.imp.USER32.dll_GetKeyState]
test byte [esi], 8
cwde
je 0x459e09
test eax, eax
jns 0x459e2f
jmp 0x459e0d
test eax, eax
js 0x459e2f
push 0x10
call dword [sym.imp.USER32.dll_GetKeyState]
mov cl, byte [esi]
cwde
test cl, 4
je 0x459e23
test eax, eax
jns 0x459e2b
jmp 0x459e27
test eax, eax
js 0x459e2b
movzx edi, word [esi + 4]
test edi, edi
jne 0x459e3c
mov eax, dword [ebp + 8]
cmp byte [esi], 0
jl 0x459e98
add esi, 8
jmp 0x459de0
test cl, 0x40
je 0x459e6f
cmp edi, 0x7d0
jl 0x459e77
mov esi, dword [ebp - 4]
push 0
movzx eax, di
or eax, 0x10000
push eax
push 0x111
push esi
call dword [sym.imp.USER32.dll_PostMessageW]
pop edi
pop esi
mov eax, 1
pop ebx
mov esp, ebp
pop ebp
ret
cmp edi, 0x7d0
jl 0x459e49
mov esi, dword [ebp - 4]
push esi
call dword [sym.imp.USER32.dll_GetMenu]
test eax, eax
je 0x459e98
push 0
push edi
push eax
call dword [sym.imp.USER32.dll_GetMenuState]
cmp eax, 0xffffffff
je 0x459e98
test al, 1
je 0x459e4c
pop edi
pop esi
xor eax, eax
pop ebx
mov esp, ebp
pop ebp
ret

Function at 0x459f00
Capabilities:
Log keystrokes

Disassembly:
push ebp
mov ebp, esp
sub esp, 0x84
mov eax, dword [0x4a1014]
xor eax, ebp
mov dword [ebp - 4], eax
push esi
push edi
mov edi, ecx
mov esi, edx
xor eax, eax
mov word [edi], ax
lea eax, [esi - 0x60]
cmp eax, 9
ja 0x459f4f
push 0x3f
lea edx, [ebp - 0x84]
mov ecx, 0x65
call fcn.00458a70
lea eax, [esi - 0x60]
push eax
lea eax, [ebp - 0x84]
push eax
push edi
call dword [sym.imp.USER32.dll_wsprintfW]
add esp, 0x10
jmp 0x459f94
lea eax, [esi - 0x70]
cmp eax, 0x17
ja 0x459f6c
lea eax, [esi - 0x6f]
push eax
push 0x49290c
push edi
call dword [sym.imp.USER32.dll_wsprintfW]
add esp, 0xc
jmp 0x459f94
xor ecx, ecx
nop
cmp dword [ecx*8 + 0x48fac8], esi
je 0x459f81
inc ecx
cmp ecx, 0x14
jl 0x459f70
jmp 0x459f94
mov ecx, dword [ecx*8 + 0x48facc]
mov edx, edi
push 0x3f
call fcn.00458a70
add esp, 4
cmp word [edi], 0
jne 0x459fac
push 2
xor eax, eax
push esi
mov word [edi + 2], ax
call dword [sym.imp.USER32.dll_MapVirtualKeyW]
mov word [edi], ax
mov ecx, dword [ebp - 4]
pop edi
xor ecx, ebp
pop esi
call fcn.0046336c
mov esp, ebp
pop ebp
ret
Function at 0x45a2d0
Capabilities:
Hide graphical window

Disassembly:
push ebp
mov ebp, esp
sub esp, 0x108
mov eax, dword [0x4a1014]
xor eax, ebp
mov dword [ebp - 4], eax
push ebx
mov ebx, dword [sym.imp.USER32.dll_GetDlgItem]
push esi
push edi
push 0
mov edi, ecx
mov dword [ebp - 0x108], edx
push 0x78
push edi
call ebx
push eax
call dword [sym.imp.USER32.dll_ShowWindow]
xor esi, esi
mov ecx, dword [ebp - 0x108]
movsx eax, word [ecx + 0x12]
cmp esi, eax
jne 0x45a336
movsx edx, word [ecx + esi*2]
lea ecx, [ebp - 0x104]
call fcn.00459f00
lea eax, [ebp - 0x104]
push eax
lea eax, [esi + 0x6e]
push eax
push edi
call ebx
push eax
call dword [sym.imp.USER32.dll_SetWindowTextW]
push 1
lea eax, [esi + 0x6e]
push eax
push edi
call ebx
push eax
call dword [sym.imp.USER32.dll_ShowWindow]
inc esi
cmp esi, 8
jl 0x45a304
mov ecx, dword [ebp - 4]
pop edi
pop esi
xor ecx, ebp
pop ebx
call fcn.0046336c
mov esp, ebp
pop ebp
ret
Function at 0x45ba00
Capabilities:
Check os version

Disassembly:
push ebp
mov ebp, esp
sub esp, 0x31c
mov eax, dword [0x4a1014]
xor eax, ebp
mov dword [ebp - 4], eax
mov eax, dword [0x4a3758]
push esi
test eax, eax
jne 0x45bad6
push 0x11
call dword [sym.imp.GDI32.dll_GetStockObject]
mov dword [0x4a3758], eax
mov esi, 1
lea eax, [ebp - 0x120]
mov dword [ebp - 0x120], 0x114
push eax
call dword [sym.imp.KERNEL32.dll_GetVersionExW]
test eax, eax
je 0x45ba6d
cmp dword [ebp - 0x110], 2
jne 0x45ba6d
cmp dword [ebp - 0x11c], 5
ja 0x45ba6b
jne 0x45ba6d
cmp dword [ebp - 0x118], 0
je 0x45ba6d
xor esi, esi
push 0x1f4
lea eax, [ebp - 0x314]
push 0
push eax
lea esi, [esi*4 + 0x1f4]
call fcn.00464ce0
add esp, 0xc
mov dword [ebp - 0x318], esi
lea eax, [ebp - 0x318]
push 0
push eax
push esi
push 0x29
call dword [sym.imp.USER32.dll_SystemParametersInfoW]
test eax, eax
je 0x45bad1
lea eax, [ebp - 0x238]
push eax
call dword [sym.imp.GDI32.dll_CreateFontIndirectW]
mov dword [0x4a3758], eax
mov dword [0x4a3754], 1
pop esi
mov ecx, dword [ebp - 4]
xor ecx, ebp
call fcn.0046336c
mov esp, ebp
pop ebp
ret
mov eax, dword [0x4a3758]
mov ecx, dword [ebp - 4]
xor ecx, ebp
pop esi
call fcn.0046336c
mov esp, ebp
pop ebp
ret
Function at 0x45e6a0
Capabilities:
Encode data using xor

Disassembly:
push ebp
mov ebp, esp
sub esp, 0x424
mov eax, dword [0x4a1014]
xor eax, ebp
mov dword [ebp - 4], eax
movaps xmm1, xmmword [0x492c40]
xor al, al
push ebx
push esi
mov byte [ebp - 0x412], al
lea esi, [ebp - 0x3fc]
push edi
mov edi, dword [ebp + 8]
mov al, 0x36
mov dword [ebp - 0x420], edx
mov ah, 1
mov dword [ebp - 0x424], ecx
mov edx, 8
mov dword [ebp - 0x41c], edi
mov byte [ebp - 0x411], al
mov dword [ebp - 0x410], 0
mov dword [ebp - 0xc], 0
lea ecx, [edx - 8]
movd xmm0, ecx
lea esi, [esi + 0x40]
pshufd xmm0, xmm0, 0
lea ecx, [edx - 4]
paddd xmm0, xmm1
movups xmmword [esi - 0x50], xmm0
movd xmm0, ecx
lea ecx, [edx + 4]
pshufd xmm0, xmm0, 0
paddd xmm0, xmm1
movups xmmword [esi - 0x40], xmm0
movd xmm0, edx
add edx, 0x10
pshufd xmm0, xmm0, 0
paddd xmm0, xmm1
movups xmmword [esi - 0x30], xmm0
movd xmm0, ecx
lea ecx, [edx - 8]
pshufd xmm0, xmm0, 0
paddd xmm0, xmm1
movups xmmword [esi - 0x20], xmm0
cmp ecx, 0x100
jl 0x45e700
xor esi, esi
xor ebx, ebx
xor edx, edx
mov dword [ebp - 0x418], edx
nop word [eax + eax]
mov cl, al
shr al, 1
shl cl, 7
add al, cl
test ah, ah
je 0x45e7a5
movzx edx, byte [esi + edi]
mov cl, al
and cl, 1
add cl, 2
movzx ecx, cl
imul edx, ecx
mov ch, byte [ebp - 0x411]
add ch, dl
mov edx, dword [ebp - 0x418]
mov byte [ebp - 0x411], ch
jmp 0x45e7ab
mov ch, byte [ebp - 0x411]
mov cl, byte [esi + edi]
xor cl, al
jne 0x45e7cb
test ah, ah
je 0x45e7c1
cmp ch, byte [esi + edi + 1]
sete byte [ebp - 0x412]
mov cl, byte [edi]
mov al, 0x1b
xor ah, ah
xor esi, esi
xor cl, al
mov edx, dword [ebp + edx*4 - 0x40c]
inc esi
mov edi, dword [ebp - 0x418]
add bl, dl
add bl, cl
movzx ebx, bl
mov ecx, dword [ebp + ebx*4 - 0x40c]
mov dword [ebp + edi*4 - 0x40c], ecx
mov dword [ebp + ebx*4 - 0x40c], edx
mov edx, edi
mov edi, dword [ebp - 0x41c]
inc edx
mov dword [ebp - 0x418], edx
cmp edx, 0x100
jl 0x45e770
cmp byte [ebp - 0x412], 0
je 0x45e888
mov edi, dword [ebp - 0x420]
xor esi, esi
mov edx, dword [ebp - 0x410]
mov ebx, dword [ebp - 0xc]
test edi, edi
jle 0x45e872
nop
inc dl
movzx edx, dl
mov ecx, dword [ebp + edx*4 - 0x40c]
mov al, cl
add al, bl
movzx ebx, al
mov eax, dword [ebp + ebx*4 - 0x40c]
mov dword [ebp + edx*4 - 0x40c], eax
mov dword [ebp + ebx*4 - 0x40c], ecx
add cl, al
movzx eax, cl
mov ecx, dword [ebp - 0x424]
mov al, byte [ebp + eax*4 - 0x40c]
xor byte [esi + ecx], al
inc esi
cmp esi, edi
jl 0x45e830
mov eax, 1
pop edi
pop esi
pop ebx
mov ecx, dword [ebp - 4]
xor ecx, ebp
call fcn.0046336c
mov esp, ebp
pop ebp
ret
mov ecx, dword [ebp - 4]
xor eax, eax
pop edi
pop esi
xor ecx, ebp
pop ebx
call fcn.0046336c
mov esp, ebp
pop ebp
ret
Function at 0x45f790
Capabilities:
Encode data using xor
Hash data with crc32

Disassembly:
push ebp
mov ebp, esp
test edx, edx
jne 0x45f79b
xor eax, eax
pop ebp
ret
pop ebp
jmp fcn.0045f7b0
Function at 0x46859c
Capabilities:
Get common file path
Set current directory

Disassembly:
mov edi, edi
push ebp
mov ebp, esp
pop ebp
jmp fcn.00468413
Function at 0x4059bd
Capabilities:
Write file on windows

Disassembly:
push ebp
mov ebp, esp
sub esp, 0x1a4
mov edx, dword [ebp + 8]
xor ecx, ecx
mov eax, 0x40fba0
cmp edx, dword [eax]
je 0x4059df
add eax, 8
inc ecx
cmp eax, 0x40fc30
jl 0x4059d0
push esi
mov esi, ecx
shl esi, 3
cmp edx, dword [esi + 0x40fba0]
jne 0x405b0d
mov eax, dword [0x41f1f0]
cmp eax, 1
je 0x405ae7
test eax, eax
jne 0x405a10
cmp dword [0x40faec], 1
je 0x405ae7
cmp edx, 0xfc
je 0x405b0d
lea eax, [ebp - 0x1a4]
push 0x104
push eax
push 0
call dword [sym.imp.KERNEL32.dll_GetModuleFileNameA]
test eax, eax
jne 0x405a47
lea eax, [ebp - 0x1a4]
push str._program_name_unknown_
push eax
call fcn.004067c0
pop ecx
pop ecx
lea eax, [ebp - 0x1a4]
push edi
push eax
lea edi, [ebp - 0x1a4]
call fcn.00405e80
inc eax
pop ecx
cmp eax, 0x3c
jbe 0x405a8a
lea eax, [ebp - 0x1a4]
push eax
call fcn.00405e80
mov edi, eax
lea eax, [ebp - 0x1a4]
sub eax, 0x3b
push 3
add edi, eax
push 0x40841c
push edi
call fcn.00406940
add esp, 0x10
lea eax, [ebp - 0xa0]
push str.Runtime_Error__n_nProgram:
push eax
call fcn.004067c0
lea eax, [ebp - 0xa0]
push edi
push eax
call fcn.004067d0
lea eax, [ebp - 0xa0]
push 0x4083fc
push eax
call fcn.004067d0
push dword [esi + 0x40fba4]
lea eax, [ebp - 0xa0]
push eax
call fcn.004067d0
push 0x12010
lea eax, [ebp - 0xa0]
push str.Microsoft_Visual_C_Runtime_Library
push eax
call fcn.004068b0
add esp, 0x2c
pop edi
jmp 0x405b0d
lea eax, [ebp + 8]
lea esi, [esi + 0x40fba4]
push 0
push eax
push dword [esi]
call fcn.00405e80
pop ecx
push eax
push dword [esi]
push 0xfffffffffffffff4
call dword [sym.imp.KERNEL32.dll_GetStdHandle]
push eax
call dword [sym.imp.KERNEL32.dll_WriteFile]
pop esi
leave
ret

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

Disassembly:
pushal
nop
nop
nop
nop
nop
call 0x43300c
nop
pop eax
nop
nop
nop
nop
add eax, 0x40a063
nop
nop
sub eax, 0x40a009
nop
nop
nop
nop
mov ebx, dword [eax]
nop
nop
mov ecx, dword [eax + 4]
nop
mov edx, dword [eax + 8]
nop
nop
nop
nop
nop
xor dword [ebx], edx
nop
nop
nop
nop
add ebx, 4
nop
cmp ebx, ecx
nop
nop
nop
nop
nop
nop
nop
jl 0x433030
nop
add eax, 0xc
nop
nop
nop
cmp dword [eax], 0
nop
nop
nop
nop
nop
nop
jne 0x43301e
nop
popal
nop
nop
nop
nop
nop
jmp 0x431219
Function at 0x808290
Capabilities:
Allocate or change rwx memory

Disassembly:
push ecx
mov eax, 0x6b
mov edx, 0x72
mov word [0xb92a90], ax
mov word [0xb92a94], dx
mov ecx, 0x6e
mov edx, 0x65
xor eax, eax
push 0xb92a90
mov dword [0xb92a9c], 0x320033
mov dword [0xb92aa4], 0x6c006c
mov word [0xb92a96], cx
mov dword [0xb92a98], 0x6c0065
mov dword [0xb92aa0], 0x64002e
mov word [0xb92a92], dx
mov word [0xb92aa8], ax
call dword [sym.imp.KERNEL32.dll_LoadLibraryW]
mov edx, dword [0xb92a8c]
lea ecx, [esp]
push ecx
push 0x40
mov dword [0xb92a88], eax
mov eax, dword [0x813adc]
push edx
push eax
mov byte [0x80ed53], 0x65
mov dword [0x80ed49], 0x75747269
mov word [0x80ed4d], 0x6c61
mov byte [0x80ed48], 0x56
mov word [0x80ed54], 0x7463
mov byte [0x80ed56], 0
mov dword [0x80ed4f], 0x746f7250
call dword [sym.imp.KERNEL32.dll_VirtualProtect]
pop ecx
ret

Function at 0x808380
Capabilities:
Delete directory
Get common file path
Manipulate console buffer

Disassembly:
mov eax, 0x1050
call fcn.0040cf70
cmp dword [0xb92a8c], 0x37
jne 0x808454
push 0
call dword [sym.imp.KERNEL32.dll_DebugActiveProcessStop]
lea eax, [esp + 0xc]
push eax
call dword [sym.imp.KERNEL32.dll_GetStartupInfoA]
push 0x4046b4
call dword [sym.imp.KERNEL32.dll_RemoveDirectoryA]
push 0
push 0
call dword [sym.imp.KERNEL32.dll_SetStdHandle]
mov ecx, dword [esp]
push 0
push ecx
push 0
call dword [sym.imp.KERNEL32.dll_MapUserPhysicalPages]
push 0
lea edx, [esp + 0x454]
push edx
push 0x4046bc
call dword [sym.imp.KERNEL32.dll_GetShortPathNameA]
push 0
lea eax, [esp + 0x54]
push eax
call dword [sym.imp.KERNEL32.dll_GetWindowsDirectoryA]
lea ecx, [esp + 4]
push ecx
push 0
push 0
push 0
call dword [sym.imp.KERNEL32.dll_WriteConsoleInputW]
lea edx, [esp + 8]
push edx
push 0x4046d0
call dword [sym.imp.KERNEL32.dll_GetCompressedFileSizeW]
push 0x4046e4
push 0x4046f4
call dword [sym.imp.KERNEL32.dll_WriteProfileSectionA]
push 0
lea eax, [esp + 0x854]
push eax
push 0
push 0x40471c
push 0
call dword [sym.imp.KERNEL32.dll_FoldStringW]
push 0
push 0
push 0
push 0x404748
push 0x404764
push 0x404774
call dword [sym.imp.KERNEL32.dll_ReplaceFileA]
mov ecx, dword [0xb93a80]
mov dword [esp], ecx
mov eax, 0x5d1
add dword [esp], eax
mov edx, dword [esp]
mov al, byte [edx + esi]
mov ecx, dword [0x813adc]
mov byte [ecx + esi], al
add esp, 0x1050
ret
Function at 0x8085e0
Capabilities:
Manipulate console buffer
Move file

Disassembly:
mov eax, dword [0xb92a8c]
sub esp, 0x2dc
push ebx
push ebp
push esi
mov esi, dword [0x813adc]
shr eax, 3
push edi
test eax, eax
je 0x80877b
mov dword [esp + 0x18], esi
mov dword [esp + 0x20], eax
jmp 0x808614
mov esi, dword [esp + 0x18]
cmp dword [0xb92a8c], 0x1c
jne 0x808631
lea eax, [esp + 0x34]
push eax
push 0
lea ecx, [esp + 0x44]
push ecx
push 0
call dword [sym.imp.KERNEL32.dll_WriteConsoleInputA]
mov edx, dword [0x80d200]
mov eax, dword [0x80d204]
mov ecx, dword [0x80d208]
mov edi, dword [esi]
mov ebx, dword [esi + 4]
mov dword [esp + 0x24], edx
mov edx, dword [0x80d20c]
mov ebp, 0xc6ef3720
mov dword [esp + 0x30], eax
mov dword [esp + 0x2c], ecx
mov dword [esp + 0x28], edx
mov dword [esp + 0x1c], 0x20
mov eax, edi
shr eax, 5
add eax, dword [esp + 0x28]
mov ecx, edi
shl ecx, 4
add ecx, dword [esp + 0x2c]
lea edx, [edi + ebp]
xor eax, ecx
xor eax, edx
sub ebx, eax
mov eax, ebx
shl eax, 4
mov dword [0xb929fc], 0
mov dword [esp + 0x14], eax
mov eax, dword [esp + 0x24]
add dword [esp + 0x14], eax
cmp dword [0xb92a8c], 0x1be
jne 0x8086bd
lea ecx, [esp + 0x38]
push ecx
push 0
push 0
push 0
call dword [sym.imp.KERNEL32.dll_WriteConsoleInputA]
mov esi, ebx
shr esi, 5
add esi, dword [esp + 0x30]
cmp dword [0xb92a8c], 0x979
mov dword [0xb92a00], 0xff6b3619
mov dword [0xb92a04], 0xffffffff
jne 0x8086fa
push 0
push 0
call dword [sym.imp.KERNEL32.dll_SetConsoleCursorInfo]
push 0
push 0
call dword [sym.imp.KERNEL32.dll_FindNextFileW]
lea eax, [ebx + ebp]
xor esi, eax
mov eax, dword [esp + 0x14]
xor eax, esi
sub edi, eax
add ebp, 0x61c88647
dec dword [esp + 0x1c]
mov dword [esp + 0x14], eax
jne 0x80866a
cmp dword [0xb92a8c], 0x8d4
jne 0x808732
lea edx, [esp + 0x50]
push edx
call dword [sym.imp.KERNEL32.dll_GetStartupInfoW]
mov esi, dword [esp + 0x18]
mov dword [esi], edi
mov dword [esi + 4], ebx
cmp dword [0xb92a8c], 0x17
jne 0x80876a
push 0
push 0
push 0
push 0x404690
push 0x4046a0
call dword [sym.imp.KERNEL32.dll_MoveFileWithProgressA]
lea eax, [esp + 0x98]
push eax
push 0
call dword [sym.imp.KERNEL32.dll_FindNextFileW]
add esi, 8
dec dword [esp + 0x20]
mov dword [esp + 0x18], esi
jne 0x808610
pop edi
pop esi
pop ebp
pop ebx
add esp, 0x2dc
ret