joyce8/EMBER2024-capa huggingface dataset:
Function at 0x4e52a0
Capabilities:
Check if file exists
Get file attributes

Disassembly:
push ebp
mov ebp, esp
push ebx
push edi
push esi
sub esp, 0x18
mov eax, dword [0x542040]
xor eax, ebp
mov dword [ebp - 0x10], eax
movups xmm0, xmmword [edx]
movups xmmword [ebp - 0x20], xmm0
mov esi, dword [ecx + 0x28]
mov ebx, dword [ecx + 0x2c]
cmp esi, ebx
je 0x4e52e3
mov dword [ebp - 0x24], ecx
lea edi, [ebp - 0x20]
mov ecx, esi
push edi
call fcn.004f1830
test al, al
jne 0x4e52dd
add esi, 0x58
cmp esi, ebx
jne 0x4e52ca
mov eax, dword [ebp - 0x24]
mov ebx, dword [eax + 0x2c]
cmp esi, ebx
je 0x4e531a
cmp byte [esi + 0x1b], 0
js 0x4e52f2
lea eax, [esi + 0x10]
jmp 0x4e52f5
mov eax, dword [esi + 0x10]
push eax
call dword [sym.imp.KERNEL32.dll_GetFileAttributesW]
mov ecx, eax
shr ecx, 3
and ecx, 2
xor edi, edi
inc edi
cmp eax, 0xffffffff
cmovne edi, ecx
test edi, edi
jne 0x4e531d
mov eax, dword [ebp + 8]
mov dword [eax], esi
xor edi, edi
jmp 0x4e531d
xor edi, edi
inc edi
mov ecx, dword [ebp - 0x10]
xor ecx, ebp
call fcn.0048e2e5
mov eax, edi
add esp, 0x18
pop esi
pop edi
pop ebx
pop ebp
ret

Function at 0x4e5460
Capabilities:
Check if file exists
Get file attributes

Disassembly:
push ebp
mov ebp, esp
push ebx
push edi
push esi
sub esp, 0x18
mov eax, dword [0x542040]
xor eax, ebp
mov dword [ebp - 0x10], eax
movups xmm0, xmmword [edx]
movups xmmword [ebp - 0x20], xmm0
mov edi, dword [ecx + 0x28]
mov esi, dword [ecx + 0x2c]
cmp edi, esi
je 0x4e54a3
mov dword [ebp - 0x24], ecx
lea ebx, [ebp - 0x20]
mov ecx, edi
push ebx
call fcn.004f1830
test al, al
jne 0x4e549d
add edi, 0x58
cmp edi, esi
jne 0x4e548a
mov ecx, dword [ebp - 0x24]
mov esi, dword [ecx + 0x2c]
xor ebx, ebx
inc ebx
cmp edi, esi
je 0x4e54f3
mov eax, dword [edi + 0x50]
cmp eax, dword [ebp + 8]
jne 0x4e54e7
cmp byte [edi + 0x1b], 0
js 0x4e54bf
mov esi, ecx
lea eax, [edi + 0x10]
jmp 0x4e54c4
mov esi, ecx
mov eax, dword [edi + 0x10]
push eax
call dword [sym.imp.KERNEL32.dll_GetFileAttributesW]
cmp eax, 0xffffffff
je 0x4e54f3
shr eax, 3
and eax, 2
mov ebx, eax
jne 0x4e54f3
mov eax, dword [ebp + 0xc]
mov byte [esi + 0x24], 1
mov dword [eax], edi
xor ebx, ebx
jmp 0x4e54f3
xor ecx, ecx
cmp eax, 1
sete cl
lea ebx, [ecx + ecx*2]
inc ebx
mov ecx, dword [ebp - 0x10]
xor ecx, ebp
call fcn.0048e2e5
mov eax, ebx
add esp, 0x18
pop esi
pop edi
pop ebx
pop ebp
ret
Function at 0x4f1090
Capabilities:
Check if file exists
Get file attributes

Disassembly:
push ebp
mov ebp, esp
push ebx
push edi
push esi
sub esp, 0xa4
mov edi, dword [ebp + 8]
mov eax, dword [0x542040]
xor eax, ebp
mov dword [ebp - 0x10], eax
cmp byte [edi + 0xb], 0
mov eax, edi
jns 0x4f10b3
mov eax, dword [edi]
push eax
call dword [sym.imp.KERNEL32.dll_GetFileAttributesW]
cmp eax, 0xffffffff
je 0x4f10d7
mov ebx, eax
mov al, byte [ebp + 0xc]
mov ecx, ebx
shr ecx, 0xa
xor al, 1
test cl, al
jne 0x4f112b
and ebx, 0x10
shr ebx, 4
jmp 0x4f112d
push 2
call fcn.0046d8e0
add esp, 4
test al, al
je 0x4f112b
call fcn.004d4ac0
lea esi, [ebp - 0xb0]
mov ecx, esi
push eax
push 2
push 0x80
push str....._third_partycrashpadcrashpadutil_file_filesystem_win.cc
call fcn.004d4c90
lea eax, [ebp - 0xa8]
push 0x12
push str.GetFileAttributes
push eax
call fcn.00454f30
add esp, 0xc
push edi
push eax
call fcn.004d5830
add esp, 8
mov ecx, esi
call fcn.004d4cf0
xor ebx, ebx
mov ecx, dword [ebp - 0x10]
xor ecx, ebp
call fcn.0048e2e5
mov eax, ebx
add esp, 0xa4
pop esi
pop edi
pop ebx
pop ebp
ret

Function at 0x4f1150
Capabilities:
Create directory

Disassembly:
push ebp
mov ebp, esp
push ebx
push edi
push esi
sub esp, 0xa4
mov edi, dword [ebp + 8]
mov eax, dword [0x542040]
xor eax, ebp
mov dword [ebp - 0x10], eax
cmp byte [edi + 0xb], 0
mov eax, edi
jns 0x4f1173
mov eax, dword [edi]
push 0
push eax
call dword [sym.imp.KERNEL32.dll_CreateDirectoryW]
mov bl, 1
test eax, eax
jne 0x4f11e8
cmp byte [ebp + 0x10], 0
je 0x4f1195
call dword [sym.imp.KERNEL32.dll_GetLastError]
cmp eax, 0xb7
je 0x4f11ff
push 2
call fcn.0046d8e0
add esp, 4
test al, al
je 0x4f11e6
call fcn.004d4ac0
lea esi, [ebp - 0xb0]
mov ecx, esi
push eax
push 2
push 0x61
push str....._third_partycrashpadcrashpadutil_file_filesystem_win.cc
call fcn.004d4c90
lea eax, [ebp - 0xa8]
push 0x10
push str.CreateDirectory
push eax
call fcn.00454f30
add esp, 0xc
push edi
push eax
call fcn.004d5830
add esp, 8
mov ecx, esi
call fcn.004d4cf0
xor ebx, ebx
mov ecx, dword [ebp - 0x10]
xor ecx, ebp
call fcn.0048e2e5
mov eax, ebx
add esp, 0xa4
pop esi
pop edi
pop ebx
pop ebp
ret
push 1
push edi
call fcn.004f1090
add esp, 8
test al, al
jne 0x4f11e8
push 2
call fcn.0046d8e0
add esp, 4
test al, al
je 0x4f11e6
lea esi, [ebp - 0xb0]
mov ecx, esi
push 2
push 0x5c
push str....._third_partycrashpadcrashpadutil_file_filesystem_win.cc
call fcn.00429cd0
lea eax, [ebp - 0xa8]
push edi
push eax
call fcn.004d5830
add esp, 8
push 0x10
push str._not_a_directory
push eax
call fcn.00454f30
add esp, 0xc
mov ecx, esi
call fcn.0042a1b0
jmp 0x4f11e6
Function at 0x4f1260
Capabilities:
Check if file exists
Get file attributes

Disassembly:
push ebp
mov ebp, esp
push ebx
push edi
push esi
sub esp, 0xa4
mov edi, dword [ebp + 8]
mov eax, dword [0x542040]
xor eax, ebp
mov dword [ebp - 0x10], eax
cmp byte [edi + 0xb], 0
mov eax, edi
jns 0x4f1283
mov eax, dword [edi]
push eax
call dword [sym.imp.KERNEL32.dll_GetFileAttributesW]
cmp eax, 0xffffffff
je 0x4f12ae
test eax, 0x410
sete bl
mov ecx, dword [ebp - 0x10]
xor ecx, ebp
call fcn.0048e2e5
mov eax, ebx
add esp, 0xa4
pop esi
pop edi
pop ebx
pop ebp
ret
push 2
call fcn.0046d8e0
add esp, 4
test al, al
je 0x4f12ff
call fcn.004d4ac0
lea esi, [ebp - 0xb0]
mov ecx, esi
push eax
push 2
push 0x73
push str....._third_partycrashpadcrashpadutil_file_filesystem_win.cc
call fcn.004d4c90
lea eax, [ebp - 0xa8]
push 0x12
push str.GetFileAttributes
push eax
call fcn.00454f30
add esp, 0xc
push edi
push eax
call fcn.004d5830
add esp, 8
mov ecx, esi
call fcn.004d4cf0
xor ebx, ebx
jmp 0x4f1297

Function at 0x4f1310
Capabilities:
Check if file exists
Delete directory
Delete file

Disassembly:
push ebp
mov ebp, esp
push ebx
push edi
push esi
sub esp, 0xa4
mov esi, dword [ebp + 8]
mov eax, dword [0x542040]
xor eax, ebp
mov dword [ebp - 0x10], eax
cmp byte [esi + 0xb], 0
mov eax, esi
jns 0x4f1333
mov eax, dword [esi]
push eax
call dword [sym.imp.KERNEL32.dll_GetFileAttributesW]
cmp eax, 0xffffffff
sete cl
not eax
test eax, 0x410
setne al
or al, cl
je 0x4f13d6
cmp byte [esi + 0xb], 0
mov eax, esi
jns 0x4f135c
mov eax, dword [esi]
push eax
call dword [sym.imp.KERNEL32.dll_DeleteFileW]
mov bl, 1
test eax, eax
jne 0x4f13bf
push 2
call fcn.0046d8e0
add esp, 4
test al, al
je 0x4f13bd
call fcn.004d4ac0
lea edi, [ebp - 0xb0]
mov ecx, edi
push eax
push 2
push 0x93
push str....._third_partycrashpadcrashpadutil_file_filesystem_win.cc
call fcn.004d4c90
lea eax, [ebp - 0xa8]
push 0xb
push str.DeleteFile
push eax
call fcn.00454f30
add esp, 0xc
push esi
push eax
call fcn.004d5830
add esp, 8
mov ecx, edi
call fcn.004d4cf0
xor ebx, ebx
mov ecx, dword [ebp - 0x10]
xor ecx, ebp
call fcn.0048e2e5
mov eax, ebx
add esp, 0xa4
pop esi
pop edi
pop ebx
pop ebp
ret
mov ecx, dword [ebp - 0x10]
xor ecx, ebp
call fcn.0048e2e5
mov ecx, esi
add esp, 0xa4
pop esi
pop edi
pop ebx
pop ebp
jmp fcn.004f1400
Function at 0x4f1400
Capabilities:
Delete directory

Disassembly:
push ebp
mov ebp, esp
push ebx
push edi
push esi
sub esp, 0xa4
mov esi, ecx
mov eax, dword [0x542040]
xor eax, ebp
mov dword [ebp - 0x10], eax
cmp byte [ecx + 0xb], 0
mov eax, ecx
jns 0x4f1422
mov eax, dword [esi]
push eax
call dword [sym.imp.KERNEL32.dll_RemoveDirectoryW]
mov edi, eax
test eax, eax
je 0x4f144b
test edi, edi
setne bl
mov ecx, dword [ebp - 0x10]
xor ecx, ebp
call fcn.0048e2e5
mov eax, ebx
add esp, 0xa4
pop esi
pop edi
pop ebx
pop ebp
ret
push 2
call fcn.0046d8e0
add esp, 4
test al, al
je 0x4f142f
call fcn.004d4ac0
lea ebx, [ebp - 0xb0]
mov ecx, ebx
push eax
push 2
push 0x2f
push str....._third_partycrashpadcrashpadutil_file_filesystem_win.cc
call fcn.004d4c90
lea eax, [ebp - 0xa8]
push 0x10
push str.RemoveDirectory
push eax
call fcn.00454f30
add esp, 0xc
push esi
push eax
call fcn.004d5830
add esp, 8
mov ecx, ebx
call fcn.004d4cf0
jmp 0x4f142f

Function at 0x4fdbd0
Capabilities:
Check if file exists
Delete directory
Delete file
Get file attributes

Disassembly:
push ebp
mov ebp, esp
pop ebp
jmp fcn.004f1310
Function at 0x5002a0
Capabilities:
Query or enumerate registry value

Disassembly:
push ebp
mov ebp, esp
push ebx
push edi
push esi
sub esp, 0x10
mov eax, dword [0x542040]
xor eax, ebp
mov dword [ebp - 0x10], eax
xor eax, eax
dec eax
lea esi, [ebp - 0x14]
mov dword [esi], eax
lea edi, [ebp - 0x18]
mov dword [edi], eax
lea eax, [ebp - 0x1c]
mov dword [eax], 4
push eax
push edi
push esi
push 0
push edx
push ecx
call dword [sym.imp.ADVAPI32.dll_RegQueryValueExW]
mov ecx, dword [esi]
xor ecx, 4
or ecx, eax
sete bl
jne 0x5002ea
mov eax, dword [ebp + 8]
mov ecx, dword [ebp - 0x18]
mov dword [eax], ecx
mov ecx, dword [ebp - 0x10]
xor ecx, ebp
call fcn.0048e2e5
mov eax, ebx
add esp, 0x10
pop esi
pop edi
pop ebx
pop ebp
ret

Function at 0x500390
Capabilities:
Get system information on windows

Disassembly:
push ebp
mov ebp, esp
push ebx
push esi
sub esp, 0xc4
mov eax, dword [0x542040]
xor eax, ebp
mov dword [ebp - 0xc], eax
pcmpeqd xmm0, xmm0
lea esi, [ebp - 0x30]
movdqu xmmword [esi + 0x10], xmm0
movdqu xmmword [esi], xmm0
mov dword [esi + 0x20], 0xffffffff
push esi
call dword [sym.imp.KERNEL32.dll_GetSystemInfo]
cmp dword [esi + 0x14], 0x100
jb 0x500410
push 1
call fcn.0046d8e0
add esp, 4
test al, al
je 0x500410
lea esi, [ebp - 0xcc]
mov ecx, esi
push 1
push 0x117
push str....._third_partycrashpadcrashpad_snapshotwin_system_snapshot_win.cc
call fcn.00429cd0
lea eax, [ebp - 0xc4]
push 0x2c
push str.dwNumberOfProcessors_exceeds_uint8_t_storage
push eax
call fcn.00454f30
add esp, 0xc
mov ecx, esi
call fcn.0042a1b0
mov eax, dword [ebp - 0x1c]
cmp eax, 0x100
mov ebx, 0xff
cmovb ebx, eax
mov ecx, dword [ebp - 0xc]
xor ecx, ebp
call fcn.0048e2e5
mov eax, ebx
add esp, 0xc4
pop esi
pop ebx
pop ebp
ret
Function at 0x50f9b0
Capabilities:
Parse pe header

Disassembly:
push ebp
mov ebp, esp
push ebx
push edi
push esi
sub esp, 0xe4
mov esi, ecx
mov eax, dword [0x542040]
xor eax, ebp
mov dword [ebp - 0x10], eax
pcmpeqd xmm0, xmm0
lea ebx, [ebp - 0x50]
movdqu xmmword [ebx + 0x30], xmm0
movdqu xmmword [ebx + 0x20], xmm0
movdqu xmmword [ebx + 0x10], xmm0
movdqu xmmword [ebx], xmm0
lea edi, [ecx + 0x10]
mov ecx, edi
call fcn.004bb130
mov ecx, esi
push ebx
push 0
push 0x40
push edx
push eax
call fcn.005142d0
test al, al
je 0x50faa5
movzx eax, word [ebp - 0x50]
cmp eax, 0x5a4d
jne 0x50fa6b
mov ebx, dword [ebp + 8]
mov ecx, edi
call fcn.004bb130
mov ecx, dword [ebp - 0x14]
mov edi, ecx
sar edi, 0x1f
add eax, ecx
adc edi, edx
mov ecx, esi
push ebx
push 0
push 0x108
push edi
mov dword [ebp - 0xf0], eax
push eax
call fcn.005142d0
test al, al
je 0x50fb1c
cmp dword [ebx], 0x4550
jne 0x50fb52
mov eax, dword [ebp + 0xc]
mov bl, 1
test eax, eax
je 0x50fb03
mov ecx, dword [ebp - 0xf0]
mov dword [eax], ecx
mov dword [eax + 4], edi
jmp 0x50fb03
push 1
call fcn.0046d8e0
add esp, 4
test al, al
je 0x50fb01
lea edi, [ebp - 0xec]
mov ecx, edi
push 1
push 0x15a
push str....._third_partycrashpadcrashpad_snapshotwinpe_image_reader.cc
call fcn.00429cd0
lea eax, [ebp - 0xe4]
push 0x21
push str.invalid_e_magic_in_dos_header_of
jmp 0x50fad9
push 1
call fcn.0046d8e0
add esp, 4
test al, al
je 0x50fb01
lea edi, [ebp - 0xec]
mov ecx, edi
push 1
push 0x154
push str....._third_partycrashpadcrashpad_snapshotwinpe_image_reader.cc
call fcn.00429cd0
lea eax, [ebp - 0xe4]
push 0x1f
push str.could_not_read_dos_header_from
push eax
call fcn.00454f30
add esp, 0xc
movsx ecx, byte [esi + 0xb]
test ecx, ecx
jns 0x50faef
mov ecx, dword [esi + 4]
mov esi, dword [esi]
push ecx
push esi
push eax
call fcn.00454f30
add esp, 0xc
mov ecx, edi
call fcn.0042a1b0
xor ebx, ebx
mov ecx, dword [ebp - 0x10]
xor ecx, ebp
call fcn.0048e2e5
mov eax, ebx
add esp, 0xe4
pop esi
pop edi
pop ebx
pop ebp
ret 8
push 1
call fcn.0046d8e0
add esp, 4
test al, al
je 0x50fb01
lea edi, [ebp - 0xec]
mov ecx, edi
push 1
push 0x162
push str....._third_partycrashpadcrashpad_snapshotwinpe_image_reader.cc
call fcn.00429cd0
lea eax, [ebp - 0xe4]
push 0x1f
push str.could_not_read_nt_headers_from
jmp 0x50fad9
push 1
call fcn.0046d8e0
add esp, 4
test al, al
je 0x50fb01
lea edi, [ebp - 0xec]
mov ecx, edi
push 1
push 0x168
push str....._third_partycrashpadcrashpad_snapshotwinpe_image_reader.cc
call fcn.00429cd0
lea eax, [ebp - 0xe4]
push 0x23
push str.invalid_signature_in_nt_headers_of
jmp 0x50fad9
Function at 0x50fb90
Capabilities:
Parse pe header

Disassembly:
push ebp
mov ebp, esp
push ebx
push edi
push esi
sub esp, 0xe4
mov esi, ecx
mov eax, dword [0x542040]
xor eax, ebp
mov dword [ebp - 0x10], eax
pcmpeqd xmm0, xmm0
lea ebx, [ebp - 0x50]
movdqu xmmword [ebx + 0x30], xmm0
movdqu xmmword [ebx + 0x20], xmm0
movdqu xmmword [ebx + 0x10], xmm0
movdqu xmmword [ebx], xmm0
lea edi, [ecx + 0x10]
mov ecx, edi
call fcn.004bb130
mov ecx, esi
push ebx
push 0
push 0x40
push edx
push eax
call fcn.005142d0
test al, al
je 0x50fc85
movzx eax, word [ebp - 0x50]
cmp eax, 0x5a4d
jne 0x50fc4b
mov ebx, dword [ebp + 8]
mov ecx, edi
call fcn.004bb130
mov ecx, dword [ebp - 0x14]
mov edi, ecx
sar edi, 0x1f
add eax, ecx
adc edi, edx
mov ecx, esi
push ebx
push 0
push 0xf8
push edi
mov dword [ebp - 0xf0], eax
push eax
call fcn.005142d0
test al, al
je 0x50fcfc
cmp dword [ebx], 0x4550
jne 0x50fd32
mov eax, dword [ebp + 0xc]
mov bl, 1
test eax, eax
je 0x50fce3
mov ecx, dword [ebp - 0xf0]
mov dword [eax], ecx
mov dword [eax + 4], edi
jmp 0x50fce3
push 1
call fcn.0046d8e0
add esp, 4
test al, al
je 0x50fce1
lea edi, [ebp - 0xec]
mov ecx, edi
push 1
push 0x15a
push str....._third_partycrashpadcrashpad_snapshotwinpe_image_reader.cc
call fcn.00429cd0
lea eax, [ebp - 0xe4]
push 0x21
push str.invalid_e_magic_in_dos_header_of
jmp 0x50fcb9
push 1
call fcn.0046d8e0
add esp, 4
test al, al
je 0x50fce1
lea edi, [ebp - 0xec]
mov ecx, edi
push 1
push 0x154
push str....._third_partycrashpadcrashpad_snapshotwinpe_image_reader.cc
call fcn.00429cd0
lea eax, [ebp - 0xe4]
push 0x1f
push str.could_not_read_dos_header_from
push eax
call fcn.00454f30
add esp, 0xc
movsx ecx, byte [esi + 0xb]
test ecx, ecx
jns 0x50fccf
mov ecx, dword [esi + 4]
mov esi, dword [esi]
push ecx
push esi
push eax
call fcn.00454f30
add esp, 0xc
mov ecx, edi
call fcn.0042a1b0
xor ebx, ebx
mov ecx, dword [ebp - 0x10]
xor ecx, ebp
call fcn.0048e2e5
mov eax, ebx
add esp, 0xe4
pop esi
pop edi
pop ebx
pop ebp
ret 8
push 1
call fcn.0046d8e0
add esp, 4
test al, al
je 0x50fce1
lea edi, [ebp - 0xec]
mov ecx, edi
push 1
push 0x162
push str....._third_partycrashpadcrashpad_snapshotwinpe_image_reader.cc
call fcn.00429cd0
lea eax, [ebp - 0xe4]
push 0x1f
push str.could_not_read_nt_headers_from
jmp 0x50fcb9
push 1
call fcn.0046d8e0
add esp, 4
test al, al
je 0x50fce1
lea edi, [ebp - 0xec]
mov ecx, edi
push 1
push 0x168
push str....._third_partycrashpadcrashpad_snapshotwinpe_image_reader.cc
call fcn.00429cd0
lea eax, [ebp - 0xe4]
push 0x23
push str.invalid_signature_in_nt_headers_of
jmp 0x50fcb9
Function at 0x430006
Capabilities:
Encode data using xor

Disassembly:
mov eax, section..text
nop
nop
mov ebx, 0x408f6c
nop
mov ecx, 0x5e07140a
nop
nop
nop
test eax, eax
nop
nop
nop
nop
je 0x43004e
nop
nop
nop
xor dword [eax], ecx
nop
nop
nop
inc eax
nop
nop
nop
nop
nop
nop
inc eax
nop
nop
nop
nop
inc eax
nop
nop
nop
nop
nop
nop
nop
inc eax
nop
nop
nop
nop
cmp eax, ebx
nop
nop
nop
jne 0x430024
nop
nop
nop
nop
mov eax, section..data
nop
mov ebx, 0x42e3d0
nop
mov ecx, 0x4bd665a0
nop
nop
test eax, eax
nop
nop
nop
nop
nop
nop
je 0x430084
xor dword [eax], ecx
nop
nop
nop
nop
nop
nop
nop
add eax, 4
cmp eax, ebx
nop
nop
nop
nop
nop
jne 0x43006c
nop
nop
nop
nop
nop
nop
nop
nop
popal
jmp 0x401219
Function at 0x665190
Capabilities:
Packed with generic packer

Disassembly:
pushal
mov esi, section.UPX1
lea edi, [esi - 0x210000]
push edi
jmp 0x6651aa
mov al, byte [esi]
inc esi
mov byte [edi], al
inc edi
add ebx, ebx
jne 0x6651b1
mov ebx, dword [esi]
sub esi, 0xfffffffc
adc ebx, ebx
jb 0x6651a0
mov eax, 1
add ebx, ebx
jne 0x6651c3
mov ebx, dword [esi]
sub esi, 0xfffffffc
adc ebx, ebx
adc eax, eax
add ebx, ebx
jae 0x6651d4
jne 0x6651f3
mov ebx, dword [esi]
sub esi, 0xfffffffc
adc ebx, ebx
jb 0x6651f3
dec eax
add ebx, ebx
jne 0x6651e0
mov ebx, dword [esi]
sub esi, 0xfffffffc
adc ebx, ebx
adc eax, eax
jmp 0x6651b8
add ebx, ebx
jne 0x6651ef
mov ebx, dword [esi]
sub esi, 0xfffffffc
adc ebx, ebx
adc ecx, ecx
jmp 0x665245
xor ecx, ecx
sub eax, 3
jb 0x66520b
shl eax, 8
mov al, byte [esi]
inc esi
xor eax, 0xffffffff
je 0x66527a
sar eax, 1
mov ebp, eax
jmp 0x665216
add ebx, ebx
jne 0x665216
mov ebx, dword [esi]
sub esi, 0xfffffffc
adc ebx, ebx
jb 0x6651e4
inc ecx
add ebx, ebx
jne 0x665224
mov ebx, dword [esi]
sub esi, 0xfffffffc
adc ebx, ebx
jb 0x6651e4
add ebx, ebx
jne 0x665231
mov ebx, dword [esi]
sub esi, 0xfffffffc
adc ebx, ebx
adc ecx, ecx
add ebx, ebx
jae 0x665226
jne 0x665242
mov ebx, dword [esi]
sub esi, 0xfffffffc
adc ebx, ebx
jae 0x665226
add ecx, 2
cmp ebp, 0xfffffb00
adc ecx, 2
lea edx, [edi + ebp]
cmp ebp, 0xfffffffc
jbe 0x665264
mov al, byte [edx]
inc edx
mov byte [edi], al
inc edi
dec ecx
jne 0x665256
jmp 0x6651a6
mov eax, dword [edx]
add edx, 4
mov dword [edi], eax
add edi, 4
sub ecx, 4
ja 0x665264
add edi, ecx
jmp 0x6651a6
pop esi
mov edi, esi
mov ecx, 0x3ed9
mov al, byte [edi]
inc edi
sub al, 0xe8
cmp al, 1
ja 0x665282
cmp byte [edi], 0x11
jne 0x665282
mov eax, dword [edi]
mov bl, byte [edi + 4]
shr ax, 8
rol eax, 0x10
xchg ah, al
sub eax, edi
sub bl, 0xe8
add eax, esi
mov dword [edi], eax
add edi, 5
mov al, bl
loop 0x665287
lea edi, [esi + 0x25e000]
mov eax, dword [edi]
or eax, eax
je 0x6652ff
mov ebx, dword [edi + 4]
lea eax, [eax + esi + 0x3f2a5c]
add ebx, esi
push eax
add edi, 8
call dword [esi + 0x3f2bd8]
xchg ebp, eax
mov al, byte [edi]
inc edi
or al, al
je 0x6652b4
mov ecx, edi
jns 0x6652e3
movzx eax, word [edi]
inc edi
push eax
inc edi
mov ecx, 0xaef24857
push edi
dec eax
repne scasb al, byte es:[edi]
push ebp
call dword [esi + 0x3f2bdc]
or eax, eax
je 0x6652f9
mov dword [ebx], eax
add ebx, 4
jmp 0x6652d1
call dword [esi + 0x3f2bec]
add edi, 4
lea ebx, [esi - 4]
xor eax, eax
mov al, byte [edi]
inc edi
or eax, eax
je 0x665330
cmp al, 0xef
ja 0x665323
add ebx, eax
mov eax, dword [ebx]
xchg ah, al
rol eax, 0x10
xchg ah, al
add eax, esi
mov dword [ebx], eax
jmp 0x665305
and al, 0xf
shl eax, 0x10
mov ax, word [edi]
add edi, 2
jmp 0x665312
mov ebp, dword [esi + 0x3f2be0]
lea edi, [esi - 0x1000]
mov ebx, 0x1000
push eax
push esp
push 4
push ebx
push edi
call ebp
lea eax, [edi + 0x227]
and byte [eax], 0x7f
and byte [eax + 0x28], 0x7f
pop eax
push eax
push esp
push eax
push ebx
push edi
call ebp
pop eax
popal
lea eax, [esp - 0x80]
push 0
cmp esp, eax
jne 0x665364
sub esp, 0xffffff80
jmp 0x425f74
Function at 0x401000
Capabilities:
Terminate process

Disassembly:
push ebp
mov ebp, esp
mov eax, dword [0x41b900]
sub esp, 0x904
push ebx
xor ebx, ebx
cmp eax, ebx
push esi
push edi
je 0x401036
cmp word [0x41b902], bx
je 0x401027
call eax
mov dword [0x41b900], eax
push eax
call fcn.004024a4
push eax
call fcn.00409506
pop ecx
jmp 0x4010a4
push 0x27
call fcn.004024a4
mov esi, dword [ebp + 8]
push dword [esi + 0xc]
mov edi, dword [sym.imp.USER32.dll_wsprintfW]
push dword [esi]
push eax
lea eax, [ebp - 0x904]
push eax
call edi
add esp, 0x14
cmp dword [esi + 0x10], ebx
mov dword [ebp - 4], ebx
jbe 0x401098
lea ebx, [esi + 0x14]
push dword [ebx]
lea eax, [ebp - 0x104]
push str._t0x_p_n
push eax
call edi
add esp, 0xc
lea eax, [ebp - 0x104]
push eax
lea eax, [ebp - 0x904]
push eax
call dword [sym.imp.KERNEL32.dll_lstrcatW]
inc dword [ebp - 4]
mov eax, dword [ebp - 4]
add ebx, 4
cmp eax, dword [esi + 0x10]
jb 0x401063
lea eax, [ebp - 0x904]
push eax
call fcn.00409506
pop ecx
call fcn.0040492a
push 0xa
call dword [sym.imp.KERNEL32.dll_ExitProcess]

Function at 0x4018a7
Capabilities:
Create thread

Disassembly:
push ebp
mov ebp, esp
push ecx
push esi
push edi
push dword [ebp + 8]
mov esi, ecx
lea ecx, [esi + 0xc]
call fcn.004105fd
push dword [ebp + 0xc]
lea edi, [esi + 0x10]
mov ecx, edi
call fcn.00401466
push 0x5c
mov ecx, edi
call fcn.004017bc
xor edi, edi
lea eax, [ebp - 4]
push eax
push edi
push esi
push 0x401350
push edi
push edi
mov dword [0x41b904], esi
mov dword [0x41b90c], edi
call dword [sym.imp.KERNEL32.dll_CreateThread]
cmp dword [0x41b964], 2
mov dword [0x41b908], eax
je 0x401904
call fcn.00408c8e
push 0xffffffffffffffff
push dword [0x41b908]
call dword [sym.imp.KERNEL32.dll_WaitForSingleObject]
mov eax, dword [0x41b90c]
cmp eax, edi
mov dword [0x41b9f8], edi
je 0x401953
cmp eax, 1
je 0x401947
cmp eax, 2
je 0x401943
cmp eax, 3
je 0x40193f
cmp eax, 0x67
jle 0x40193a
cmp eax, 0x6b
jle 0x4019b7
push eax
push 0x14
jmp 0x40198a
push 0x12
jmp 0x401949
push 0x13
jmp 0x401949
push 0x11
push edi
call fcn.004095ea
pop ecx
pop ecx
jmp 0x4019b7
cmp dword [0x41ba00], edi
jne 0x4019b7
lea eax, [ebp + 8]
push eax
push dword [0x41b908]
call dword [sym.imp.KERNEL32.dll_GetExitCodeThread]
test eax, eax
mov ecx, dword [ebp + 8]
je 0x40197a
cmp ecx, edi
jne 0x40197a
xor eax, eax
jmp 0x4019bc
mov eax, 0x80070000
mov edx, ecx
and edx, eax
cmp edx, eax
je 0x40198d
push ecx
push 0x21
push edi
jmp 0x4019af
and ecx, 0xffff
cmp ecx, 0xe
jne 0x4019a1
cmp dword [0x41b968], 0xffffffff
je 0x4019b7
push ecx
call dword [sym.imp.KERNEL32.dll_SetLastError]
push dword [ebp + 8]
push 0x22
push 1
call fcn.004095ea
add esp, 0xc
mov eax, 0x80004005
pop edi
pop esi
leave
ret 8
Function at 0x401e92
Capabilities:
Check if file exists
Create directory
Get file attributes

Disassembly:
push esi
push 0
push dword [esp + 0xc]
call dword [sym.imp.KERNEL32.dll_CreateDirectoryW]
test eax, eax
jne 0x401ed3
call dword [sym.imp.KERNEL32.dll_GetLastError]
mov esi, 0xb7
cmp eax, esi
je 0x401ebd
push eax
call dword [sym.imp.KERNEL32.dll_SetLastError]
xor eax, eax
pop esi
ret
push dword [esp + 8]
call dword [sym.imp.KERNEL32.dll_GetFileAttributesW]
cmp eax, 0xffffffff
je 0x401ed3
test al, 0x10
jne 0x401ed3
push esi
jmp 0x401eb3
xor eax, eax
inc eax
pop esi
ret

Function at 0x4020e6
Capabilities:
Extract resource via kernel32 functions

Disassembly:
push ebp
mov ebp, esp
sub esp, 0x44
push ebx
push esi
push edi
push 0
call dword [sym.imp.KERNEL32.dll_GetModuleHandleW]
mov esi, dword [sym.imp.KERNEL32.dll_FindResourceExA]
mov ebx, eax
movzx eax, word [0x41b920]
push eax
push dword [ebp + 0xc]
push dword [ebp + 8]
push ebx
call esi
mov edi, eax
test edi, edi
jne 0x40212a
push 0x409
push dword [ebp + 0xc]
push dword [ebp + 8]
push ebx
call esi
mov edi, eax
test edi, edi
je 0x402150
mov esi, dword [ebp + 0x10]
test esi, esi
je 0x40213b
push edi
push ebx
call dword [sym.imp.KERNEL32.dll_SizeofResource]
mov dword [esi], eax
push edi
push ebx
call dword [sym.imp.KERNEL32.dll_LoadResource]
test eax, eax
je 0x402150
push eax
call dword [sym.imp.KERNEL32.dll_LockResource]
jmp 0x4021ca
cmp dword [0x41b930], 0
jne 0x4021c8
mov esi, dword [sym.imp.KERNEL32.dll_LoadLibraryA]
push str.SetProcessPreferredUILanguages
mov ebx, str.kernel32
push ebx
mov dword [0x41b930], 1
call esi
mov edi, dword [sym.imp.KERNEL32.dll_GetProcAddress]
push eax
call edi
push 0
mov dword [ebp - 4], eax
movzx eax, word [0x41b920]
push 0x409
push 0
push eax
lea eax, [ebp - 0x44]
push str._04X_c_04X_c
push eax
call dword [sym.imp.USER32.dll_wsprintfW]
add esp, 0x18
cmp dword [ebp - 4], 0
jne 0x4021bd
push str.SetThreadPreferredUILanguages
push ebx
call esi
push eax
call edi
test eax, eax
mov dword [ebp - 4], eax
je 0x4021c8
push 0
lea eax, [ebp - 0x44]
push eax
push 4
call dword [ebp - 4]
xor eax, eax
pop edi
pop esi
pop ebx
leave
ret