joyce8/EMBER2024-capa huggingface dataset:
Function at 0x5357f0
Capabilities:
Encrypt data using rc4 ksa

Disassembly:
sub esp, 8
xor ecx, ecx
xor eax, eax
push ebp
mov ebp, dword [esp + 0x18]
mov byte [eax + ebp], al
inc eax
cmp eax, 0x100
jl 0x5357fc
mov eax, dword [esp + 0x14]
mov byte [ebp + 0x100], cl
cmp eax, ecx
mov byte [ebp + 0x101], cl
jle 0x53588f
push ebx
push esi
push edi
mov byte [esp + 0x24], cl
xor esi, esi
mov ebx, ebp
mov dword [esp + 0x10], pe_nt_image_headers32
mov edi, dword [esp + 0x24]
mov ecx, dword [esp + 0x1c]
and edi, 0xff
xor eax, eax
xor edx, edx
mov al, byte [edi + ecx]
mov dl, byte [ebx]
add esi, eax
add edx, esi
and edx, 0x800000ff
jns 0x535859
dec edx
or edx, 0xffffff00
inc edx
mov byte [esp + 0x14], dl
mov esi, dword [esp + 0x14]
and esi, 0xff
lea eax, [esi + ebp]
push eax
push ebx
call fcn.005358a0
lea eax, [edi + 1]
add esp, 8
cdq
idiv dword [esp + 0x20]
mov eax, dword [esp + 0x10]
inc ebx
dec eax
mov dword [esp + 0x10], eax
mov byte [esp + 0x24], dl
jne 0x53582e
pop edi
pop esi
pop ebx
pop ebp
add esp, 8
ret

Function at 0x5358c0
Capabilities:
Encrypt data using rc4 prga

Disassembly:
sub esp, 0xc
mov edx, dword [esp + 0x14]
push ebx
push esi
mov esi, dword [esp + 0x20]
xor ebx, ebx
mov al, byte [esi + 0x100]
mov cl, byte [esi + 0x101]
test edx, edx
mov byte [esp + 0x20], al
mov byte [esp + 8], cl
jle 0x5359bd
push ebp
mov ebp, dword [esp + 0xc]
push edi
mov edi, dword [esp + 0x28]
and edi, 0xff
and ebp, 0xff
lea eax, [edi + 1]
and eax, 0x800000ff
jns 0x535912
dec eax
or eax, 0xffffff00
inc eax
mov byte [esp + 0x28], al
xor ecx, ecx
mov edi, dword [esp + 0x28]
and edi, 0xff
mov cl, byte [edi + esi]
lea eax, [edi + esi]
add ecx, ebp
mov dword [esp + 0x18], eax
and ecx, 0x800000ff
jns 0x53593e
dec ecx
or ecx, 0xffffff00
inc ecx
mov byte [esp + 0x10], cl
mov ebp, dword [esp + 0x10]
and ebp, 0xff
lea ecx, [esi + ebp]
push ecx
push eax
mov dword [esp + 0x1c], ecx
call fcn.005358a0
mov eax, dword [esp + 0x1c]
xor edx, edx
xor ecx, ecx
add esp, 8
mov dl, byte [eax]
mov eax, dword [esp + 0x18]
mov cl, byte [eax]
add edx, ecx
and edx, 0x800000ff
jns 0x53597f
dec edx
or edx, 0xffffff00
inc edx
mov eax, dword [esp + 0x20]
and edx, 0xff
mov cl, byte [edx + esi]
mov dl, byte [ebx + eax]
xor dl, cl
mov byte [ebx + eax], dl
mov eax, dword [esp + 0x24]
inc ebx
cmp ebx, eax
jl 0x535901
mov dl, byte [esp + 0x28]
mov al, byte [esp + 0x10]
pop edi
mov byte [esi + 0x100], dl
mov byte [esi + 0x101], al
pop ebp
pop esi
pop ebx
add esp, 0xc
ret
mov byte [esi + 0x100], al
mov byte [esi + 0x101], cl
pop esi
pop ebx
add esp, 0xc
ret
Function at 0x5376e0
Capabilities:
Encrypt data using des

Disassembly:
sub esp, 0xf4
xor ecx, ecx
push ebx
push ebp
push esi
mov esi, dword [esp + 0x104]
push edi
xor eax, eax
mov al, byte [ecx + str.80_]
mov edx, eax
and eax, 7
sar edx, 3
mov bl, byte [eax*2 + 0x62ea04]
mov dl, byte [edx + esi]
test bl, dl
setne al
mov byte [esp + ecx + 0x4c], al
inc ecx
cmp ecx, 0x38
jl 0x5376f3
mov eax, 0x1e
xor edx, edx
mov dword [esp + 0x10], eax
cmp dword [esp + 0x10c], 1
je 0x537734
lea eax, [edx + edx]
lea edi, [esp + eax*4 + 0x88]
lea ebp, [esp + eax*4 + 0x84]
xor eax, eax
xor ecx, ecx
mov cl, byte [edx + 0x62eaac]
mov dword [edi], 0
mov dword [ebp], 0
mov esi, ecx
cmp ecx, 0x1c
jge 0x537766
mov bl, byte [esp + ecx + 0x4c]
jmp 0x53776a
mov bl, byte [esp + ecx + 0x30]
mov byte [esp + eax + 0x14], bl
inc eax
inc ecx
cmp eax, 0x1c
jl 0x53775b
mov eax, 0x1c
lea ecx, [esi + 0x1c]
cmp ecx, 0x38
jge 0x537788
mov bl, byte [esp + ecx + 0x4c]
jmp 0x53778c
mov bl, byte [esp + ecx + 0x30]
mov byte [esp + eax + 0x14], bl
inc eax
inc ecx
cmp eax, 0x38
jl 0x53777d
xor ecx, ecx
mov eax, 0x62ea14
xor ebx, ebx
mov bl, byte [ecx + 0x62eabc]
cmp byte [esp + ebx + 0x14], 0
je 0x5377b7
mov esi, dword [eax]
mov ebx, dword [ebp]
or ebx, esi
mov dword [ebp], ebx
xor ebx, ebx
mov bl, byte [ecx + 0x62ead4]
cmp byte [esp + ebx + 0x14], 0
je 0x5377ce
mov esi, dword [eax]
mov ebx, dword [edi]
or ebx, esi
mov dword [edi], ebx
add eax, 4
inc ecx
cmp eax, str.80_
jl 0x53779e
mov eax, dword [esp + 0x10]
inc edx
sub eax, 2
cmp eax, 0xfffffffe
mov dword [esp + 0x10], eax
jg 0x537727
lea edx, [esp + 0x84]
push edx
call fcn.00537810
add esp, 4
pop edi
pop esi
pop ebp
pop ebx
add esp, 0xf4
ret
Function at 0x539840
Capabilities:
Encode data using xor
Encrypt data using tea

Disassembly:
sub esp, 0xc
push ebx
mov ebx, dword [sym.imp.WS2_32.dll_ntohl]
push ebp
mov ebp, dword [esp + 0x18]
push esi
push edi
mov edi, eax
mov eax, dword [edi]
push eax
call ebx
mov ecx, dword [edi + 4]
push ecx
mov esi, eax
call ebx
mov edx, dword [ebp]
push edx
mov edi, eax
call ebx
mov dword [esp + 0x10], eax
mov eax, dword [ebp + 4]
push eax
call ebx
mov ecx, dword [ebp + 8]
push ecx
mov dword [esp + 0x24], eax
call ebx
mov edx, dword [ebp + 0xc]
push edx
mov dword [esp + 0x1c], eax
call ebx
mov dword [esp + 0x14], eax
mov edx, 0x10
xor ecx, ecx
mov eax, edi
shr eax, 5
add eax, dword [esp + 0x20]
mov ebx, edi
shl ebx, 4
add ebx, dword [esp + 0x10]
sub ecx, 0x61c88647
xor eax, ebx
lea ebx, [ecx + edi]
xor eax, ebx
add esi, eax
mov eax, esi
shr eax, 5
add eax, dword [esp + 0x14]
mov ebx, esi
shl ebx, 4
add ebx, dword [esp + 0x18]
sub edx, 1
xor eax, ebx
lea ebx, [ecx + esi]
xor eax, ebx
add edi, eax
test edx, edx
ja 0x539891
push esi
mov esi, dword [sym.imp.WS2_32.dll_htonl]
call esi
mov ebx, dword [esp + 0x24]
push edi
mov dword [ebx], eax
call esi
pop edi
pop esi
pop ebp
mov dword [ebx + 4], eax
pop ebx
add esp, 0xc
ret

Function at 0x539900
Capabilities:
Encode data using xor
Encrypt data using tea

Disassembly:
sub esp, 0xc
push ebx
mov ebx, dword [sym.imp.WS2_32.dll_ntohl]
push ebp
mov ebp, dword [esp + 0x18]
push esi
mov esi, eax
mov eax, dword [esi]
push edi
push eax
call ebx
mov ecx, dword [esi + 4]
push ecx
mov edi, eax
call ebx
mov edx, dword [ebp]
push edx
mov esi, eax
call ebx
mov dword [esp + 0x18], eax
mov eax, dword [ebp + 4]
push eax
call ebx
mov ecx, dword [ebp + 8]
push ecx
mov dword [esp + 0x18], eax
call ebx
mov edx, dword [ebp + 0xc]
push edx
mov dword [esp + 0x14], eax
call ebx
mov dword [esp + 0x20], eax
mov edx, 0x10
mov ecx, 0xe3779b90
mov eax, edi
shr eax, 5
add eax, dword [esp + 0x20]
mov ebx, edi
shl ebx, 4
add ebx, dword [esp + 0x10]
sub edx, 1
xor eax, ebx
lea ebx, [ecx + edi]
xor eax, ebx
sub esi, eax
mov eax, esi
shr eax, 5
add eax, dword [esp + 0x14]
mov ebx, esi
shl ebx, 4
add ebx, dword [esp + 0x18]
xor eax, ebx
lea ebx, [ecx + esi]
xor eax, ebx
sub edi, eax
add ecx, 0x61c88647
test edx, edx
ja 0x539954
push edi
mov edi, dword [sym.imp.WS2_32.dll_htonl]
call edi
mov ebx, dword [esp + 0x24]
push esi
mov dword [ebx], eax
call edi
pop edi
pop esi
pop ebp
mov dword [ebx + 4], eax
pop ebx
add esp, 0xc
ret
Function at 0x53a2f0
Capabilities:
Access peb ldr_data
Get ntdll base address
Reference http user-agent string

Disassembly:
push 0xffffffffffffffff
push 0x5462a6
mov eax, dword fs:[0]
push eax
mov dword fs:[0], esp
sub esp, 8
mov al, byte [esp + 3]
push esi
push edi
mov esi, ecx
xor edi, edi
mov dword [esp + 0xc], esi
mov byte [esi + 0x40], al
mov dword [esi + 0x44], edi
mov dword [esi + 0x48], edi
mov dword [esi + 0x4c], edi
mov cl, byte [esp + 0xb]
mov dword [esp + 0x18], edi
mov byte [esi + 0x50], cl
mov dword [esi + 0x54], edi
mov dword [esi + 0x58], edi
mov dword [esi + 0x5c], edi
mov byte [esp + 0x18], 1
call dword [sym.imp.KERNEL32.dll_GetCurrentThreadId]
lea edx, [esi + 0x18]
mov dword [esi + 0x6c], eax
push edx
push str.Mozilla_5.0__Windows__U__Windows_NT_6.1__en_US__AppleWebKit_534.10__KHTML__like_Gecko__Chrome_7.0.536.2_Safari_534.10
mov dword [esi], edi
mov dword [esi + 4], edi
mov dword [esi + 8], edi
mov dword [esi + 0xc], edi
mov dword [esi + 0x10], edi
mov dword [esi + 0x1c], edi
mov dword [esi + 0x20], edi
mov word [esi + 0x24], di
mov dword [esi + 0x28], edi
mov dword [esi + 0x2c], edi
call fcn.0053a3b0
mov dword [esi + 0x14], eax
lea eax, [esi + 0x60]
push 0x80
push eax
mov dword [esi + 0x30], edi
mov dword [esi + 0x34], edi
mov dword [esi + 0x38], edi
mov byte [esi + 0x3c], 1
mov byte [esi + 0x3d], 1
call fcn.0053b790
mov ecx, dword [esp + 0x20]
add esp, 0x10
mov eax, esi
mov dword fs:[0], ecx
pop edi
pop esi
add esp, 0x14
ret

Function at 0x53a79f
Capabilities:
Parse url

Disassembly:
sub esp, 0x95c
push ebx
mov ebx, dword [esp + 0x968]
push ebp
push esi
mov esi, ecx
push edi
mov edi, ebx
or ecx, 0xffffffff
xor eax, eax
repne scasb al, byte es:[edi]
not ecx
dec ecx
lea edi, [esp + 0x14]
mov ebp, ecx
mov ecx, 0xe
rep stosd dword es:[edi], eax
mov dword [esp + 0x10], 0x3c
call dword [sym.imp.KERNEL32.dll_GetCurrentThreadId]
cmp dword [esi + 0x6c], eax
je 0x53a7ef
push 0
push 0x630838
push 0x7eb
call fcn.00533ab0
pop edi
pop esi
pop ebp
xor al, al
pop ebx
add esp, 0x95c
ret 8
lea ecx, [esp + 0x16c]
lea eax, [esp + 0x6c]
mov dword [esp + 0x3c], ecx
mov dword [esp + 0x20], eax
lea ecx, [esp + 0x10]
xor eax, eax
push ecx
push eax
lea edx, [esp + 0x54]
push ebp
push ebx
mov dword [esp + 0x34], pe_nt_image_headers32
mov dword [esp + 0x50], 0x800
mov dword [esp + 0x54], eax
mov dword [esp + 0x58], eax
mov dword [esp + 0x24], edx
mov dword [esp + 0x28], 0x20
call dword [sym.imp.WININET.dll_InternetCrackUrlA]
test eax, eax
je 0x53a7e0
mov ecx, esi
call fcn.0053b0b0
mov edx, dword [esp + 0x20]
push edx
call fcn.0053a440
push ebx
mov dword [esi + 4], eax
call fcn.0053b450
push eax
call fcn.0053a440
push ebp
push ebx
mov dword [esi + 8], eax
call fcn.0053a490
mov edx, dword [esp + 0x28]
mov ecx, dword [esp + 0x30]
mov dword [esi], eax
mov ax, word [esp + 0x3c]
push edx
mov word [esi + 0x24], ax
mov dword [esi + 0x28], ecx
call fcn.0053a440
mov dword [esi + 0xc], eax
mov eax, dword [esp + 0x988]
push eax
call fcn.0053a440
add esp, 0x1c
mov ecx, esi
mov dword [esi + 0x10], eax
call fcn.0053b070
mov ecx, esi
call fcn.0053a750
test eax, eax
je 0x53a7e0
pop edi
pop esi
pop ebp
mov al, 1
pop ebx
add esp, 0x95c
ret 8
Function at 0x40a250
Capabilities:
Query or enumerate registry key

Disassembly:
push ebp
mov ebp, esp
sub esp, 0x400
mov eax, dword [0x4b09fc]
xor eax, ebp
mov dword [ebp - 4], eax
mov eax, dword [ebp + 8]
push esi
push edi
lea edx, [ebp - 0x3f4]
push edx
push 0x20019
push 0
push str.TypeLib
push SysReAllocString
mov dword [ebp - 0x3fc], eax
mov dword [ebp - 0x400], ecx
call dword [sym.imp.ADVAPI32.dll_RegOpenKeyExA]
mov edi, dword [sym.imp.ADVAPI32.dll_RegCloseKey]
push SysReAllocString
mov esi, eax
call edi
test esi, esi
je 0x40a2b7
pop edi
xor al, al
pop esi
mov ecx, dword [ebp - 4]
xor ecx, ebp
call fcn.0046e8b1
mov esp, ebp
pop ebp
ret
mov ecx, dword [ebp - 0x3f4]
lea eax, [ebp - 0x3f0]
push eax
push 0x20019
push 0
push ebx
push ecx
call dword [sym.imp.ADVAPI32.dll_RegOpenKeyExA]
mov edx, dword [ebp - 0x3f4]
push edx
mov esi, eax
call edi
test esi, esi
jne 0x40a2a5
mov edx, dword [ebp - 0x3f0]
push esi
push esi
push esi
push esi
lea eax, [ebp - 0x3f8]
push eax
lea ecx, [ebp - 0x3ec]
push ecx
push esi
push edx
mov dword [ebp - 0x3f8], 0x3e8
call dword [sym.imp.ADVAPI32.dll_RegEnumKeyExA]
mov esi, eax
mov eax, dword [ebp - 0x3f0]
push eax
call edi
test esi, esi
jne 0x40a2a5
mov ecx, dword [ebp - 0x400]
mov edx, dword [ebp - 0x3fc]
push ecx
push edx
lea eax, [ebp - 0x3ec]
push str._d._d
push eax
call fcn.004712e7
mov ecx, dword [ebp - 4]
add esp, 0x10
pop edi
xor ecx, ebp
mov al, 1
pop esi
call fcn.0046e8b1
mov esp, ebp
pop ebp
ret
Function at 0x40a350
Capabilities:
Set registry value

Disassembly:
push ebp
mov ebp, esp
mov eax, 0x2720
call fcn.00485ee0
mov eax, dword [0x4b09fc]
xor eax, ebp
mov dword [ebp - 4], eax
mov eax, dword [ebp + 8]
push ebx
push esi
push 0x270f
mov esi, ecx
lea ecx, [ebp - 0x2713]
push 0
push ecx
mov ebx, edx
mov dword [ebp - 0x2720], eax
mov byte [ebp - 0x2715], 0
mov byte [ebp - 0x2714], 0
call fcn.00478140
mov eax, esi
add esp, 0xc
mov ecx, eax
mov edi, edi
mov dl, byte [eax]
inc eax
test dl, dl
jne 0x40a3a0
push edi
lea edi, [ebp - 0x2714]
sub eax, ecx
dec edi
mov cl, byte [edi + 1]
inc edi
test cl, cl
jne 0x40a3b1
mov ecx, eax
shr ecx, 2
rep movsd dword es:[edi], dword [esi]
mov ecx, eax
and ecx, 3
rep movsb byte es:[edi], byte [esi]
test ebx, ebx
je 0x40a416
lea edi, [ebp - 0x2714]
dec edi
mov al, byte [edi + 1]
inc edi
test al, al
jne 0x40a3d2
mov dx, word [0x499f98]
mov eax, ebx
mov word [edi], dx
mov ecx, eax
mov dl, byte [eax]
inc eax
test dl, dl
jne 0x40a3e8
lea edi, [ebp - 0x2714]
sub eax, ecx
mov esi, ecx
dec edi
lea ebx, [ebx]
mov cl, byte [edi + 1]
inc edi
test cl, cl
jne 0x40a400
mov ecx, eax
shr ecx, 2
rep movsd dword es:[edi], dword [esi]
mov ecx, eax
and ecx, 3
rep movsb byte es:[edi], byte [esi]
push 0
lea eax, [ebp - 0x271c]
push eax
push 0
push 0xf003f
push 0
push 0
push 0
lea ecx, [ebp - 0x2714]
push ecx
push SysReAllocString
call dword [sym.imp.ADVAPI32.dll_RegCreateKeyExA]
pop edi
test eax, eax
jne 0x40a4bb
mov esi, dword [ebp - 0x2720]
test esi, esi
je 0x40a475
mov eax, esi
lea edx, [eax + 1]
mov cl, byte [eax]
inc eax
test cl, cl
jne 0x40a452
sub eax, edx
mov edx, dword [ebp - 0x271c]
inc eax
push eax
push esi
push 1
push 0
push 0
push edx
call dword [sym.imp.ADVAPI32.dll_RegSetValueExA]
test eax, eax
jne 0x40a496
mov eax, dword [ebp - 0x271c]
push eax
mov bl, 1
call dword [sym.imp.ADVAPI32.dll_RegCloseKey]
pop esi
mov al, bl
pop ebx
mov ecx, dword [ebp - 4]
xor ecx, ebp
call fcn.0046e8b1
mov esp, ebp
pop ebp
ret
mov eax, dword [ebp - 0x271c]
mov bl, byte [ebp - 0x2715]
push eax
call dword [sym.imp.ADVAPI32.dll_RegCloseKey]
pop esi
mov al, bl
pop ebx
mov ecx, dword [ebp - 4]
xor ecx, ebp
call fcn.0046e8b1
mov esp, ebp
pop ebp
ret
mov ecx, dword [ebp - 4]
mov al, byte [ebp - 0x2715]
pop esi
xor ecx, ebp
pop ebx
call fcn.0046e8b1
mov esp, ebp
pop ebp
ret

Function at 0x40a4e0
Capabilities:
Delete registry key

Disassembly:
push ebp
mov ebp, esp
mov eax, 0x2714
call fcn.00485ee0
mov eax, dword [0x4b09fc]
xor eax, ebp
mov dword [ebp - 4], eax
push esi
push edi
push 0x270f
lea eax, [ebp - 0x2713]
push 0
push eax
mov esi, ecx
mov byte [ebp - 0x2714], 0
call fcn.00478140
mov eax, esi
add esp, 0xc
mov edx, eax
lea esp, [esp]
mov cl, byte [eax]
inc eax
test cl, cl
jne 0x40a520
lea edi, [ebp - 0x2714]
sub eax, edx
dec edi
mov cl, byte [edi + 1]
inc edi
test cl, cl
jne 0x40a530
mov ecx, eax
shr ecx, 2
rep movsd dword es:[edi], dword [esi]
mov ecx, eax
and ecx, 3
rep movsb byte es:[edi], byte [esi]
lea ecx, [ebp - 0x2714]
push ecx
push SysReAllocString
call dword [sym.imp.SHLWAPI.dll_SHDeleteKeyA]
mov ecx, dword [ebp - 4]
test eax, eax
sete al
pop edi
xor ecx, ebp
pop esi
call fcn.0046e8b1
mov esp, ebp
pop ebp
ret
Function at 0x415270
Capabilities:
Access peb ldr_data
Get ntdll base address

Disassembly:
push ebp
mov ebp, esp
and esp, 0xfffffff8
push 0xffffffffffffffff
push 0x4936f8
mov eax, dword fs:[0]
push eax
sub esp, 0x2c
push ebx
push esi
mov eax, dword [0x4b09fc]
xor eax, esp
push eax
lea eax, [esp + 0x38]
mov dword fs:[0], eax
mov esi, ecx
cmp word [esi], 0xc
jne 0x4152b4
lea eax, [esp + 0xc]
push eax
call dword [sym.imp.OLEAUT32.dll_VariantClear]
lea eax, [esp + 0xc]
jmp 0x4152cb
lea ecx, [esp + 0xc]
push ecx
call dword [sym.imp.OLEAUT32.dll_VariantClear]
mov dx, word [esi]
mov word [esp + 0xc], dx
lea eax, [esp + 0x14]
mov ecx, dword [ebp + 8]
push eax
mov eax, dword [ebp + 0xc]
push eax
push ecx
call dword [sym.imp.OLEAUT32.dll_SafeArrayPutElement]
xor ecx, ecx
cmp eax, ecx
jge 0x415338
mov dword [esp + 0x20], vtable.tcomxException.0
mov dword [esp + 0x28], vtable.tStringBuffer.0
mov dword [esp + 0x2c], ecx
mov dword [esp + 0x30], ecx
mov dword [esp + 0x40], ecx
mov ebx, dword [str.Internal_Error]
lea esi, [esp + 0x28]
mov dword [esp + 0x24], ecx
call fcn.0040b3a0
mov edx, dword [esp + 0x30]
push edx
mov ecx, 0x4985dc
call fcn.004092e0
add esp, 4
push 0x4ac5b0
lea eax, [esp + 0x24]
push eax
mov dword [esp + 0x48], 0xffffffff
call fcn.00477ede
mov edx, dword [esp + 0x10]
push 0xffff
push ecx
push ecx
mov ecx, dword [esp + 0x18]
sub esp, 0x10
mov eax, esp
mov dword [eax], ecx
mov ecx, dword [esp + 0x30]
mov dword [eax + 4], edx
mov edx, dword [esp + 0x34]
mov dword [eax + 8], ecx
push edi
mov dword [eax + 0xc], edx
call fcn.00412bd0
add esp, 0x20
lea eax, [esp + 0xc]
push eax
call dword [sym.imp.OLEAUT32.dll_VariantCopy]
mov eax, dword [edi + 8]
sub eax, dword [edi + 0xc]
sar eax, 4
mov ecx, dword [esp + 0x38]
mov dword fs:[0], ecx
pop ecx
pop esi
pop ebx
mov esp, ebp
pop ebp
ret
Function at 0x41c160
Capabilities:
Hide graphical window

Disassembly:
push ebp
mov ebp, esp
and esp, 0xfffffff8
push ecx
mov edx, dword [ebp + 0xc]
lea eax, [edx + 5]
push esi
cmp eax, 4
ja case.0x41c177.2
jmp dword [eax*4 + 0x41c254]
mov esi, dword [ebp + 8]
mov eax, dword [esi + 0x5c]
or dword [esi + 0x68], 4
test eax, eax
je 0x41c1a8
push 0xfffffffffffffff0
push eax
call dword [sym.imp.USER32.dll_GetWindowLongA]
test eax, 0x10000000
jne 0x41c1a8
mov eax, dword [esi + 0x5c]
push 8
push eax
call dword [sym.imp.USER32.dll_ShowWindow]
xor eax, eax
pop esi
mov esp, ebp
pop ebp
ret 0x1c
mov ecx, dword [ebp + 8]
xor eax, eax
add ecx, 0xffffffb8
cmp edx, 0xfffffffc
sete al
push eax
call fcn.0041c910
pop esi
mov esp, ebp
pop ebp
ret 0x1c
mov esi, dword [ebp + 8]
mov ecx, dword [esi + 8]
mov edx, dword [ecx + 0x18]
lea eax, [esi + 8]
push eax
call edx
test byte [esi + 0x68], 4
je 0x41c208
mov eax, dword [esi + 0x5c]
and dword [esi + 0x68], 0xfffffffb
test eax, eax
je 0x41c208
push 0xfffffffffffffff0
push eax
call dword [sym.imp.USER32.dll_GetWindowLongA]
test eax, 0x10000000
je 0x41c208
mov eax, dword [esi + 0x5c]
push 0
push eax
call dword [sym.imp.USER32.dll_ShowWindow]
xor eax, eax
pop esi
mov esp, ebp
pop ebp
ret 0x1c
mov ecx, str.FAIL
test edx, edx
jle 0x41c235
push 0x30e
push 0x4b22bc
call fcn.0041b6a0
add esp, 8
xor eax, eax
pop esi
mov esp, ebp
pop ebp
ret 0x1c
push 0x31a
push str.Unrecognized_Negative_verb_in_DoVerb__.__bad.
call fcn.0041b6a0
add esp, 8
mov eax, 0x80004001
pop esi
mov esp, ebp
pop ebp
ret 0x1c

Function at 0x421b50
Capabilities:
Acquire debug privileges

Disassembly:
push ebp
mov ebp, esp
sub esp, 0x20
mov eax, dword [0x4b09fc]
xor eax, ebp
mov dword [ebp - 4], eax
push 0x421b40
call fcn.00472077
add esp, 4
call fcn.00421a00
lea eax, [ebp - 0x18]
push eax
push 0x28
call dword [sym.imp.KERNEL32.dll_GetCurrentProcess]
push eax
call dword [sym.imp.ADVAPI32.dll_OpenProcessToken]
test eax, eax
je 0x421bde
lea ecx, [ebp - 0x20]
push ecx
push str.SeDebugPrivilege
push 0
call dword [sym.imp.ADVAPI32.dll_LookupPrivilegeValueA]
test eax, eax
jne 0x421ba4
mov edx, dword [ebp - 0x18]
push edx
jmp 0x421bd8
mov eax, dword [ebp - 0x20]
mov ecx, dword [ebp - 0x1c]
push 0
push 0
push 0x10
lea edx, [ebp - 0x14]
push edx
mov dword [ebp - 0x10], eax
mov eax, dword [ebp - 0x18]
push 0
push eax
mov dword [ebp - 0x14], 1
mov dword [ebp - 0xc], ecx
mov dword [ebp - 8], 2
call dword [sym.imp.ADVAPI32.dll_AdjustTokenPrivileges]
mov ecx, dword [ebp - 0x18]
push ecx
call dword [sym.imp.KERNEL32.dll_CloseHandle]
call fcn.0044bc60
mov ecx, dword [ebp - 4]
xor ecx, ebp
call fcn.0046e8b1
mov esp, ebp
pop ebp
ret
Function at 0x421e80
Capabilities:
Check if file exists
Get file attributes

Disassembly:
push ebp
mov ebp, esp
mov eax, ebx
sub esp, 0x10
lea edx, [eax + 1]
jmp 0x421e90
mov cl, byte [eax]
inc eax
test cl, cl
jne 0x421e90
push esi
push edi
sub eax, edx
lea esi, [eax + ebx]
push 0x5c
push ebx
mov dword [ebp - 4], esi
call fcn.00472100
xor ecx, ecx
add esp, 8
mov dword [ebp - 0xc], eax
mov dword [ebp - 8], ecx
test eax, eax
jne 0x421ec0
mov dword [ebp - 0xc], ebx
jmp 0x421ec0
cmp byte [esi], 0x5c
jne 0x421ed6
inc esi
mov dword [ebp - 8], 1
mov ecx, dword [ebp - 8]
mov dword [ebp - 4], esi
mov byte [esi], 0x5f
mov eax, dword [0x49af10]
mov dword [ecx + esi], eax
mov edx, dword [0x49af14]
mov dword [ecx + esi + 4], edx
mov al, byte [0x49af18]
mov byte [ecx + esi + 8], al
test ebx, ebx
je 0x421f3f
push 0
push 0
push 0xffffffffffffffff
push ebx
push 0
push 0xfde9
call dword [sym.imp.KERNEL32.dll_MultiByteToWideChar]
mov esi, eax
test esi, esi
jle 0x421f3c
lea ecx, [esi + esi + 2]
push ecx
call fcn.0047062d
add esp, 4
push esi
mov edi, eax
push edi
push 0xffffffffffffffff
push ebx
push 0
push 0xfde9
call dword [sym.imp.KERNEL32.dll_MultiByteToWideChar]
xor edx, edx
mov word [edi + esi*2 - 2], dx
mov esi, dword [ebp - 4]
jmp 0x421f41
mov esi, dword [ebp - 4]
xor edi, edi
push edi
call dword [sym.imp.KERNEL32.dll_GetFileAttributesW]
push edi
mov dword [ebp - 0x10], eax
call fcn.004705f3
add esp, 4
cmp dword [ebp - 0x10], 0xffffffff
jne 0x421f7b
mov eax, dword [ebp - 0xc]
push 0x2e
push eax
call fcn.004717e0
add esp, 8
test eax, eax
je 0x421f83
cmp eax, esi
ja 0x421f83
mov ecx, dword [ebp - 8]
mov byte [eax], 0x5c
jmp 0x421ec0
pop edi
mov eax, ebx
pop esi
mov esp, ebp
pop ebp
ret
pop edi
xor eax, eax
pop esi
mov esp, ebp
pop ebp
ret
Function at 0x445e50
Capabilities:
Encode data using xor

Disassembly:
push ebp
mov ebp, esp
and esp, 0xfffffff8
sub esp, 0x14
push ebx
mov eax, 0x499200
push esi
sub eax, 0xbc
push edi
mov dword [esp + 0x14], 0xbc
mov dword [esp + 0x1c], eax
jmp 0x445e78
mov eax, dword [esp + 0x1c]
mov ecx, dword [esp + 0x14]
mov esi, dword [eax + ecx]
mov eax, esi
mov dword [esp + 0x10], esi
lea edx, [eax + 1]
mov cl, byte [eax]
inc eax
test cl, cl
jne 0x445e88
sub eax, edx
mov edi, eax
shr eax, 5
inc eax
mov ebx, edi
mov dword [esp + 0x18], edi
mov ecx, edi
cmp edi, eax
jb 0x445ec6
movzx edx, byte [esi + ecx - 1]
mov esi, ebx
shl esi, 5
add edx, esi
mov esi, ebx
shr esi, 2
add edx, esi
mov esi, dword [esp + 0x10]
sub ecx, eax
xor ebx, edx
cmp ecx, eax
jae 0x445ea3
mov dword [esp + 0x18], ebx
mov eax, dword [ebp + 8]
mov eax, dword [eax + 0x10]
mov ecx, dword [eax + 8]
mov edx, dword [eax]
dec ecx
and ecx, ebx
mov edx, dword [edx + ecx*4]
test edx, edx
je 0x445f46
jmp 0x445ee0
cmp dword [edx + 0xc], edi
jne 0x445f40
test edi, edi
je 0x445eef
test byte [edx + 7], 0x10
jne 0x445f40
mov eax, edi
lea ecx, [edx + 0x10]
cmp edi, 4
jb 0x445f14
lea esp, [esp]
mov ebx, dword [esi]
cmp ebx, dword [ecx]
jne 0x445f38
sub eax, 4
add ecx, 4
add esi, 4
cmp eax, 4
jae 0x445f00
test eax, eax
je 0x445f86
mov bl, byte [ecx]
cmp bl, byte [esi]
jne 0x445f38
cmp eax, 1
jbe 0x445f86
mov bl, byte [ecx + 1]
cmp bl, byte [esi + 1]
jne 0x445f38
cmp eax, 2
jbe 0x445f86
mov al, byte [ecx + 2]
cmp al, byte [esi + 2]
je 0x445f86
mov ebx, dword [esp + 0x18]
mov esi, dword [esp + 0x10]
mov edx, dword [edx]
test edx, edx
jne 0x445ee0
mov edx, dword [ebp + 8]
push ebx
push edi
push esi
push edx
call fcn.00447570
add esp, 0x10
mov edx, dword [ebp + 8]
mov ecx, dword [esp + 0x14]
mov esi, dword [edx + 0x10]
mov dword [ecx + esi], eax
mov eax, dword [edx + 0x10]
mov eax, dword [ecx + eax]
or byte [eax + 5], 0x20
add ecx, 4
mov dword [esp + 0x14], ecx
cmp ecx, 0x10c
jl 0x445e74
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret
mov esi, dword [ebp + 8]
mov al, byte [edx + 5]
mov esi, dword [esi + 0x10]
movzx ebx, byte [esi + 0x14]
movzx ecx, al
and ecx, 3
not ebx
test bl, cl
je 0x445fa4
xor al, 3
mov byte [edx + 5], al
mov eax, edx
jmp 0x445f55