joyce8/EMBER2024-capa huggingface dataset:
Function at 0x405d6a
Capabilities:
Encode data using xor

Disassembly:
push ebp
mov ebp, esp
sub esp, 0x24
pushal
call 0x405d79
pop dword [ebp - 0x14]
mov eax, 0xdd01b765
add eax, 0x233ea614
sub dword [ebp - 0x14], eax
mov dword [ebp - 0x24], 0xfcb1e1ad
sub dword [ebp - 0x24], 0xae5f9c62
mov dword [ebp - 0x20], 0x2f356296
sub dword [ebp - 0x20], 0xfd021651
mov dword [ebp - 0x1c], 0x1fad9d44
sub dword [ebp - 0x1c], 0xd3615916
mov dword [ebp - 0x18], 0x3a3d6cd6
sub dword [ebp - 0x18], 0x3a3d6cd6
lea eax, [ebp - 0x24]
push eax
mov eax, sym.imp.kernel32.dll_GetModuleHandleA
add eax, dword [ebp - 0x14]
call dword [eax]
mov dword [ebp - 0x24], 0x2bfb1224
sub dword [ebp - 0x24], 0xb788a8ce
mov dword [ebp - 0x20], 0x2c515c6e
sub dword [ebp - 0x20], 0xeae4faf9
mov dword [ebp - 0x1c], 0xfd79dd06
sub dword [ebp - 0x1c], 0x9a0a709a
mov dword [ebp - 0x18], 0x86319b1b
sub dword [ebp - 0x18], 0x86319b1b
lea ebx, [ebp - 0x24]
push ebx
push eax
mov eax, 0xbc7ad3c2
sub eax, 0xbc3a63a2
add eax, dword [ebp - 0x14]
call dword [eax]
push 0x40
push 0x1000
push 0x3d607
push 0
call eax
mov ecx, 0xa7e9ef8a
sub ecx, 0xa7e990e4
mov esi, eax
mov edx, 0x3338533e
sub edx, 0x32f78b3e
add edx, dword [ebp - 0x14]
mov ebx, 0x544cede3
sub ebx, 0xc6141c55
mov edi, dword [edx]
xor dword [ebp - 0x10], 0xfdb8cda6
sub edi, ebx
sub dword [ebp - 8], edx
mov dword [esi], edi
xor dword [ebp - 8], 0x8669234f
add esi, 4
add edx, 4
loop 0x405e96
add eax, 0x7921f236
sub eax, 0x792084cb
mov ebx, eax
add eax, 5
mov ecx, 0x400000
add ecx, dword [ebp - 0x14]
call ebx
leave
ret
Function at 0x407010
Capabilities:
Enumerate pe sections

Disassembly:
mov edi, edi
push ebp
mov ebp, esp
mov eax, dword [ebp + 8]
xor edx, edx
push ebx
push esi
push edi
mov ecx, dword [eax + 0x3c]
add ecx, eax
movzx eax, word [ecx + 0x14]
movzx ebx, word [ecx + 6]
add eax, 0x18
add eax, ecx
test ebx, ebx
je 0x40704e
mov edi, dword [ebp + 0xc]
mov esi, dword [eax + 0xc]
cmp edi, esi
jb 0x407046
mov ecx, dword [eax + 8]
add ecx, esi
cmp edi, ecx
jb 0x407050
inc edx
add eax, 0x28
cmp edx, ebx
jb 0x407036
xor eax, eax
pop edi
pop esi
pop ebx
pop ebp
ret

Function at 0x407120
Capabilities:
Parse pe header

Disassembly:
mov edi, edi
push ebp
mov ebp, esp
mov ecx, dword [ebp + 8]
mov eax, 0x5a4d
cmp word [ecx], ax
jne 0x407151
mov eax, dword [ecx + 0x3c]
add eax, ecx
cmp dword [eax], 0x4550
jne 0x407151
mov ecx, 0x10b
cmp word [eax + 0x18], cx
jne 0x407151
mov eax, 1
pop ebp
ret
xor eax, eax
pop ebp
ret

Function at 0x40344c
Capabilities:
Encode data using xor

Disassembly:
push ebp
mov ebp, esp
sub esp, 0x48
pushal
call 0x40345b
pop dword [ebp - 0x38]
mov eax, 0x40345b
sub dword [ebp - 0x38], eax
mov dword [ebp - 0x48], 0x1a29bdd3
sub dword [ebp - 0x48], 0xcbd77888
mov dword [ebp - 0x44], 0xfba08a80
sub dword [ebp - 0x44], 0xc96d3e3b
mov dword [ebp - 0x40], 0xeef5c754
add dword [ebp - 0x40], 0x5d567cda
mov dword [ebp - 0x3c], 0x4acbab9b
sub dword [ebp - 0x3c], 0x4acbab9b
lea eax, [ebp - 0x48]
push eax
mov eax, sym.imp.kernel32.dll_GetModuleHandleA
add eax, dword [ebp - 0x38]
call dword [eax]
mov dword [ebp - 0x48], 0x5aea101a
add dword [ebp - 0x48], 0x1988593c
mov dword [ebp - 0x44], 0x3a2f4fb5
sub dword [ebp - 0x44], 0xf8c2ee40
mov dword [ebp - 0x40], 0xf78bd352
add dword [ebp - 0x40], 0x6be3991a
mov dword [ebp - 0x3c], 0x1440afb1
add dword [ebp - 0x3c], 0xebbf504f
lea ebx, [ebp - 0x48]
push ebx
push eax
mov eax, sym.imp.kernel32.dll_GetProcAddress
add eax, dword [ebp - 0x38]
call dword [eax]
push 0x40
push 0x1000
push 0x3735b
push 0
call eax
mov ecx, 0xdfa7c04f
add ecx, 0x20588912
mov esi, eax
mov edi, 0x6aa2e742
sub edi, 0x6a626342
add edi, dword [ebp - 0x38]
mov edx, 0xf7ac412d
xor dword [ebp - 0x2c], ebx
mov ebx, dword [edi]
sub dword [ebp - 0x10], edi
xor ebx, edx
add dword [ebp - 0x2c], 0xfb47d3f2
mov dword [esi], ebx
mov dword [ebp - 0xc], 0x887b03e0
add esi, 0xdb14813
add esi, 0xf24eb7f1
add edi, 4
loop 0x403568
add eax, 0xed945acc
sub eax, 0xed934275
mov ebx, eax
add eax, 0xe4ff6510
sub eax, 0xe4ff650b
mov ecx, 0xbadf1c1b
sub ecx, 0xba9f1c1b
add ecx, dword [ebp - 0x38]
call ebx
leave
ret
Function at 0x40adef
Capabilities:
Terminate process

Disassembly:
cmp ecx, dword [0x821d78]
jne 0x40adf9
repz ret
jmp fcn.0040da1c

Function at 0x40d433
Capabilities:
Link many functions at runtime

Disassembly:
mov edi, edi
push ebp
mov ebp, esp
sub esp, 0x24
mov eax, dword [0x821d78]
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.00406484
and dword [ebp - 0x14], 0
cmp dword [0x825744], 0
mov dword [ebp - 0x18], eax
jne 0x40d4e6
push 0x402c4c
call dword [sym.imp.KERNEL32.dll_LoadLibraryW]
mov ebx, eax
test ebx, ebx
je 0x40d58e
mov edi, dword [sym.imp.KERNEL32.dll_GetProcAddress]
push 0x402c40
push ebx
call edi
test eax, eax
je 0x40d58e
mov esi, dword [sym.imp.KERNEL32.dll_EncodePointer]
push eax
call esi
push 0x402c30
push ebx
mov dword [0x825744], eax
call edi
push eax
call esi
push 0x402c1c
push ebx
mov dword [0x825748], eax
call edi
push eax
call esi
push 0x402c00
push ebx
mov dword [0x82574c], eax
call edi
push eax
call esi
mov dword [0x825754], eax
test eax, eax
je 0x40d4e6
push 0x402be8
push ebx
call edi
push eax
call esi
mov dword [0x825750], eax
mov eax, dword [0x825750]
mov ecx, dword [ebp - 0x18]
mov esi, dword [sym.imp.KERNEL32.dll_DecodePointer]
cmp eax, ecx
je 0x40d53f
cmp dword [0x825754], ecx
je 0x40d53f
push eax
call esi
push dword [0x825754]
mov edi, eax
call esi
mov ebx, eax
test edi, edi
je 0x40d53f
test ebx, ebx
je 0x40d53f
call edi
test eax, eax
je 0x40d536
lea ecx, [ebp - 0x24]
push ecx
push 0xc
lea ecx, [ebp - 0x10]
push ecx
push 1
push eax
call ebx
test eax, eax
je 0x40d536
test byte [ebp - 8], 1
jne 0x40d53f
or dword [ebp + 0x10], 0x200000
jmp 0x40d572
mov eax, dword [0x825748]
cmp eax, dword [ebp - 0x18]
je 0x40d572
push eax
call esi
test eax, eax
je 0x40d572
call eax
mov dword [ebp - 0x14], eax
test eax, eax
je 0x40d572
mov eax, dword [0x82574c]
cmp eax, dword [ebp - 0x18]
je 0x40d572
push eax
call esi
test eax, eax
je 0x40d572
push dword [ebp - 0x14]
call eax
mov dword [ebp - 0x14], eax
push dword [0x825744]
call esi
test eax, eax
je 0x40d58e
push dword [ebp + 0x10]
push dword [ebp - 0x1c]
push dword [ebp - 0x20]
push dword [ebp - 0x14]
call eax
jmp 0x40d590
xor eax, eax
mov ecx, dword [ebp - 4]
pop edi
pop esi
xor ecx, ebp
pop ebx
call fcn.0040adef
leave
ret
Function at 0x809140
Capabilities:
Accept command line arguments
Delete directory
Get common file path

Disassembly:
mov eax, 0x1420
call fcn.0040e9a0
cmp dword [0x26676c4], 0x37
jne 0x8091f7
call dword [sym.imp.KERNEL32.dll_GetCommandLineW]
push 0x403430
call dword [sym.imp.KERNEL32.dll_RemoveDirectoryW]
push 0
call dword [sym.imp.KERNEL32.dll_FlushFileBuffers]
push 0
push 0
push 0
call dword [sym.imp.KERNEL32.dll_AddConsoleAliasA]
push 0
lea eax, [esp + 0x824]
push eax
push 0x403448
call dword [sym.imp.KERNEL32.dll_GetShortPathNameA]
push 0
lea ecx, [esp + 0x24]
push ecx
call dword [sym.imp.KERNEL32.dll_GetWindowsDirectoryW]
lea edx, [esp + 4]
push edx
push 0
lea eax, [esp + 0x14]
push eax
push 0
call dword [sym.imp.KERNEL32.dll_PeekConsoleInputW]
push 0
push 0
push 0
call dword [sym.imp.KERNEL32.dll_EnumTimeFormatsW]
lea ecx, [esp + 8]
push ecx
push 0
call dword [sym.imp.KERNEL32.dll_GetCompressedFileSizeW]
lea edx, [esp + 0xc20]
push edx
push 0
push 0x4034a0
push 0x4034b8
call dword [sym.imp.KERNEL32.dll_GetTempFileNameW]
push 0
push 0x403558
push 0x403618
call dword [sym.imp.KERNEL32.dll_CreateHardLinkW]
mov eax, dword [0x26676c8]
mov dword [esp], eax
mov eax, 0x5d1
add dword [esp], eax
mov ecx, dword [esp]
mov dl, byte [ecx + esi]
mov eax, dword [0x82a854]
mov byte [eax + esi], dl
add esp, 0x1420
ret

Function at 0x809230
Capabilities:
Manipulate console buffer

Disassembly:
sub esp, 0x64
mov ecx, dword [esp + 0x68]
mov eax, dword [ecx]
mov edx, dword [0x822380]
push ebx
push ebp
mov ebp, dword [0x82237c]
push esi
mov esi, dword [ecx + 4]
mov ecx, dword [str.a_n_R]
mov dword [esp + 0x24], ecx
mov ecx, dword [0x822384]
mov ebx, 0xc6ef3720
push edi
mov dword [esp + 0x14], eax
mov dword [esp + 0x18], ebx
mov dword [esp + 0x24], edx
mov dword [esp + 0x20], ecx
mov dword [esp + 0x1c], 0x20
jmp 0x809284
mov eax, dword [esp + 0x14]
mov edx, eax
mov ecx, eax
shr edx, 5
add edx, dword [esp + 0x20]
shl ecx, 4
add ecx, dword [esp + 0x24]
add eax, ebx
xor edx, ecx
xor edx, eax
sub esi, edx
mov ecx, esi
shl ecx, 4
mov dword [0x265d674], 0
mov dword [esp + 0x10], ecx
mov eax, dword [esp + 0x28]
add dword [esp + 0x10], eax
cmp dword [0x26676c4], 0x1be
lea edi, [ebx + esi]
jne 0x8092d9
lea edx, [esp + 0x2c]
push edx
push 0
push 0
push 0
call dword [sym.imp.KERNEL32.dll_WriteConsoleInputW]
mov eax, esi
shr eax, 5
add eax, ebp
xor eax, edi
xor dword [esp + 0x10], eax
mov dword [0x265d678], 0xff6b3619
mov dword [0x265d67c], 0xffffffff
mov eax, dword [esp + 0x10]
sub dword [esp + 0x14], eax
mov ecx, dword [0x26676c4]
cmp ecx, 0x93
je 0x80931d
lea eax, [esp + 0x18]
call fcn.00809220
mov ebx, dword [esp + 0x18]
dec dword [esp + 0x1c]
jne 0x809280
cmp ecx, 0x8d4
jne 0x809351
lea ecx, [esp + 0x30]
push ecx
call dword [sym.imp.KERNEL32.dll_GetStartupInfoW]
mov eax, dword [esp + 0x78]
mov edx, dword [esp + 0x14]
pop edi
mov dword [eax + 4], esi
pop esi
pop ebp
mov dword [eax], edx
pop ebx
add esp, 0x64
ret 4
mov eax, dword [esp + 0x78]
mov ecx, dword [esp + 0x14]
pop edi
mov dword [eax + 4], esi
pop esi
pop ebp
mov dword [eax], ecx
pop ebx
add esp, 0x64
ret 4
Function at 0x809370
Capabilities:
Manipulate console buffer

Disassembly:
push ecx
mov eax, dword [0x26676c4]
shr eax, 3
push esi
mov esi, dword [0x82a854]
test eax, eax
je 0x8093b4
push ebx
mov ebx, dword [sym.imp.KERNEL32.dll_WriteConsoleInputW]
push edi
mov edi, eax
mov edi, edi
cmp dword [0x26676c4], 0x1c
jne 0x8093a6
lea eax, [esp + 0xc]
push eax
push 0
push 0
push 0
call ebx
push esi
call fcn.00809230
add esi, 8
dec edi
jne 0x809390
pop edi
pop ebx
pop esi
pop ecx
ret
Function at 0x43fcae
Capabilities:
Encrypt data using dpapi

Disassembly:
push esi
push edi
push 0x46b5d8
push str.AdvApi32.dll
call main
mov edi, dword [sym.imp.kernel32.dll_GetProcAddress]
mov esi, eax
test esi, esi
js 0x43fcf1
push str.SystemFunction040
push dword [0x46b5d8]
call edi
push str.SystemFunction041
push dword [0x46b5d8]
mov dword [0x46b5e0], eax
call edi
mov dword [0x46b5e4], eax
jmp 0x43fcf6
mov eax, dword [0x46b5e4]
cmp dword [0x46b5e0], 0
je 0x43fd07
test eax, eax
jne 0x43fdae
push 0x46b5dc
push str.Crypt32.dll
call main
mov esi, eax
test esi, esi
js 0x43fdb8
push str.CryptProtectMemory
push dword [0x46b5dc]
call edi
cmp dword [0x46b5e0], 0
mov dword [0x46b5e8], eax
jne 0x43fd6c
test eax, eax
jne 0x43fd6c
call dword [sym.imp.kernel32.dll_GetLastError]
mov esi, eax
test esi, esi
jle 0x43fd56
movzx esi, si
or esi, 0x80070000
test esi, esi
js 0x43fd5d
mov esi, 0x80004005
push esi
push 0x28
push str.cryputil.cpp
call fcn.00403821
jmp 0x43fdb8
push str.CryptUnprotectMemory
push dword [0x46b5dc]
call edi
cmp dword [0x46b5e4], 0
mov dword [0x46b5ec], eax
jne 0x43fdae
test eax, eax
jne 0x43fdae
call dword [sym.imp.kernel32.dll_GetLastError]
mov esi, eax
test esi, esi
jle 0x43fda2
movzx esi, si
or esi, 0x80070000
test esi, esi
js 0x43fda9
mov esi, 0x80004005
push esi
push 0x2d
jmp 0x43fd60
mov dword [0x46b5f0], 1
pop edi
mov eax, esi
pop esi
ret
Function at 0x40ef30
Capabilities:
Encode data using xor
Generate random numbers using a mersenne twister

Disassembly:
mov dword [0x5d8470], eax
xor eax, eax
nop
add eax, 1
mov ecx, dword [eax*4 + 0x5d846c]
mov edx, ecx
shr edx, 0x1e
xor edx, ecx
imul edx, edx, 0x6c078965
add edx, eax
mov dword [eax*4 + 0x5d8470], edx
cmp eax, 0x26f
jl 0x40ef38
mov dword [0x567fa0], 0x270
ret

Function at 0x40ef70
Capabilities:
Encode data using xor
Generate random numbers using a mersenne twister

Disassembly:
push ebx
mov eax, 0xffffffff
mov esi, esi
add eax, 1
mov ecx, dword [eax*4 + 0x5d8474]
mov ebx, dword [eax*4 + 0x5d8470]
mov edx, ecx
and edx, 1
neg edx
and edx, 0x9908b0df
and ebx, 0x80000000
and ecx, 0x7fffffff
or ebx, ecx
shr ebx, 1
xor edx, ebx
xor edx, dword [eax*4 + 0x5d8aa4]
mov dword [eax*4 + 0x5d8470], edx
cmp eax, 0xe2
jl 0x40ef78
mov eax, 0xe2
lea esi, [esi]
add eax, 1
mov ecx, dword [eax*4 + 0x5d8474]
mov ebx, dword [eax*4 + 0x5d8470]
mov edx, ecx
and edx, 1
neg edx
and edx, 0x9908b0df
and ebx, 0x80000000
and ecx, 0x7fffffff
or ebx, ecx
shr ebx, 1
xor edx, ebx
xor edx, dword [eax*4 + 0x5d80e4]
mov dword [eax*4 + 0x5d8470], edx
cmp eax, 0x26e
jl 0x40efc8
mov edx, dword [0x5d8470]
mov ecx, dword [0x5d8e2c]
mov eax, edx
and eax, 1
neg eax
and eax, 0x9908b0df
and ecx, 0x80000000
and edx, 0x7fffffff
or ecx, edx
shr ecx, 1
xor eax, ecx
xor eax, dword [0x5d8aa0]
mov dword [0x5d8e2c], eax
mov dword [0x567fa0], 0
pop ebx
ret

Function at 0x40f050
Capabilities:
Generate random numbers using a mersenne twister

Disassembly:
push ebx
mov ebx, dword [0x567fa0]
add dword [0x567fa0], 1
mov eax, dword [0x5d7020]
cmp eax, dword [0x5676f0]
jne 0x40f073
cmp ebx, 0x271
jb 0x40f094
mov eax, dword [0x5d7020]
call fcn.0040ef30
not dword [0x5d7020]
mov eax, dword [0x5d7020]
mov dword [0x5676f0], eax
mov ebx, 0x270
mov esi, esi
cmp ebx, 0x270
jne 0x40f0b0
call fcn.0040ef70
xor ebx, ebx
mov dword [0x567fa0], 1
lea esi, [esi]
mov edx, dword [ebx*4 + 0x5d8470]
mov eax, edx
shr eax, 0xb
xor eax, edx
mov edx, eax
shl edx, 7
and edx, 0x9d2c5680
xor edx, eax
mov ecx, edx
shl ecx, 0xf
and ecx, 0xefc60000
xor ecx, edx
mov eax, ecx
shr eax, 0x12
xor eax, ecx
pop ebx
ret
Function at 0x410c00
Capabilities:
Check for software breakpoints

Disassembly:
push ebx
push esi
push edi
mov ax, word [0x567440]
cmp ax, 0xcb
je 0x410d0c
cmp ax, 0xcc
je 0x410d0c
lea esi, [esi]
mov edx, dword [0x5d9070]
test edx, edx
je 0x410c35
mov eax, dword [0x5d8f20]
call edx
mov ebx, eax
jmp 0x410c3a
mov ebx, 0x5d8f24
cmp word [0x5d8f10], 0
jle 0x410c60
mov eax, 0x5d8ef0
call fcn.00410e70
mov eax, ebx
call fcn.004107c0
mov eax, ebx
call fcn.00410830
lea esi, [esi]
mov edi, dword [ebx]
jmp 0x410c82
mov esi, dword [edi + 4]
mov eax, dword [edi]
and eax, 1
jne 0x410c7d
mov edx, edi
mov eax, ebx
call fcn.0040fc30
jmp 0x410c80
and dword [edi], 0xfffffffe
mov edi, esi
test edi, edi
jne 0x410c68
mov dword [ebx], 0
mov dword [ebx + 0x88], 0
cmp word [0x5d8f10], 0
jle 0x410d0c
mov edx, 0x5d8e30
mov eax, ebx
call fcn.0040fd70
mov edi, eax
test edi, edi
je 0x410cdc
mov eax, dword [0x5d8ec4]
mov dword [edi + 0xc], eax
cmp dword [0x5d8ec4], 0
je 0x410cd0
mov eax, dword [0x5d8ec4]
mov dword [eax + 8], edi
mov eax, dword [ebx + 0x94]
mov dword [0x5d8ec4], eax
nop
sub word [0x5d8f10], 1
cmp word [0x5d8f10], 0
sete bl
mov eax, 0x5d8ef0
call fcn.00410e90
test bl, bl
je 0x410d0c
mov eax, 0x5d8ef0
call fcn.00410e60
lea esi, [esi]
pop edi
pop esi
pop ebx
ret
Function at 0x413400
Capabilities:
Get common file path

Disassembly:
push ebp
mov ebp, esp
lea esp, [esp - 0x20]
push ebx
push esi
push edi
mov byte [ebp - 0x20], al
mov dword [ebp - 0x1c], edx
mov dword [ebp - 0x18], 0
mov dword [ebp - 0x14], 0
mov dword [ebp - 0x10], 0
xor eax, eax
push fcn.004133e0
push ebp
push 0x414780
push dword fs:[eax]
mov dword fs:[eax], esp
test byte [ebp - 0x20], 0xff
je 0x41352a
movzx eax, byte [ebp - 0x20]
sub eax, 0xffffffc0
mov word [ebp - 8], ax
mov word [ebp - 6], 0x3a
mov word [ebp - 4], 0
mov word [ebp - 2], 0
lea eax, [ebp - 0xc]
push eax
push 0
push 0
lea eax, [ebp - 8]
push eax
call sub.kernel32.dll_GetFullPathNameW
mov esi, eax
lea edx, [esi - 1]
mov eax, dword [ebp - 0x1c]
call fcn.0040b800
lea eax, [ebp - 0xc]
push eax
mov eax, dword [ebp - 0x1c]
mov edx, dword [eax]
test edx, edx
jne 0x41348f
mov edx, 0x5d82f0
push edx
push esi
lea eax, [ebp - 8]
push eax
call sub.kernel32.dll_GetFullPathNameW
mov ebx, eax
test ebx, ebx
jne 0x4134e1
call sub.kernel32.dll_GetLastError
call fcn.00404000
lea eax, [ebp - 0x10]
call fcn.0040a0e0
movzx eax, byte [ebp - 0x20]
sub eax, 0xffffffc0
lea edx, [ebp - 0x14]
call fcn.0040a690
mov edx, dword [ebp - 0x14]
mov ecx, 0x583314
lea eax, [ebp - 0x10]
call fcn.0040a410
mov eax, dword [ebp - 0x10]
mov edx, dword [ebp - 0x1c]
call fcn.0040b0d0
jmp 0x413578
mov eax, esi
mov edx, 0
sub eax, 1
sbb edx, 0
mov ecx, ebx
xor edi, edi
cmp edx, edi
jne 0x4134fa
cmp eax, ecx
je 0x413504
mov eax, dword [ebp - 0x1c]
mov edx, ebx
call fcn.0040b800
cmp byte [0x5676c0], 0
jne 0x413578
mov edx, dword [ebp - 0x1c]
mov eax, dword [edx]
lea edx, [ebp - 0x18]
call fcn.0040bda0
mov edx, dword [ebp - 0x18]
mov eax, dword [ebp - 0x1c]
call fcn.0040b160
lea esi, [esi]
jmp 0x413578
push 0
push 0
call sub.kernel32.dll_GetCurrentDirectoryW
mov esi, eax
lea edx, [esi - 1]
mov eax, dword [ebp - 0x1c]
call fcn.0040b800
mov edx, dword [ebp - 0x1c]
mov eax, dword [edx]
test eax, eax
jne 0x41354e
mov eax, 0x5d82f0
push eax
push esi
call sub.kernel32.dll_GetCurrentDirectoryW
cmp byte [0x5676c0], 0
jne 0x413578
mov edx, dword [ebp - 0x1c]
mov eax, dword [edx]
lea edx, [ebp - 0x18]
call fcn.0040bda0
mov edx, dword [ebp - 0x18]
mov eax, dword [ebp - 0x1c]
call fcn.0040b160
mov esi, esi
xor edx, edx
pop eax
add esp, 0xc
mov dword fs:[edx], eax
mov eax, ebp
call fcn.004133e0
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret
Function at 0x413910
Capabilities:
Accept command line arguments

Disassembly:
push ebp
mov ebp, esp
lea esp, [esp - 0x114]
push ebx
push esi
push edi
mov dword [ebp - 0x10c], 0
mov dword [0x5d8260], 0
mov dword [ebp - 4], 0
push 0x104
lea eax, [ebp - 0x108]
push eax
push 0
call sub.kernel32.dll_GetModuleFileNameA
mov byte [ebp + eax - 0x108], 0
mov dword [ebp - 0x110], eax
mov ecx, eax
xor edx, edx
mov eax, ebp
call fcn.00413af0
mov eax, dword [ebp - 0x110]
lea ecx, [eax + 1]
mov eax, dword [0x5d8260]
mov edx, dword [eax]
lea eax, [ebp - 0x108]
call fcn.00403570
call sub.kernel32.dll_GetCommandLineA
mov dword [0x5674c0], eax
mov ebx, eax
jmp 0x413ab3
add ebx, 1
movzx eax, byte [ebx]
sub eax, 1
cmp eax, 0x20
jb 0x413998
cmp byte [ebx], 0
je 0x413abc
nop
mov byte [ebp - 0x114], 0
mov edi, ebx
mov dword [ebp - 0x110], 0
jmp 0x413a13
mov al, byte [ebx]
cmp al, 1
jb 0x413a08
sub al, 0x20
jbe 0x4139d8
sub al, 2
je 0x4139ec
jmp 0x413a08
mov al, byte [ebp - 0x114]
test al, al
je 0x413a18
add dword [ebp - 0x110], 1
jmp 0x413a10
cmp byte [ebx + 1], 0x22
je 0x413a03
mov al, byte [ebp - 0x114]
test al, al
sete byte [ebp - 0x114]
jmp 0x413a10
add ebx, 1
jmp 0x413a10
add dword [ebp - 0x110], 1
nop
add ebx, 1
cmp byte [ebx], 0
jne 0x4139c8
test dword [ebp - 0x10c], 0xffffffff
je 0x413aac
mov ecx, dword [ebp - 0x110]
mov edx, dword [ebp - 0x10c]
mov eax, ebp
call fcn.00413af0
mov byte [ebp - 0x114], 0
mov ebx, edi
mov eax, dword [0x5d8260]
mov edx, dword [ebp - 0x10c]
mov esi, dword [eax + edx*4]
jmp 0x413aa3
mov al, byte [ebx]
cmp al, 1
jb 0x413a98
sub al, 0x20
jbe 0x413a68
sub al, 2
je 0x413a7c
jmp 0x413a98
mov al, byte [ebp - 0x114]
test al, al
je 0x413aa8
mov al, byte [ebx]
mov byte [esi], al
add esi, 1
jmp 0x413aa0
cmp byte [ebx + 1], 0x22
je 0x413a93
mov al, byte [ebp - 0x114]
test al, al
sete byte [ebp - 0x114]
jmp 0x413aa0
add ebx, 1
jmp 0x413aa0
mov al, byte [ebx]
mov byte [esi], al
add esi, 1
nop
add ebx, 1
cmp byte [ebx], 0
jne 0x413a58
mov byte [esi], 0
nop
add dword [ebp - 0x10c], 1
cmp byte [ebx], 0
jne 0x41399b
mov ebx, dword [ebp - 0x10c]
mov dword [0x5d8250], ebx
lea edx, [ebx + 1]
shl edx, 2
mov eax, 0x5d8260
call fcn.00410a40
mov eax, dword [0x5d8260]
mov dword [eax + ebx*4], 0
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret

Function at 0x417180
Capabilities:
Hash data with crc32

Disassembly:
push ebx
mov dx, 0xffff
lea esi, [esi]
add dx, 1
movsx eax, dx
mov ecx, eax
xor bx, bx
lea esi, [esi]
add bx, 1
mov eax, ecx
and eax, 1
je 0x4171b1
mov eax, ecx
shr eax, 1
xor eax, 0xedb88320
mov ecx, eax
jmp 0x4171b3
shr ecx, 1
cmp bx, 8
jl 0x417198
movzx eax, dx
mov dword [eax*4 + 0x5fad00], ecx
cmp dx, 0xff
jl 0x417188
pop ebx
ret

Function at 0x4171d0
Capabilities:
Encode data using xor

Disassembly:
push ebx
push esi
push edi
mov ebx, eax
mov edi, edx
mov esi, ecx
cmp dword [0x5fad04], 0
jne 0x4171e8
call fcn.00417180
nop
mov ecx, edi
not ebx
mov eax, ebx
cmp esi, 1
jl 0x41721c
xor ebx, ebx
lea esi, [esi]
add ebx, 1
mov dl, al
xor dl, byte [ecx]
and edx, 0xff
mov edi, eax
shr edi, 8
xor edi, dword [edx*4 + 0x5fad00]
mov eax, edi
add ecx, 1
cmp esi, ebx
jg 0x4171f8
mov esi, esi
not eax
pop edi
pop esi
pop ebx
ret
Function at 0x429f40
Capabilities:
Create process on windows

Disassembly:
push ebp
mov ebp, esp
lea esp, [esp - 0x7c]
mov dword [ebp - 4], eax
mov dword [ebp - 8], edx
mov dword [ebp - 0xc], ecx
mov dword [ebp - 0x6c], 0
xor eax, eax
push fcn.00429f30
push ebp
push 0x414780
push dword fs:[eax]
mov dword fs:[eax], esp
push 0x44
lea eax, [ebp - 0x50]
push eax
call fcn.004177a0
mov dword [ebp - 0x50], 0x44
cmp dword [ebp - 0xc], 0
je 0x429f93
mov eax, dword [ebp - 0xc]
test eax, eax
jne 0x429f8e
mov eax, 0x5d82f0
mov dword [ebp - 0x64], eax
jmp 0x429f9a
mov dword [ebp - 0x64], 0
lea eax, [ebp - 0x60]
push eax
lea eax, [ebp - 0x50]
push eax
push dword [ebp - 0x64]
push 0
push 0x8000000
push 0
push 0
push 0
lea eax, [ebp - 0x6c]
call fcn.00403a50
push 0
mov eax, 0x588158
mov dword [ebp - 0x7c], eax
mov eax, dword [ebp - 4]
mov dword [ebp - 0x78], eax
mov eax, 0x588168
mov dword [ebp - 0x74], eax
mov eax, dword [ebp - 8]
mov dword [ebp - 0x70], eax
lea edx, [ebp - 0x7c]
mov ecx, 3
lea eax, [ebp - 0x6c]
call fcn.00408ca0
mov eax, dword [ebp - 0x6c]
test eax, eax
jne 0x429ff4
mov eax, 0x5d82f0
push eax
push 0
call sub.kernel32.dll_CreateProcessA
or eax, eax
setne al
mov byte [ebp - 0x68], al
call fcn.00448140
xor eax, eax
push fcn.00429f10
push ebp
push 0x414780
push dword fs:[eax]
mov dword fs:[eax], esp
cmp byte [ebp + 0xc], 0
je 0x42a02c
mov eax, dword [ebp - 0x60]
mov dl, 1
call fcn.00429e80
xor eax, eax
pop edx
add esp, 0xc
mov dword fs:[eax], edx
mov eax, ebp
call fcn.00429f10
xor eax, eax
pop edx
add esp, 0xc
mov dword fs:[eax], edx
mov eax, ebp
call fcn.00429f30
mov esp, ebp
pop ebp
ret 8
Function at 0x42a080
Capabilities:
Get disk information

Disassembly:
push ebp
mov ebp, esp
lea esp, [esp - 0x14]
mov dword [ebp - 0x14], 0
mov dword [ebp - 0x10], 0
mov dword [ebp - 0xc], 0
xor eax, eax
push fcn.0042a060
push ebp
push 0x414780
push dword fs:[eax]
mov dword fs:[eax], esp
mov eax, dword [0x5fb120]
mov eax, dword [eax + 0x4a4]
mov edx, dword [0x5fb120]
mov edx, dword [edx + 0x4a4]
mov edx, dword [edx]
call dword [edx + 0x4f0]
mov byte [ebp - 4], 0x40
lea esi, [esi]
add byte [ebp - 4], 1
lea eax, [ebp - 0xc]
call fcn.00403a50
push 0
mov al, byte [ebp - 4]
lea ecx, [ebp - 0x10]
xor dx, dx
call fcn.00409200
mov edx, dword [ebp - 0x10]
mov ecx, 0x588178
lea eax, [ebp - 0xc]
call fcn.00408a10
mov eax, dword [ebp - 0xc]
test eax, eax
jne 0x42a110
mov eax, 0x5d82f0
push eax
call sub.kernel32.dll_GetDriveTypeA
mov dword [ebp - 8], eax
test eax, eax
je 0x42a1ec
mov eax, dword [ebp - 8]
cmp eax, 2
jl 0x42a1ec
sub eax, 2
je 0x42a13c
sub eax, 3
je 0x42a194
jmp 0x42a1ec
lea eax, [ebp - 0x10]
call fcn.00403a50
push 0
mov al, byte [ebp - 4]
lea ecx, [ebp - 0x14]
xor dx, dx
call fcn.00409200
mov edx, dword [ebp - 0x14]
mov ecx, 0x588178
lea eax, [ebp - 0x10]
call fcn.00408a10
mov edx, dword [ebp - 0x10]
mov eax, dword [0x5fb120]
mov eax, dword [eax + 0x4a4]
mov eax, dword [eax + 0x398]
mov ecx, dword [0x5fb120]
mov ecx, dword [ecx + 0x4a4]
mov ecx, dword [ecx + 0x398]
mov ecx, dword [ecx]
call dword [ecx + 0xa8]
jmp 0x42a1ec
lea eax, [ebp - 0x14]
call fcn.00403a50
push 0
mov al, byte [ebp - 4]
lea ecx, [ebp - 0x10]
xor dx, dx
call fcn.00409200
mov edx, dword [ebp - 0x10]
mov ecx, 0x588178
lea eax, [ebp - 0x14]
call fcn.00408a10
mov edx, dword [ebp - 0x14]
mov eax, dword [0x5fb120]
mov eax, dword [eax + 0x4a4]
mov eax, dword [eax + 0x398]
mov ecx, dword [0x5fb120]
mov ecx, dword [ecx + 0x4a4]
mov ecx, dword [ecx + 0x398]
mov ecx, dword [ecx]
call dword [ecx + 0xa8]
mov esi, esi
cmp byte [ebp - 4], 0x5a
jb 0x42a0d8
xor edx, edx
pop eax
add esp, 0xc
mov dword fs:[edx], eax
mov eax, ebp
call fcn.0042a060
mov esp, ebp
pop ebp
ret