joyce8/EMBER2024-capa huggingface dataset:
Function at 0x439850
Capabilities:
Execute anti-debugging instructions

Disassembly:
push ebp
mov ebp, esp
sub esp, 0x48
push esi
mov esi, dword [ebp + 8]
push edi
xor edi, edi
cmp esi, edi
jne 0x43986b
pop edi
xor al, al
pop esi
mov esp, ebp
pop ebp
ret 4
push 0x80000000
lea ecx, [ebp - 0x18]
call fcn.00437f80
mov eax, dword [ebp - 0x18]
mov ecx, eax
shr ecx, 0x1f
test cl, 1
je 0x4398fb
cmp eax, 0x80000004
jb 0x4398fb
mov edx, dword [esi]
push 0x48a12c
mov ecx, esi
call dword [edx + 0xa4]
push 0x80000002
lea ecx, [ebp - 0x48]
call fcn.00437f80
push 0x80000003
lea ecx, [ebp - 0x38]
call fcn.00437f80
push 0x80000004
lea ecx, [ebp - 0x28]
call fcn.00437f80
test dword [ebp - 0x1c], 0xff000000
lea eax, [ebp - 0x48]
je 0x4398d3
mov eax, 0x48a124
cmp byte [eax], 0x20
jne 0x4398e1
mov cl, byte [eax + 1]
inc eax
cmp cl, 0x20
je 0x4398d8
mov edx, dword [esi]
push eax
mov ecx, esi
call dword [edx + 0xa4]
mov eax, dword [esi]
push str._r_n
mov ecx, esi
call dword [eax + 0xa4]
push ebx
mov ebx, dword [0x4735c4]
mov dword [ebp - 4], edi
mov dword [ebp + 8], edi
call ebx
mov edi, eax
rdtsc
mov dword [ebp - 4], eax
mov dword [ebp - 8], edx
call ebx
sub eax, edi
cmp eax, 0xc8
jbe 0x439914
call ebx
mov ebx, eax
sub ebx, edi
rdtsc
mov dword [ebp + 8], eax
mov dword [ebp - 8], edx
mov ecx, dword [ebp - 4]
mov eax, dword [ebp + 8]
sub eax, ecx
mov ecx, 7
mov dword [ebp + 8], eax
xor eax, eax
lea edi, [ebp - 0x37]
mov byte [ebp - 0x38], 0
rep stosd dword es:[edi], eax
mov edx, dword [esi]
push 0x48a110
stosw word es:[edi], ax
mov ecx, esi
stosb byte es:[edi], al
call dword [edx + 0xa4]
lea eax, [ebp - 0x38]
push 0xa
push eax
mov eax, dword [ebp + 8]
xor edx, edx
mov edi, dword [esi]
div ebx
mov ecx, eax
mov eax, 0x10624dd3
mul ecx
shr edx, 6
push edx
call fcn.00452fce
add esp, 0xc
mov ecx, esi
push eax
call dword [edi + 0xa4]
mov edx, dword [esi]
push 0x48a10c
mov ecx, esi
call dword [edx + 0xa4]
pop ebx
pop edi
mov al, 1
pop esi
mov esp, ebp
pop ebp
ret 4
Function at 0x405d9a
Capabilities:
Encode data using xor
Hash data with crc32

Disassembly:
cmp dword [0x42c574], 0
push esi
jne 0x405dd1
xor ecx, ecx
push 8
mov eax, ecx
pop esi
mov edx, eax
and dl, 1
neg dl
sbb edx, edx
and edx, 0xedb88320
shr eax, 1
xor eax, edx
dec esi
jne 0x405dab
mov dword [ecx*4 + 0x42c570], eax
inc ecx
cmp ecx, 0x100
jl 0x405da6
mov edx, dword [esp + 0x10]
mov eax, dword [esp + 8]
test edx, edx
not eax
jbe 0x405e02
mov ecx, dword [esp + 0xc]
push edi
movzx edi, byte [ecx]
mov esi, eax
and esi, 0xff
xor esi, edi
shr eax, 8
mov esi, dword [esi*4 + 0x42c570]
xor eax, esi
inc ecx
dec edx
jne 0x405de4
pop edi
not eax
pop esi
ret 0xc

Function at 0x4282a0
Capabilities:
Packed with generic packer

Disassembly:
pushal
mov esi, section.UPX1
lea edi, [esi - 0x17000]
push edi
jmp 0x4282ba
mov al, byte [esi]
inc esi
mov byte [edi], al
inc edi
add ebx, ebx
jne 0x4282c1
mov ebx, dword [esi]
sub esi, 0xfffffffc
adc ebx, ebx
jb 0x4282b0
mov eax, 1
add ebx, ebx
jne 0x4282d3
mov ebx, dword [esi]
sub esi, 0xfffffffc
adc ebx, ebx
adc eax, eax
add ebx, ebx
jae 0x4282c8
jne 0x4282e4
mov ebx, dword [esi]
sub esi, 0xfffffffc
adc ebx, ebx
jae 0x4282c8
xor ecx, ecx
sub eax, 3
jb 0x4282f8
shl eax, 8
mov al, byte [esi]
inc esi
xor eax, 0xffffffff
je 0x42836a
mov ebp, eax
add ebx, ebx
jne 0x428303
mov ebx, dword [esi]
sub esi, 0xfffffffc
adc ebx, ebx
adc ecx, ecx
add ebx, ebx
jne 0x428310
mov ebx, dword [esi]
sub esi, 0xfffffffc
adc ebx, ebx
adc ecx, ecx
jne 0x428334
inc ecx
add ebx, ebx
jne 0x428320
mov ebx, dword [esi]
sub esi, 0xfffffffc
adc ebx, ebx
adc ecx, ecx
add ebx, ebx
jae 0x428315
jne 0x428331
mov ebx, dword [esi]
sub esi, 0xfffffffc
adc ebx, ebx
jae 0x428315
add ecx, 2
cmp ebp, 0xfffff300
adc ecx, 1
lea edx, [edi + ebp]
cmp ebp, 0xfffffffc
jbe 0x428354
mov al, byte [edx]
inc edx
mov byte [edi], al
inc edi
dec ecx
jne 0x428345
jmp 0x4282b6
mov eax, dword [edx]
add edx, 4
mov dword [edi], eax
add edi, 4
sub ecx, 4
ja 0x428354
add edi, ecx
jmp 0x4282b6
pop esi
mov edi, esi
mov ecx, 0x115
mov al, byte [edi]
inc edi
sub al, 0xe8
cmp al, 1
ja 0x428372
cmp byte [edi], 3
jne 0x428372
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 0x428377
lea edi, [esi + 0x26000]
mov eax, dword [edi]
or eax, eax
je 0x4283e6
mov ebx, dword [edi + 4]
lea eax, [eax + esi + 0x28000]
add ebx, esi
push eax
add edi, 8
call dword [esi + 0x280c4]
xchg ebp, eax
mov al, byte [edi]
inc edi
or al, al
je 0x4283a4
mov ecx, edi
push edi
dec eax
repne scasb al, byte es:[edi]
push ebp
call dword [esi + 0x280cc]
or eax, eax
je 0x4283e0
mov dword [ebx], eax
add ebx, 4
jmp 0x4283c1
call dword [esi + 0x280c8]
mov ebp, dword [esi + 0x280d0]
lea edi, [esi - 0x1000]
mov ebx, 0x1000
push eax
push esp
push 4
push ebx
push edi
call ebp
lea eax, [edi + 0x1ef]
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 0x42841a
sub esp, 0xffffff80
jmp 0x409ac0
Function at 0x40b57d
Capabilities:
Write file on windows

Disassembly:
push ebp
mov ebp, esp
sub esp, 0x1a4
mov edx, dword [ebp + 8]
xor ecx, ecx
mov eax, 0x410920
cmp edx, dword [eax]
je 0x40b59f
add eax, 8
inc ecx
cmp eax, 0x4109b0
jl 0x40b590
push esi
mov esi, ecx
shl esi, 3
cmp edx, dword [esi + 0x410920]
jne 0x40b6cd
mov eax, dword [0xf0f8b4]
cmp eax, 1
je 0x40b6a7
test eax, eax
jne 0x40b5d0
cmp dword [0x410248], 1
je 0x40b6a7
cmp edx, 0xfc
je 0x40b6cd
lea eax, [ebp - 0x1a4]
push 0x104
push eax
push 0
call dword [sym.imp.KERNEL32.dll_GetModuleFileNameA]
test eax, eax
jne 0x40b607
lea eax, [ebp - 0x1a4]
push str._program_name_unknown_
push eax
call fcn.004088e0
pop ecx
pop ecx
lea eax, [ebp - 0x1a4]
push edi
push eax
lea edi, [ebp - 0x1a4]
call fcn.00408ab0
inc eax
pop ecx
cmp eax, 0x3c
jbe 0x40b64a
lea eax, [ebp - 0x1a4]
push eax
call fcn.00408ab0
mov edi, eax
lea eax, [ebp - 0x1a4]
sub eax, 0x3b
push 3
add edi, eax
push 0x40f48c
push edi
call fcn.00409000
add esp, 0x10
lea eax, [ebp - 0xa0]
push str.Runtime_Error__n_nProgram:
push eax
call fcn.004088e0
lea eax, [ebp - 0xa0]
push edi
push eax
call fcn.004088f0
lea eax, [ebp - 0xa0]
push 0x40f46c
push eax
call fcn.004088f0
push dword [esi + 0x410924]
lea eax, [ebp - 0xa0]
push eax
call fcn.004088f0
push 0x12010
lea eax, [ebp - 0xa0]
push str.Microsoft_Visual_C_Runtime_Library
push eax
call fcn.0040d753
add esp, 0x2c
pop edi
jmp 0x40b6cd
lea eax, [ebp + 8]
lea esi, [esi + 0x410924]
push 0
push eax
push dword [esi]
call fcn.00408ab0
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 0x401000
Capabilities:
Accept command line arguments
Hide graphical window

Disassembly:
jmp 0x403a1c
mov ecx, ebp
push ebp
mov ebp, esp
mov dword [0x405076], ecx
call dword [sym.imp.kernel32.dll_GetCommandLineA]
mov dword [0x405220], eax
mov dword [0x4051a8], 0x403098
mov dword [0x4051a4], 2
jmp 0x403a4c
mov dword [0x4051ac], 0
mov dword [0x4051b0], 0
mov dword [0x4051a0], 0x30
push 0
call dword [sym.imp.kernel32.dll_GetModuleHandleA]
mov dword [0x4051b4], eax
mov dword [0x4051c8], 0x40426e
mov dword [0x4051c0], 0xf
mov dword [0x40506e], eax
push 0x7f00
push 0
call dword [sym.imp.user32.dll_LoadIconA]
mov dword [0x4051b8], eax
mov dword [0x4051cc], eax
push 0x7f00
push 0
call dword [sym.imp.user32.dll_LoadCursorA]
mov dword [0x4051bc], eax
push 0x4051a0
call dword [sym.imp.user32.dll_RegisterClassExA]
push 0
push dword [0x40506e]
push 0
push 0
push 0x1e5
push 0x21e
push 0xffffe52a
push 0xfffff588
push 0x40000
push str.justam
push 0x40426e
push 0
call dword [sym.imp.user32.dll_CreateWindowExA]
mov dword [0x405218], eax
push 5
push dword [0x405218]
call dword [sym.imp.user32.dll_ShowWindow]
push dword [0x405218]
call dword [sym.imp.user32.dll_UpdateWindow]
jmp 0x403b1f
push 0
push 0
push 0
push 0x4051d0
call dword [sym.imp.user32.dll_GetMessageA]
or eax, eax
je 0x403b4c
push 0x4051d0
call dword [sym.imp.user32.dll_TranslateMessage]
push 0x4051d0
call dword [sym.imp.user32.dll_DispatchMessageA]
jmp 0x403b1f
mov eax, dword [0x4051d8]
jmp 0x403b59
call 0x402be1
ret
Function at 0x40282f
Capabilities:
Enumerate pe sections

Disassembly:
push ebp
mov ebp, esp
sub esp, 0x14
mov eax, dword [ebp + 0x10]
mov eax, dword [eax + 4]
mov dword [ebp - 0x10], eax
mov eax, dword [ebp + 0x10]
mov eax, dword [eax]
mov ecx, dword [ebp + 0x10]
mov ecx, dword [ecx]
movzx ecx, word [ecx + 0x14]
lea eax, [eax + ecx + 0x18]
mov dword [ebp - 8], eax
mov eax, dword [0x40803c]
mov ecx, dword [0x408040]
lea eax, [ecx + eax - 9]
mov dword [0x40803c], eax
and dword [ebp - 0x14], 0
jmp 0x40287d
mov eax, dword [ebp - 0x14]
inc eax
mov dword [ebp - 0x14], eax
mov eax, dword [ebp - 8]
add eax, 0x28
mov dword [ebp - 8], eax
mov eax, dword [ebp + 0x10]
mov eax, dword [eax]
movzx eax, word [eax + 6]
cmp dword [ebp - 0x14], eax
jge 0x402a22
push 0
call dword [sym.imp.KERNEL32.dll_Sleep]
mov eax, dword [0x408040]
xor edx, edx
push 0xc
pop ecx
div ecx
mov dword [0x408040], eax
mov eax, dword [ebp - 8]
cmp dword [eax + 0x10], 0
jne 0x40297b
mov eax, dword [0x408040]
shl eax, 1
mov dword [0x40803c], eax
mov eax, dword [0x40803c]
imul eax, dword [0x408040]
mov ecx, dword [0x408040]
imul ecx, ecx, 5
sub eax, ecx
mov dword [0x40803c], eax
mov eax, dword [ebp + 0xc]
mov eax, dword [eax + 0x38]
mov dword [ebp - 4], eax
mov eax, dword [0x408040]
xor edx, edx
push 0xc
pop ecx
div ecx
mov dword [0x408040], eax
cmp dword [ebp - 4], 0
jle 0x40296e
mov eax, dword [0x408040]
add eax, 8
mov dword [0x408040], eax
push 4
push 0x1000
push dword [ebp - 4]
mov eax, dword [ebp - 8]
mov ecx, dword [ebp - 0x10]
add ecx, dword [eax + 0xc]
push ecx
call dword [sym.imp.KERNEL32.dll_VirtualAlloc]
mov dword [ebp - 0xc], eax
mov eax, dword [0x40803c]
mov ecx, dword [0x408040]
lea eax, [ecx + eax - 9]
mov dword [0x40803c], eax
mov eax, dword [0x40803c]
sub eax, 4
mov dword [0x408040], eax
mov eax, dword [ebp - 8]
mov ecx, dword [ebp - 0xc]
mov dword [eax + 8], ecx
mov eax, dword [0x408040]
shl eax, 3
mov dword [0x408040], eax
push dword [ebp - 4]
push 0
push dword [ebp - 0xc]
call fcn.004036d5
add esp, 0xc
push 0
call dword [sym.imp.KERNEL32.dll_Sleep]
jmp 0x40286d
mov eax, dword [0x408040]
imul eax, dword [0x408040]
sub eax, 3
mov dword [0x40803c], eax
push 4
push 0x1000
mov eax, dword [ebp - 8]
push dword [eax + 0x10]
mov eax, dword [ebp - 8]
mov ecx, dword [ebp - 0x10]
add ecx, dword [eax + 0xc]
push ecx
call dword [sym.imp.KERNEL32.dll_VirtualAlloc]
mov dword [ebp - 0xc], eax
mov eax, dword [0x40803c]
mov ecx, dword [0x408040]
lea eax, [ecx + eax - 9]
mov dword [0x40803c], eax
mov eax, dword [0x40803c]
imul eax, dword [0x408040]
mov ecx, dword [0x408040]
imul ecx, ecx, 5
sub eax, ecx
mov dword [0x40803c], eax
mov eax, dword [ebp - 8]
push dword [eax + 0x10]
mov eax, dword [ebp - 8]
mov ecx, dword [ebp + 8]
add ecx, dword [eax + 0x14]
push ecx
push dword [ebp - 0xc]
jmp 0x41f934
push 0
call dword [sym.imp.KERNEL32.dll_Sleep]
mov eax, dword [0x40803c]
imul eax, dword [0x408040]
mov ecx, dword [0x408040]
imul ecx, ecx, 5
sub eax, ecx
mov dword [0x40803c], eax
leave
ret
Function at 0x402c8a
Capabilities:
Check for time delay via queryperformancecounter

Disassembly:
push ebp
mov ebp, esp
sub esp, 0x28
mov eax, dword [ebp + 8]
mov eax, dword [eax + 4]
mov dword [ebp - 4], eax
mov eax, dword [ebp + 8]
mov eax, dword [eax]
add eax, 0xa0
mov dword [ebp - 0xc], eax
mov eax, dword [0x40803c]
imul eax, dword [0x408040]
mov ecx, dword [0x408040]
imul ecx, ecx, 5
sub eax, ecx
mov dword [0x40803c], eax
mov eax, dword [0x40803c]
imul eax, eax, 0x63
mov dword [0x40803c], eax
mov eax, dword [ebp - 0xc]
cmp dword [eax + 4], 0
jbe 0x402e5e
mov eax, dword [ebp - 0xc]
mov ecx, dword [ebp - 4]
add ecx, dword [eax]
mov dword [ebp - 0x10], ecx
push 0x40f320
call dword [sym.imp.KERNEL32.dll_QueryPerformanceCounter]
mov eax, dword [ebp - 0x10]
cmp dword [eax], 0
jbe 0x402e5e
mov eax, dword [ebp - 0x10]
mov ecx, dword [ebp - 4]
add ecx, dword [eax]
mov dword [ebp - 0x14], ecx
mov eax, dword [ebp - 0x10]
add eax, 8
mov dword [ebp - 0x18], eax
push 0
call dword [sym.imp.KERNEL32.dll_Sleep]
and dword [ebp - 8], 0
jmp 0x402d2f
mov eax, dword [ebp - 8]
inc eax
mov dword [ebp - 8], eax
mov eax, dword [ebp - 0x18]
inc eax
inc eax
mov dword [ebp - 0x18], eax
mov eax, dword [ebp - 0x10]
mov eax, dword [eax + 4]
sub eax, 8
shr eax, 1
cmp dword [ebp - 8], eax
jae 0x402e14
mov eax, dword [0x408040]
shl eax, 3
mov dword [0x408040], eax
mov eax, dword [0x408040]
add eax, 7
mov dword [0x40803c], eax
mov eax, dword [ebp - 0x18]
movzx eax, word [eax]
sar eax, 0xc
mov dword [ebp - 0x20], eax
mov eax, dword [0x408040]
shl eax, 3
mov dword [0x408040], eax
mov eax, dword [0x40803c]
sub eax, 4
mov dword [0x408040], eax
mov eax, dword [ebp - 0x18]
movzx eax, word [eax]
and eax, 0xfff
mov dword [ebp - 0x24], eax
mov eax, dword [0x408040]
xor edx, edx
push 0xc
pop ecx
div ecx
mov dword [0x408040], eax
mov eax, dword [ebp - 0x20]
mov dword [ebp - 0x28], eax
cmp dword [ebp - 0x28], 0
je 0x402db6
cmp dword [ebp - 0x28], 3
je 0x402db8
jmp 0x402dfe
jmp 0x402e0f
mov eax, dword [ebp - 0x14]
add eax, dword [ebp - 0x24]
mov dword [ebp - 0x1c], eax
mov eax, dword [0x40803c]
sub eax, 4
mov dword [0x408040], eax
mov eax, dword [ebp - 0x1c]
mov eax, dword [eax]
add eax, dword [ebp + 0xc]
mov ecx, dword [ebp - 0x1c]
mov dword [ecx], eax
mov eax, dword [0x40803c]
mov ecx, dword [0x408040]
lea eax, [ecx + eax - 9]
mov dword [0x40803c], eax
mov eax, dword [0x40803c]
sub eax, 4
mov dword [0x408040], eax
jmp 0x402e0f
mov eax, dword [0x408040]
xor edx, edx
push 0xc
pop ecx
div ecx
mov dword [0x408040], eax
jmp 0x402d20
mov eax, dword [0x40803c]
mov ecx, dword [0x408040]
lea eax, [ecx + eax - 9]
mov dword [0x40803c], eax
mov eax, dword [0x408040]
add eax, 8
mov dword [0x408040], eax
mov eax, dword [ebp - 0x10]
mov ecx, dword [ebp - 0x10]
add ecx, dword [eax + 4]
mov dword [ebp - 0x10], ecx
push 0x40f320
call dword [sym.imp.KERNEL32.dll_QueryPerformanceCounter]
mov eax, dword [0x40803c]
sub eax, 4
mov dword [0x408040], eax
jmp 0x402cf2
mov eax, dword [0x40803c]
imul eax, eax, 0x63
mov dword [0x40803c], eax
mov eax, dword [0x408040]
shl eax, 3
mov dword [0x408040], eax
leave
ret
Function at 0x4050f5
Capabilities:
Write file on windows

Disassembly:
push ebp
mov ebp, esp
sub esp, 0x1a4
mov edx, dword [ebp + 8]
xor ecx, ecx
mov eax, 0x40eb68
cmp edx, dword [eax]
je 0x405117
add eax, 8
inc ecx
cmp eax, 0x40ebf8
jl 0x405108
push esi
mov esi, ecx
shl esi, 3
cmp edx, dword [esi + 0x40eb68]
jne 0x405245
mov eax, dword [0x41dda0]
cmp eax, 1
je 0x40521f
test eax, eax
jne 0x405148
cmp dword [0x40eab8], 1
je 0x40521f
cmp edx, 0xfc
je 0x405245
lea eax, [ebp - 0x1a4]
push 0x104
push eax
push 0
call dword [sym.imp.KERNEL32.dll_GetModuleFileNameA]
test eax, eax
jne 0x40517f
lea eax, [ebp - 0x1a4]
push str._program_name_unknown_
push eax
call fcn.004059b0
pop ecx
pop ecx
lea eax, [ebp - 0x1a4]
push edi
push eax
lea edi, [ebp - 0x1a4]
call fcn.00405aa0
inc eax
pop ecx
cmp eax, 0x3c
jbe 0x4051c2
lea eax, [ebp - 0x1a4]
push eax
call fcn.00405aa0
mov edi, eax
lea eax, [ebp - 0x1a4]
sub eax, 0x3b
push 3
add edi, eax
push 0x4073a0
push edi
call fcn.00405bb0
add esp, 0x10
lea eax, [ebp - 0xa0]
push str.Runtime_Error__n_nProgram:
push eax
call fcn.004059b0
lea eax, [ebp - 0xa0]
push edi
push eax
call fcn.004059c0
lea eax, [ebp - 0xa0]
push 0x407380
push eax
call fcn.004059c0
push dword [esi + 0x40eb6c]
lea eax, [ebp - 0xa0]
push eax
call fcn.004059c0
push 0x12010
lea eax, [ebp - 0xa0]
push str.Microsoft_Visual_C_Runtime_Library
push eax
call fcn.00405b1b
add esp, 0x2c
pop edi
jmp 0x405245
lea eax, [ebp + 8]
lea esi, [esi + 0x40eb6c]
push 0
push eax
push dword [esi]
call fcn.00405aa0
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 0x438e90
Capabilities:
Packed with generic packer

Disassembly:
pushal
mov esi, section.UPX1
lea edi, [esi - 0x2c000]
push edi
jmp 0x438eaa
mov al, byte [esi]
inc esi
mov byte [edi], al
inc edi
add ebx, ebx
jne 0x438eb1
mov ebx, dword [esi]
sub esi, 0xfffffffc
adc ebx, ebx
jb 0x438ea0
mov eax, 1
add ebx, ebx
jne 0x438ec3
mov ebx, dword [esi]
sub esi, 0xfffffffc
adc ebx, ebx
adc eax, eax
add ebx, ebx
jae 0x438eb8
jne 0x438ed4
mov ebx, dword [esi]
sub esi, 0xfffffffc
adc ebx, ebx
jae 0x438eb8
xor ecx, ecx
sub eax, 3
jb 0x438ee8
shl eax, 8
mov al, byte [esi]
inc esi
xor eax, 0xffffffff
je 0x438f5a
mov ebp, eax
add ebx, ebx
jne 0x438ef3
mov ebx, dword [esi]
sub esi, 0xfffffffc
adc ebx, ebx
adc ecx, ecx
add ebx, ebx
jne 0x438f00
mov ebx, dword [esi]
sub esi, 0xfffffffc
adc ebx, ebx
adc ecx, ecx
jne 0x438f24
inc ecx
add ebx, ebx
jne 0x438f10
mov ebx, dword [esi]
sub esi, 0xfffffffc
adc ebx, ebx
adc ecx, ecx
add ebx, ebx
jae 0x438f05
jne 0x438f21
mov ebx, dword [esi]
sub esi, 0xfffffffc
adc ebx, ebx
jae 0x438f05
add ecx, 2
cmp ebp, 0xfffff300
adc ecx, 1
lea edx, [edi + ebp]
cmp ebp, 0xfffffffc
jbe 0x438f44
mov al, byte [edx]
inc edx
mov byte [edi], al
inc edi
dec ecx
jne 0x438f35
jmp 0x438ea6
mov eax, dword [edx]
add edx, 4
mov dword [edi], eax
add edi, 4
sub ecx, 4
ja 0x438f44
add edi, ecx
jmp 0x438ea6
pop esi
mov edi, esi
mov ecx, 0x91a
mov al, byte [edi]
inc edi
sub al, 0xe8
cmp al, 1
ja 0x438f62
cmp byte [edi], 9
jne 0x438f62
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 0x438f67
lea edi, [esi + 0x36000]
mov eax, dword [edi]
or eax, eax
je 0x438fdf
mov ebx, dword [edi + 4]
lea eax, [eax + esi + 0x53f44]
add ebx, esi
push eax
add edi, 8
call dword [esi + 0x54024]
xchg ebp, eax
mov al, byte [edi]
inc edi
or al, al
je 0x438f94
mov ecx, edi
jns 0x438fc3
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 + 0x5402c]
or eax, eax
je 0x438fd9
mov dword [ebx], eax
add ebx, 4
jmp 0x438fb1
call dword [esi + 0x54028]
mov ebp, dword [esi + 0x54030]
lea edi, [esi - 0x1000]
mov ebx, 0x1000
push eax
push esp
push 4
push ebx
push edi
call ebp
lea eax, [edi + 0x17f]
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 0x439013
sub esp, 0xffffff80
jmp 0x41382f
Function at 0x401210
Capabilities:
Create process on windows

Disassembly:
push ebp
mov ebp, esp
sub esp, 0x10
mov eax, dword [0x441094]
xor eax, ebp
mov dword [ebp - 4], eax
xorps xmm0, xmm0
mov dword [ebp - 8], 0
push esi
lea ecx, [ebp - 0x10]
movq qword [ebp - 0x10], xmm0
call fcn.00401410
lea eax, [ebp - 0x10]
push eax
call fcn.00401170
add esp, 4
test eax, eax
je 0x401279
push str.RvRvpnGui.exe
lea ecx, [ebp - 0x10]
call fcn.004015b0
test eax, eax
jne 0x40125d
xor esi, esi
jmp 0x40127e
push 1
push 0
push 0
lea ecx, [ebp - 0x10]
call fcn.004014a0
push eax
push str.open
push 0
call dword [sym.imp.SHELL32.dll_ShellExecuteW]
mov esi, 1
lea ecx, [ebp - 0x10]
call fcn.00401430
mov ecx, dword [ebp - 4]
mov eax, esi
xor ecx, ebp
pop esi
call fcn.0040c5a7
mov esp, ebp
pop ebp
ret

Function at 0x4035a0
Capabilities:
Get common file path

Disassembly:
push ebp
mov ebp, esp
push 0xffffffffffffffff
push 0x42fbdc
mov eax, dword fs:[0]
push eax
sub esp, 0x22c
mov eax, dword [0x441094]
xor eax, ebp
mov dword [ebp - 0x10], eax
push ebx
push esi
push edi
push eax
lea eax, [ebp - 0xc]
mov dword fs:[0], eax
mov esi, dword [ebp + 0xc]
xor ebx, ebx
mov edi, dword [ebp + 8]
mov dword [ebp - 0x21c], ebx
test esi, esi
je 0x4036d9
test edi, edi
je 0x4036d9
push 0x208
lea eax, [ebp - 0x218]
push ebx
push eax
call fcn.0040d690
mov ecx, esi
add esp, 0xc
lea edx, [ecx + 2]
mov ax, word [ecx]
add ecx, 2
test ax, ax
jne 0x403606
sub ecx, edx
sar ecx, 1
jne 0x40362f
lea eax, [ebp - 0x218]
push eax
push 0x104
call dword [sym.imp.KERNEL32.dll_GetTempPathW]
lea esi, [ebp - 0x218]
mov ecx, edi
lea edx, [ecx + 2]
mov ax, word [ecx]
add ecx, 2
test ax, ax
jne 0x403634
sub ecx, edx
sar ecx, 1
push ecx
push edi
mov ecx, 0x441028
call fcn.00402c80
push 0x431aac
push 0xd0
call fcn.0040ca9e
mov edi, eax
add esp, 8
mov dword [ebp - 0x220], edi
mov dword [ebp - 4], 0
test edi, edi
je 0x4036b6
push esi
lea ecx, [ebp - 0x238]
call fcn.00402640
push 0
push 0x431328
push 0x520
push 7
push 0
push 0x402de0
push 0
lea eax, [ebp - 0x238]
mov byte [ebp - 4], 1
mov ebx, 1
mov ecx, edi
push eax
mov dword [ebp - 0x21c], ebx
call fcn.00403b40
jmp 0x4036b8
xor eax, eax
mov dword [0x441f98], eax
test bl, 1
je 0x4036d2
lea ecx, [ebp - 0x238]
call fcn.004027e0
mov eax, dword [0x441f98]
test eax, eax
setne al
jmp 0x4036db
xor al, al
mov ecx, dword [ebp - 0xc]
mov dword fs:[0], ecx
pop ecx
pop edi
pop esi
pop ebx
mov ecx, dword [ebp - 0x10]
xor ecx, ebp
call fcn.0040c5a7
mov esp, ebp
pop ebp
ret
Function at 0x4090a0
Capabilities:
Write file on windows

Disassembly:
push ebp
mov ebp, esp
sub esp, 0x28
mov eax, dword [0x441094]
xor eax, ebp
mov dword [ebp - 4], eax
push esi
mov esi, ecx
cmp dword [esi + 0x38], 0
je 0x40915a
cmp byte [esi + 0x3d], 0
je 0x40915a
mov eax, dword [esi]
push edi
push 0xffffffffffffffff
call dword [eax + 0xc]
cmp eax, 0xffffffff
je 0x409148
mov ecx, dword [esi + 0x38]
lea eax, [ebp - 0x28]
push eax
lea eax, [ebp - 4]
push eax
mov edx, dword [ecx]
lea eax, [ebp - 0x24]
push eax
lea eax, [esi + 0x40]
push eax
call dword [edx + 0x20]
sub eax, 0
je 0x409110
sub eax, 1
je 0x409114
sub eax, 2
jne 0x409148
mov byte [esi + 0x3d], al
mov al, 1
pop edi
pop esi
mov ecx, dword [ebp - 4]
xor ecx, ebp
call fcn.0040c5a7
mov esp, ebp
pop ebp
ret
mov byte [esi + 0x3d], 0
mov edi, dword [ebp - 0x28]
lea eax, [ebp - 0x24]
sub edi, eax
je 0x409131
push dword [esi + 0x4c]
push edi
push 1
push eax
call fcn.0041b9b5
add esp, 0x10
cmp edi, eax
jne 0x409148
cmp byte [esi + 0x3d], 0
pop edi
sete al
pop esi
mov ecx, dword [ebp - 4]
xor ecx, ebp
call fcn.0040c5a7
mov esp, ebp
pop ebp
ret
pop edi
xor al, al
pop esi
mov ecx, dword [ebp - 4]
xor ecx, ebp
call fcn.0040c5a7
mov esp, ebp
pop ebp
ret
mov ecx, dword [ebp - 4]
mov al, 1
xor ecx, ebp
pop esi
call fcn.0040c5a7
mov esp, ebp
pop ebp
ret