joyce8/EMBER2024-capa huggingface dataset:
Function at 0x40173a
Capabilities:
Get file size
Read file on windows
Write file on windows

Disassembly:
push ebp
mov ebp, esp
sub esp, 0x48
mov dword [ebp - 0xc], 0
mov dword [esp + 0x18], 0
mov dword [esp + 0x14], pe_nt_image_headers32
mov dword [esp + 0x10], 3
mov dword [esp + 0xc], 0
mov dword [esp + 8], 0
mov dword [esp + 4], 0x80000000
mov eax, dword [ebp + 8]
mov dword [esp], eax
call sym._CreateFileA_28
sub esp, 0x1c
mov dword [ebp - 0x10], eax
cmp dword [ebp - 0x10], 0xffffffff
jne 0x4017ad
call sym._GetLastError_0
mov dword [esp + 4], eax
mov dword [esp], str.CreateFile_failed_with_error__d._n
call sym._printf
mov eax, 0
jmp 0x4018d5
mov dword [esp + 4], 0
mov eax, dword [ebp - 0x10]
mov dword [esp], eax
call sym._GetFileSize_8
sub esp, 8
mov dword [ebp - 0x14], eax
cmp dword [ebp - 0x14], 0xffffffff
jne 0x4017eb
call sym._GetLastError_0
mov dword [esp + 4], eax
mov dword [esp], str.GetFileSize_failed_with_error__d._n
call sym._printf
mov eax, 0
jmp 0x4018d5
mov eax, dword [ebp - 0x14]
mov dword [esp], eax
call sym._malloc
mov dword [ebp + 0xc], eax
cmp dword [ebp + 0xc], 0
jne 0x40181e
call sym._GetLastError_0
mov dword [esp + 4], eax
mov dword [esp], str.malloc_failed_with_error__d._n
call sym._printf
mov eax, 0
jmp 0x4018d5
mov dword [esp + 0x10], 0
lea eax, [ebp - 0x1c]
mov dword [esp + 0xc], eax
mov eax, dword [ebp - 0x14]
mov dword [esp + 8], eax
mov eax, dword [ebp + 0xc]
mov dword [esp + 4], eax
mov eax, dword [ebp - 0x10]
mov dword [esp], eax
call sym._ReadFile_20
sub esp, 0x14
mov dword [ebp - 0xc], eax
cmp dword [ebp - 0xc], 0
jne 0x40186e
call sym._GetLastError_0
mov dword [esp + 4], eax
mov dword [esp], str.ReadFile_failed_with_error__d._n
call sym._printf
mov eax, 0
jmp 0x4018d5
mov dword [esp + 0x10], 0
lea eax, [ebp - 0x20]
mov dword [esp + 0xc], eax
mov eax, dword [ebp - 0x14]
mov dword [esp + 8], eax
mov eax, dword [ebp + 0xc]
mov dword [esp + 4], eax
mov eax, dword [ebp - 0x10]
mov dword [esp], eax
call sym._WriteFile_20
sub esp, 0x14
mov dword [ebp - 0xc], eax
cmp dword [ebp - 0xc], 0
jne 0x4018be
call sym._GetLastError_0
mov dword [esp + 4], eax
mov dword [esp], str.WriteFile_failed_with_error__d._n
call sym._printf
mov eax, 0
jmp 0x4018d5
mov eax, dword [ebp - 0x10]
mov dword [esp], eax
call sym._CloseHandle_4
sub esp, 4
mov eax, dword [ebp - 0x14]
mov dword [ebp - 0x18], eax
mov eax, dword [ebp - 0x18]
leave
ret
Function at 0x401b7e
Capabilities:
Create process on windows
Create process suspended
Self delete

Disassembly:
push ebp
mov ebp, esp
push edi
sub esp, 0x294
lea edx, [ebp - 0x254]
mov eax, 0
mov ecx, 0x11
mov edi, edx
rep stosd dword es:[edi], eax
mov dword [ebp - 0x254], 0x44
mov dword [esp + 8], 0x104
lea eax, [ebp - 0x10c]
mov dword [esp + 4], eax
mov dword [esp], 0
call sym._GetModuleFileNameA_12
sub esp, 0xc
lea eax, [ebp - 0x10c]
mov dword [esp + 8], eax
mov dword [esp + 4], str.cmd.exe__c_del__s
lea eax, [ebp - 0x210]
mov dword [esp], eax
call sym._wsprintfA
lea eax, [ebp - 0x264]
mov dword [esp + 0x24], eax
lea eax, [ebp - 0x254]
mov dword [esp + 0x20], eax
mov dword [esp + 0x1c], 0
mov dword [esp + 0x18], 0
mov dword [esp + 0x14], 0
mov dword [esp + 0x10], 0
mov dword [esp + 0xc], 0
mov dword [esp + 8], 0
lea eax, [ebp - 0x210]
mov dword [esp + 4], eax
mov dword [esp], 0
call sym._CreateProcessA_40
sub esp, 0x28
mov eax, dword [ebp - 0x260]
mov dword [esp], eax
call sym._CloseHandle_4
sub esp, 4
mov eax, dword [ebp - 0x264]
mov dword [esp], eax
call sym._CloseHandle_4
sub esp, 4
mov dword [esp], 0
call sym._exit
Function at 0x4024e0
Capabilities:
Get thread local storage value

Disassembly:
push esi
push ebx
sub esp, 0x14
mov dword [esp], 0x408044
call sym._EnterCriticalSection_4
mov ebx, dword [0x40803c]
sub esp, 4
test ebx, ebx
je 0x40252b
nop
mov eax, dword [ebx]
mov dword [esp], eax
call sym._TlsGetValue_4
sub esp, 4
mov esi, eax
call sym._GetLastError_0
test eax, eax
jne 0x402524
test esi, esi
je 0x402524
mov eax, dword [ebx + 4]
mov dword [esp], esi
call eax
mov ebx, dword [ebx + 8]
test ebx, ebx
jne 0x402500
mov dword [esp], 0x408044
call sym._LeaveCriticalSection_4
sub esp, 4
add esp, 0x14
pop ebx
pop esi
ret

Function at 0x402710
Capabilities:
Write file on windows

Disassembly:
push esi
push ebx
sub esp, 0x14
mov eax, dword [sym.imp.msvcrt.dll__iob]
mov dword [esp + 8], 0x17
mov dword [esp + 4], 1
lea esi, [esp + 0x24]
mov dword [esp], str.Mingw_runtime_failure:_n
lea ebx, [eax + 0x40]
mov dword [esp + 0xc], ebx
call sym._fwrite
mov eax, dword [esp + 0x20]
mov dword [esp + 8], esi
mov dword [esp], ebx
mov dword [esp + 4], eax
call sym._vfprintf
call sym._abort
lea esi, [esi]

Function at 0x402760
Capabilities:
Allocate or change rwx memory

Disassembly:
push ebp
push edi
mov edi, ecx
push esi
push ebx
mov ebx, eax
mov esi, edx
sub esp, 0x4c
lea eax, [esp + 0x24]
mov dword [esp + 8], 0x1c
mov dword [esp], ebx
mov dword [esp + 4], eax
call sym._VirtualQuery_12
sub esp, 0xc
test eax, eax
je 0x402838
mov eax, dword [esp + 0x38]
cmp eax, 0x40
je 0x40279e
cmp eax, 4
jne 0x4027c0
mov dword [esp + 8], edi
mov dword [esp + 4], esi
mov dword [esp], ebx
call sym._memcpy
add esp, 0x4c
pop ebx
pop esi
pop edi
pop ebp
ret
mov eax, dword [esp + 0x30]
lea ebp, [esp + 0x20]
mov dword [esp + 8], 0x40
mov dword [esp + 0xc], ebp
mov dword [esp + 4], eax
mov eax, dword [esp + 0x24]
mov dword [esp], eax
call sym._VirtualProtect_16
sub esp, 0x10
mov edx, dword [esp + 0x38]
mov dword [esp + 8], edi
mov dword [esp + 4], esi
mov dword [esp], ebx
mov dword [esp + 0x1c], edx
call sym._memcpy
mov edx, dword [esp + 0x1c]
cmp edx, 0x40
je 0x4027ae
cmp edx, 4
je 0x4027ae
mov eax, dword [esp + 0x20]
mov dword [esp + 0xc], ebp
mov dword [esp + 8], eax
mov eax, dword [esp + 0x30]
mov dword [esp + 4], eax
mov eax, dword [esp + 0x24]
mov dword [esp], eax
call sym._VirtualProtect_16
sub esp, 0x10
add esp, 0x4c
pop ebx
pop esi
pop edi
pop ebp
ret
mov dword [esp + 8], ebx
mov dword [esp + 4], 0x1c
mov dword [esp], str.__VirtualQuery_failed_for__d_bytes_at_address__p
call fcn.00402710
Function at 0x401390
Capabilities:
Encode data using xor

Disassembly:
push ebp
mov ebp, esp
push ecx
push esi
mov esi, dword [ebp + 8]
xor eax, eax
push edi
mov edi, edx
test esi, esi
je 0x401446
movzx ecx, byte [edi]
lea edi, [edi + 1]
shl ecx, 8
xor eax, ecx
mov ecx, eax
add eax, eax
shr ecx, 0xf
neg ecx
and ecx, 0x11021
xor ecx, eax
mov edx, ecx
shr edx, 0xf
neg edx
lea eax, [ecx + ecx]
and edx, 0x11021
xor edx, eax
mov ecx, edx
shr ecx, 0xf
neg ecx
and ecx, 0x11021
lea eax, [edx + edx]
xor ecx, eax
mov edx, ecx
shr edx, 0xf
neg edx
lea eax, [ecx + ecx]
and edx, 0x11021
xor edx, eax
mov ecx, edx
shr ecx, 0xf
neg ecx
and ecx, 0x11021
lea eax, [edx + edx]
xor ecx, eax
mov edx, ecx
shr edx, 0xf
neg edx
lea eax, [ecx + ecx]
and edx, 0x11021
xor edx, eax
mov ecx, edx
shr ecx, 0xf
neg ecx
and ecx, 0x11021
lea eax, [edx + edx]
xor ecx, eax
mov eax, ecx
add ecx, ecx
shr eax, 0xf
neg eax
and eax, 0x11021
xor eax, ecx
sub esi, 1
jne 0x4013a5
pop edi
pop esi
mov esp, ebp
pop ebp
ret

Function at 0x401510
Capabilities:
Terminate process

Disassembly:
push ebp
mov ebp, esp
push ecx
push ebx
mov ebx, dword [ebp + 0xc]
push esi
push edi
mov edi, ecx
mov dword [ebp - 4], edi
cmp ebx, 0xffff
jbe 0x401548
push str.message_too_long_n
push 2
call dword [sym.imp.api_ms_win_crt_stdio_l1_1_0.dll___acrt_iob_func]
add esp, 4
push eax
call fcn.00401050
add esp, 8
push 1
call dword [sym.imp.api_ms_win_crt_runtime_l1_1_0.dll_exit]
push ebx
cmp edx, 0x7e
jne 0x401564
push edx
push dword [edi + 4]
call sub.VCRUNTIME140.dll_memset
add esp, 0xc
mov dword [edi + 0x24], ebx
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret
mov ecx, dword [edi]
mov eax, edx
push dword [ebp + 8]
sar eax, 8
mov byte [ecx + 3], bl
mov byte [ecx], al
lea esi, [ecx + 2]
mov eax, ebx
mov dword [ebp + 0xc], ecx
shr eax, 8
mov byte [esi], al
add esi, 2
push esi
mov byte [ecx + 1], dl
call sub.VCRUNTIME140.dll_memcpy
add esi, ebx
add esp, 0xc
mov ebx, dword [ebp + 0xc]
mov eax, esi
sub eax, ebx
mov edx, ebx
test byte [edi + 0x14], 1
mov dword [ebp + 0xc], eax
je 0x4015ae
push eax
call fcn.00401390
add esp, 4
jmp 0x4015b9
push 1
push eax
call fcn.00401450
add esp, 8
mov edi, dword [ebp + 0xc]
mov ecx, eax
shr eax, 8
add edi, 2
mov byte [esi], al
mov eax, dword [ebp - 4]
mov byte [esi + 1], cl
mov esi, dword [eax + 4]
mov dword [eax + 0x20], edi
mov byte [esi], 0x7e
inc esi
test byte [eax + 0x14], 2
je 0x401621
xor eax, eax
xor edx, edx
test edi, edi
jle 0x40160b
movzx ecx, byte [edx + ebx]
cmp ecx, 0x7e
je 0x4015f2
cmp ecx, 0x7d
jne 0x4015fe
test esi, esi
je 0x4015fa
mov byte [eax + esi], 0x7d
inc eax
xor ecx, 0x20
test esi, esi
je 0x401605
mov byte [eax + esi], cl
inc edx
inc eax
cmp edx, edi
jl 0x4015e4
mov ecx, dword [ebp - 4]
mov edi, eax
lea eax, [edi + 2]
mov byte [esi + edi], 0x7e
mov dword [ecx + 0x24], eax
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret
push edi
push ebx
push esi
call sub.VCRUNTIME140.dll_memcpy
mov ecx, dword [ebp - 4]
lea eax, [edi + 2]
add esp, 0xc
mov byte [esi + edi], 0x7e
mov dword [ecx + 0x24], eax
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret
Function at 0x401640
Capabilities:
Terminate process

Disassembly:
push ebx
push esi
mov esi, ecx
push edi
mov ecx, dword [esi + 0x24]
test ecx, ecx
jne 0x40166d
push str.empty_message_n
push 2
call dword [sym.imp.api_ms_win_crt_stdio_l1_1_0.dll___acrt_iob_func]
add esp, 4
push eax
call fcn.00401050
add esp, 8
push 1
call dword [sym.imp.api_ms_win_crt_runtime_l1_1_0.dll_exit]
mov eax, dword [esi + 0x28]
mov edi, dword [sym.imp.api_ms_win_crt_stdio_l1_1_0.dll___acrt_iob_func]
cmp eax, 2
jl 0x4016aa
push ecx
push str.send___d_:_n
push 2
call edi
add esp, 4
push eax
call fcn.00401050
add esp, 0xc
push dword [esi + 0x24]
push 2
call edi
mov edx, dword [esi + 4]
add esp, 4
mov ecx, eax
call fcn.00401130
add esp, 4
jmp 0x40170c
cmp eax, 1
jl 0x40170c
mov edx, dword [esi]
mov bl, byte [edx]
cmp bl, 0x7e
jne 0x4016bf
push str.send:_check_baud_n
jmp 0x4016fc
cmp dword [esi + 0x20], 4
jl 0x4016f7
movzx ecx, byte [edx + 2]
movzx eax, byte [edx + 3]
shl ecx, 8
or ecx, eax
movzx eax, byte [edx + 1]
push ecx
movzx ecx, bl
shl ecx, 8
or ecx, eax
push ecx
push str.send:_type__0x_02x__size___d_n
push 2
call edi
add esp, 4
push eax
call fcn.00401050
add esp, 0x10
jmp 0x40170c
push str.send:_unknown_message_n
push 2
call edi
add esp, 4
push eax
call fcn.00401050
add esp, 8
mov eax, dword [esi + 0x10]
push 0
push dword [esi + 0x24]
mov eax, dword [eax]
push dword [esi + 4]
mov ecx, dword [eax + 4]
mov eax, dword [ecx]
call dword [eax + 0x20]
mov ecx, dword [esi + 0x24]
cmp eax, ecx
je 0x401747
push ecx
push eax
push str.usb_send_failed___d____d__n
push 2
call edi
add esp, 4
push eax
call fcn.00401050
add esp, 0x10
push 1
call dword [sym.imp.api_ms_win_crt_runtime_l1_1_0.dll_exit]
pop edi
pop esi
pop ebx
ret
Function at 0x401ad0
Capabilities:
Terminate process

Disassembly:
push ebp
mov ebp, esp
sub esp, 0x10
mov eax, dword [0x40a004]
xor eax, ebp
mov dword [ebp - 4], eax
push esi
push edi
push ecx
push str.Answer__yes__to_confirm_the___s__command:
call fcn.00401080
push 1
call dword [sym.imp.api_ms_win_crt_stdio_l1_1_0.dll___acrt_iob_func]
add esp, 0xc
push eax
call dword [sym.imp.api_ms_win_crt_stdio_l1_1_0.dll_fflush]
add esp, 4
lea eax, [ebp - 5]
push eax
lea eax, [ebp - 0xc]
push eax
push str._3s_c
call fcn.004010c0
add esp, 0xc
cmp eax, 2
jne 0x401b79
cmp byte [ebp - 5], 0xa
jne 0x401b79
mov eax, dword [ebp - 0xc]
test al, al
je 0x401b48
mov edi, dword [sym.imp.api_ms_win_crt_string_l1_1_0.dll_tolower]
lea esi, [ebp - 0xc]
movsx eax, al
push eax
call edi
mov byte [esi], al
lea esi, [esi + 1]
mov cl, byte [esi]
add esp, 4
mov al, cl
test cl, cl
jne 0x401b32
mov ecx, 0x4076fc
lea eax, [ebp - 0xc]
mov dl, byte [eax]
cmp dl, byte [ecx]
jne 0x401b70
test dl, dl
je 0x401b6c
mov dl, byte [eax + 1]
cmp dl, byte [ecx + 1]
jne 0x401b70
add eax, 2
add ecx, 2
test dl, dl
jne 0x401b50
xor eax, eax
jmp 0x401b75
sbb eax, eax
or eax, 1
test eax, eax
je 0x401b9a
push str.operation_is_not_confirmed_n
push 2
call dword [sym.imp.api_ms_win_crt_stdio_l1_1_0.dll___acrt_iob_func]
add esp, 4
push eax
call fcn.00401050
add esp, 8
push 1
call dword [sym.imp.api_ms_win_crt_runtime_l1_1_0.dll_exit]
mov ecx, dword [ebp - 4]
pop edi
xor ecx, ebp
pop esi
call fcn.004056f6
mov esp, ebp
pop ebp
ret
Function at 0x402050
Capabilities:
Terminate process
Write file on windows

Disassembly:
push ebp
mov ebp, esp
sub esp, 0x20
push ebx
push esi
push edi
push 0x40774c
push dword [ebp + 0xc]
mov edi, edx
mov esi, ecx
mov dword [ebp - 4], edi
mov dword [ebp - 0x14], esi
call dword [sym.imp.api_ms_win_crt_stdio_l1_1_0.dll_fopen]
add esp, 8
mov dword [ebp - 8], eax
test eax, eax
jne 0x40209c
push str.fopen_dump__failed_n
push 2
call dword [sym.imp.api_ms_win_crt_stdio_l1_1_0.dll___acrt_iob_func]
add esp, 4
push eax
call fcn.00401050
add esp, 8
push 1
call dword [sym.imp.api_ms_win_crt_runtime_l1_1_0.dll_exit]
mov edx, dword [ebp + 8]
mov ebx, edi
lea eax, [edi + edx]
mov dword [ebp - 0x10], eax
cmp edi, eax
jae 0x40217b
nop
mov ecx, edi
mov byte [ebp - 0x1d], bl
sub ecx, ebx
mov dword [ebp - 0x18], 0
add ecx, edx
mov eax, ebx
cmp ecx, dword [ebp + 0x10]
mov edx, 6
push 0xc
cmova ecx, dword [ebp + 0x10]
shr eax, 0x18
mov byte [ebp - 0x20], al
mov eax, ebx
shr eax, 0x10
mov byte [ebp - 0x1f], al
mov eax, ebx
shr eax, 8
mov byte [ebp - 0x1e], al
mov eax, ecx
shr eax, 0x18
mov byte [ebp - 0x1c], al
mov eax, ecx
shr eax, 0x10
mov byte [ebp - 0x1b], al
mov eax, ecx
shr eax, 8
mov byte [ebp - 0x1a], al
lea eax, [ebp - 0x20]
mov dword [ebp - 0xc], ecx
mov byte [ebp - 0x19], cl
mov ecx, esi
push eax
call fcn.00401510
add esp, 8
mov ecx, esi
call fcn.00401640
mov ecx, esi
call fcn.00401750
mov ecx, esi
call fcn.00401ab0
cmp eax, 0x93
jne 0x4021f4
mov ecx, dword [esi]
mov edi, dword [ebp - 0xc]
movzx esi, byte [ecx + 2]
movzx eax, byte [ecx + 3]
shl esi, 8
or esi, eax
cmp edi, esi
jb 0x4021d3
push dword [ebp - 8]
lea eax, [ecx + 4]
push esi
push 1
push eax
call dword [sym.imp.api_ms_win_crt_stdio_l1_1_0.dll_fwrite]
add esp, 0x10
cmp eax, esi
jne 0x4021b2
mov edx, dword [ebp + 8]
add ebx, esi
cmp edi, esi
mov edi, dword [ebp - 4]
jne 0x40217b
mov esi, dword [ebp - 0x14]
cmp ebx, dword [ebp - 0x10]
jb 0x4020b0
mov esi, dword [sym.imp.api_ms_win_crt_stdio_l1_1_0.dll___acrt_iob_func]
mov eax, ebx
sub eax, edi
push eax
push edx
push edi
push str.dump_mem:_0x_08x__target:_0x_x__read:_0x_x_n
push 2
call esi
add esp, 4
push eax
call fcn.00401050
add esp, 0x14
push dword [ebp - 8]
call dword [sym.imp.api_ms_win_crt_stdio_l1_1_0.dll_fclose]
add esp, 4
mov eax, ebx
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret
push str.fwrite_dump__failed_n
push 2
call dword [sym.imp.api_ms_win_crt_stdio_l1_1_0.dll___acrt_iob_func]
add esp, 4
push eax
call fcn.00401050
add esp, 8
push 1
call dword [sym.imp.api_ms_win_crt_runtime_l1_1_0.dll_exit]
push str.unexpected_length_n
push 2
call dword [sym.imp.api_ms_win_crt_stdio_l1_1_0.dll___acrt_iob_func]
add esp, 4
push eax
call fcn.00401050
add esp, 8
push 1
call dword [sym.imp.api_ms_win_crt_runtime_l1_1_0.dll_exit]
mov esi, dword [sym.imp.api_ms_win_crt_stdio_l1_1_0.dll___acrt_iob_func]
push eax
push str.unexpected_response__0x_04x__n
push 2
call esi
add esp, 4
push eax
call fcn.00401050
mov edx, dword [ebp + 8]
add esp, 0xc
jmp 0x402181
Function at 0x402220
Capabilities:
Terminate process

Disassembly:
push ebp
mov ebp, esp
sub esp, 0x64
mov eax, dword [0x40a004]
xor eax, ebp
mov dword [ebp - 4], eax
push ebx
push esi
push edi
push 0x58
lea eax, [ebp - 0x60]
mov esi, edx
push 0
push eax
mov edi, ecx
call sub.VCRUNTIME140.dll_memset
add esp, 0xc
xor edx, edx
nop dword [eax]
cmp edx, 0x24
jae 0x4022eb
mov al, byte [edx + esi]
movsx ecx, al
mov byte [ebp + edx*2 - 0x60], al
mov eax, ecx
sar eax, 8
mov byte [ebp + edx*2 - 0x5f], al
inc edx
test ecx, ecx
jne 0x402250
mov edx, dword [ebp + 8]
mov ecx, edx
mov ebx, dword [ebp + 0xc]
mov eax, ebx
shrd ecx, eax, 8
mov eax, ebx
mov byte [ebp - 0x18], dl
mov byte [ebp - 0x17], cl
mov ecx, edx
shrd ecx, eax, 0x10
mov eax, ebx
shrd edx, eax, 0x18
mov byte [ebp - 0x16], cl
mov byte [ebp - 0x15], dl
mov edx, dword [ebp + 0x10]
test edx, edx
je 0x4022b9
mov eax, ebx
mov byte [ebp - 0x14], bl
shr eax, 8
mov byte [ebp - 0x13], al
mov eax, ebx
shr eax, 0x10
shr ebx, 0x18
mov byte [ebp - 0x12], al
mov byte [ebp - 0x11], bl
test edx, edx
mov ecx, 0x58
mov edx, dword [ebp + 0x14]
mov eax, 0x4c
cmovne eax, ecx
mov ecx, edi
push eax
lea eax, [ebp - 0x60]
push eax
call fcn.00401510
mov ecx, dword [ebp - 4]
add esp, 8
xor ecx, ebp
pop edi
pop esi
pop ebx
call fcn.004056f6
mov esp, ebp
pop ebp
ret
push str.name_too_long_n
push 2
call dword [sym.imp.api_ms_win_crt_stdio_l1_1_0.dll___acrt_iob_func]
add esp, 4
push eax
call fcn.00401050
add esp, 8
push 1
call dword [sym.imp.api_ms_win_crt_runtime_l1_1_0.dll_exit]
int3
Function at 0x403a00
Capabilities:
Terminate process

Disassembly:
push ebp
mov ebp, esp
sub esp, 0xc
mov eax, dword [0x40a004]
xor eax, ebp
mov dword [ebp - 4], eax
push ebx
push esi
push edi
xor esi, esi
lea eax, [ebp - 8]
push esi
push eax
push ecx
call dword [sym.imp.api_ms_win_crt_convert_l1_1_0.dll_strtoull]
mov ecx, dword [ebp - 8]
add esp, 0xc
mov edi, eax
mov ebx, edx
mov cl, byte [ecx]
test cl, cl
je 0x403ac1
movsx ecx, cl
push ecx
call dword [sym.imp.api_ms_win_crt_string_l1_1_0.dll_tolower]
add esp, 4
cmp al, 0x6b
jne 0x403a4d
mov esi, 0xa
jmp 0x403a61
cmp al, 0x6d
jne 0x403a58
mov esi, 0x14
jmp 0x403a61
cmp al, 0x67
jne 0x403aa0
mov esi, 0x1e
mov ecx, 0x3f
mov eax, edi
sub ecx, esi
mov edx, ebx
call fcn.00406580
mov ecx, eax
or ecx, edx
je 0x403ac1
not eax
not edx
or eax, edx
je 0x403ac1
push str.size_overflow_on_multiply_n
push 2
call dword [sym.imp.api_ms_win_crt_stdio_l1_1_0.dll___acrt_iob_func]
add esp, 4
push eax
call fcn.00401050
add esp, 8
push 1
call dword [sym.imp.api_ms_win_crt_runtime_l1_1_0.dll_exit]
push str.unknown_size_suffix_n
push 2
call dword [sym.imp.api_ms_win_crt_stdio_l1_1_0.dll___acrt_iob_func]
add esp, 4
push eax
call fcn.00401050
add esp, 8
push 1
call dword [sym.imp.api_ms_win_crt_runtime_l1_1_0.dll_exit]
mov eax, edi
mov edx, ebx
mov ecx, esi
call fcn.00406560
mov ecx, dword [ebp - 4]
pop edi
pop esi
xor ecx, ebp
pop ebx
call fcn.004056f6
mov esp, ebp
pop ebp
ret
Function at 0x401a78
Capabilities:
Terminate process

Disassembly:
cmp ecx, dword [0x42914c]
jne 0x401a82
repz ret
jmp fcn.004025b5

Function at 0x40b18e
Capabilities:
Link many functions at runtime

Disassembly:
mov edi, edi
push ebp
mov ebp, esp
sub esp, 0x24
mov eax, dword [0x42914c]
xor eax, ebp
mov dword [ebp - 4], eax
mov eax, dword [ebp + 8]
push ebx
mov dword [ebp - 0x20], eax
mov eax, dword [ebp + 0xc]
push esi
push edi
mov dword [ebp - 0x1c], eax
call fcn.004043e4
and dword [ebp - 0x14], 0
cmp dword [0x42b7d8], 0
mov dword [ebp - 0x18], eax
jne 0x40b241
push str.USER32.DLL
call dword [sym.imp.KERNEL32.dll_LoadLibraryW]
mov ebx, eax
test ebx, ebx
je 0x40b2e9
mov edi, dword [sym.imp.KERNEL32.dll_GetProcAddress]
push str.MessageBoxW
push ebx
call edi
test eax, eax
je 0x40b2e9
mov esi, dword [sym.imp.KERNEL32.dll_EncodePointer]
push eax
call esi
push str.GetActiveWindow
push ebx
mov dword [0x42b7d8], eax
call edi
push eax
call esi
push str.GetLastActivePopup
push ebx
mov dword [0x42b7dc], eax
call edi
push eax
call esi
push str.GetUserObjectInformationW
push ebx
mov dword [0x42b7e0], eax
call edi
push eax
call esi
mov dword [0x42b7e8], eax
test eax, eax
je 0x40b241
push str.GetProcessWindowStation
push ebx
call edi
push eax
call esi
mov dword [0x42b7e4], eax
mov eax, dword [0x42b7e4]
mov ecx, dword [ebp - 0x18]
mov esi, dword [sym.imp.KERNEL32.dll_DecodePointer]
cmp eax, ecx
je 0x40b29a
cmp dword [0x42b7e8], ecx
je 0x40b29a
push eax
call esi
push dword [0x42b7e8]
mov edi, eax
call esi
mov ebx, eax
test edi, edi
je 0x40b29a
test ebx, ebx
je 0x40b29a
call edi
test eax, eax
je 0x40b291
lea ecx, [ebp - 0x24]
push ecx
push 0xc
lea ecx, [ebp - 0x10]
push ecx
push 1
push eax
call ebx
test eax, eax
je 0x40b291
test byte [ebp - 8], 1
jne 0x40b29a
or dword [ebp + 0x10], 0x200000
jmp 0x40b2cd
mov eax, dword [0x42b7dc]
cmp eax, dword [ebp - 0x18]
je 0x40b2cd
push eax
call esi
test eax, eax
je 0x40b2cd
call eax
mov dword [ebp - 0x14], eax
test eax, eax
je 0x40b2cd
mov eax, dword [0x42b7e0]
cmp eax, dword [ebp - 0x18]
je 0x40b2cd
push eax
call esi
test eax, eax
je 0x40b2cd
push dword [ebp - 0x14]
call eax
mov dword [ebp - 0x14], eax
push dword [0x42b7d8]
call esi
test eax, eax
je 0x40b2e9
push dword [ebp + 0x10]
push dword [ebp - 0x1c]
push dword [ebp - 0x20]
push dword [ebp - 0x14]
call eax
jmp 0x40b2eb
xor eax, eax
mov ecx, dword [ebp - 4]
pop edi
pop esi
xor ecx, ebp
pop ebx
call fcn.00401a78
leave
ret
Function at 0x422060
Capabilities:
Get geographical location

Disassembly:
push ebp
mov ebp, esp
and esp, 0xfffffff8
sub esp, 0x41c
mov eax, dword [0x42914c]
xor eax, esp
mov dword [esp + 0x418], eax
mov eax, dword [ebp + 8]
push ebx
push esi
xor esi, esi
push edi
mov dword [esp + 0xc], eax
cmp dword [ebp + 0xc], esi
jle 0x42213b
mov edi, dword [sym.imp.KERNEL32.dll_IsBadStringPtrA]
mov ebx, dword [sym.imp.KERNEL32.dll_WritePrivateProfileStringW]
cmp dword [ebp + 0xc], 0x2d
jne 0x4220c8
push 0
push str.lavufixajedapinenaliketuxuzikow_yopipocefibitonehaduyufatavub_jizosuxamuludofu_zamovipezafamid_muhayaju
call edi
push str.xicerijanudivudo
push str.xidicukapixifoga
push str.tidawudawujerusenohohicazoguvikehetadafeviwocubivicasadiyoz
push str.beziwuwiyufopidisaxewodozunabuvizikupajidagakiwubiwahixukecuzidufowilayobayaxihelazepixikuhejim
call ebx
push 0
call dword [sym.imp.KERNEL32.dll_FreeEnvironmentStringsA]
call fcn.00421fb0
mov ecx, dword [esp + 0xc]
xor byte [ecx + esi], al
cmp dword [ebp + 0xc], 0xf
jne 0x422131
push 0
push 0
push 0
push 0
call dword [sym.imp.KERNEL32.dll_GetLocaleInfoW]
xor eax, eax
push eax
lea edx, [esp + 0x24]
push edx
push 0x427020
mov dword [esp + 0x1e], eax
mov dword [esp + 0x22], eax
mov dword [esp + 0x26], eax
mov word [esp + 0x2a], ax
xor ecx, ecx
lea eax, [esp + 0x1c]
push eax
push ecx
push ecx
mov word [esp + 0x28], cx
call dword [sym.imp.KERNEL32.dll_GetTimeFormatA]
push 0x427024
push 0
push 0
push 0
call dword [sym.imp.KERNEL32.dll_SetCalendarInfoW]
call dword [sym.imp.KERNEL32.dll_GetConsoleAliasExesLengthA]
inc esi
cmp esi, dword [ebp + 0xc]
jl 0x42209b
cmp dword [ebp + 0xc], 0x2d
jne 0x422155
mov dword [0x42c8d0], 0xa62e7790
mov dword [0x42c8d4], 0xffffffff
mov ecx, dword [esp + 0x424]
pop edi
pop esi
pop ebx
xor ecx, esp
call fcn.00401a78
mov esp, ebp
pop ebp
ret
Function at 0x422520
Capabilities:
Access the windows event log
Manipulate console buffer
Set file attributes

Disassembly:
sub esp, 0xc
mov eax, dword [0x42c8c4]
push ebx
mov ebx, dword [sym.imp.KERNEL32.dll_OpenWaitableTimerA]
push ebp
mov ebp, dword [sym.imp.KERNEL32.dll_SetConsoleOutputCP]
push esi
mov esi, dword [sym.imp.KERNEL32.dll_SetFileAttributesW]
push edi
mov edi, dword [sym.imp.KERNEL32.dll_WriteConsoleOutputCharacterA]
mov dword [esp + 0x14], 0x1540b5
lea esp, [esp]
cmp eax, 0xcc1
jne 0x422560
push 0
call ebp
mov eax, dword [0x42c8c4]
mov dword [0x42c52c], 0x8e468c60
cmp eax, 0x3dc
jne 0x42259b
push 0
push 0x4271a0
call esi
xor eax, eax
lea edx, [esp + 0x18]
push edx
push eax
push eax
push eax
push eax
mov dword [esp + 0x24], eax
call edi
push str.guyojolegulob
push 0
push 0
call ebx
mov eax, dword [0x42c8c4]
dec dword [esp + 0x14]
jne 0x422550
mov edi, dword [sym.imp.ADVAPI32.dll_OpenEventLogW]
xor esi, esi
mov ebp, 0xec58acac
or ebx, 0xffffffff
cmp eax, 0x997
jne 0x4225c3
push 0
push 0
call edi
mov eax, dword [0x42c8c4]
cmp esi, 0x846373
jne 0x4225da
mov eax, dword [0x42aad0]
add eax, 0xa231
mov dword [0x42c8c4], eax
cmp eax, 0x141
jne 0x4225ed
mov dword [0x42bd18], ebp
mov dword [0x42bd1c], ebx
inc esi
cmp esi, 0x123c962
jl 0x4225b1
call fcn.004221b0
pop edi
pop esi
pop ebp
xor eax, eax
pop ebx
add esp, 0xc
ret 0x10

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

Disassembly:
pushal
nop
nop
nop
nop
call 0x43300c
pop eax
nop
nop
nop
nop
nop
add eax, 0x40a063
nop
nop
sub eax, 0x40a009
nop
nop
mov ebx, dword [eax]
nop
nop
mov ecx, dword [eax + 4]
nop
nop
nop
nop
nop
nop
mov edx, dword [eax + 8]
nop
nop
nop
xor dword [ebx], edx
nop
add ebx, 4
nop
nop
nop
nop
nop
nop
cmp ebx, ecx
nop
nop
nop
nop
jl 0x433030
nop
nop
add eax, 0xc
nop
nop
nop
cmp dword [eax], 0
nop
nop
nop
jne 0x43301e
nop
nop
nop
nop
nop
nop
nop
popal
nop
jmp 0x431219