joyce8/EMBER2024-capa huggingface dataset:
Function at 0x430ef2
Capabilities:
Parse pe header
Terminate process

Disassembly:
push 0x60
push 0x4507f0
call fcn.00432138
mov edi, 0x94
mov eax, edi
call fcn.00430340
mov dword [ebp - 0x18], esp
mov esi, esp
mov dword [esi], edi
push esi
call dword [0x44c30c]
mov ecx, dword [esi + 0x10]
mov dword [0x572afc], ecx
mov eax, dword [esi + 4]
mov dword [0x572b08], eax
mov edx, dword [esi + 8]
mov dword [0x572b0c], edx
mov esi, dword [esi + 0xc]
and esi, 0x7fff
mov dword [0x572b00], esi
cmp ecx, 2
je 0x430f52
or esi, 0x8000
mov dword [0x572b00], esi
shl eax, 8
add eax, edx
mov dword [0x572b04], eax
xor esi, esi
push esi
mov edi, dword [0x44c228]
call edi
cmp word [eax], 0x5a4d
jne 0x430f8d
mov ecx, dword [eax + 0x3c]
add ecx, eax
cmp dword [ecx], 0x4550
jne 0x430f8d
movzx eax, word [ecx + 0x18]
cmp eax, 0x10b
je 0x430fa5
cmp eax, 0x20b
je 0x430f92
mov dword [ebp - 0x1c], esi
jmp 0x430fb9
cmp dword [ecx + 0x84], 0xe
jbe 0x430f8d
xor eax, eax
cmp dword [ecx + 0xf8], esi
jmp 0x430fb3
cmp dword [ecx + 0x74], 0xe
jbe 0x430f8d
xor eax, eax
cmp dword [ecx + 0xe8], esi
setne al
mov dword [ebp - 0x1c], eax
push 1
call fcn.004344b2
pop ecx
test eax, eax
jne 0x430fcd
push 0x1c
call fcn.00430ece
pop ecx
call fcn.004332ed
test eax, eax
jne 0x430fde
push 0x10
call fcn.00430ece
pop ecx
call fcn.004343a2
mov dword [ebp - 4], esi
call fcn.0043707f
test eax, eax
jge 0x430ff7
push 0x1b
call fcn.00430ea9
pop ecx
call dword [0x44c118]
mov dword [0x574420], eax
call fcn.00436f5d
mov dword [0x572b48], eax
call fcn.00436ebb
test eax, eax
jge 0x43101d
push 8
call fcn.00430ea9
pop ecx
call fcn.00436c88
test eax, eax
jge 0x43102e
push 9
call fcn.00430ea9
pop ecx
push 1
call fcn.0043010d
pop ecx
mov dword [ebp - 0x28], eax
cmp eax, esi
je 0x431044
push eax
call fcn.00430ea9
pop ecx
mov dword [ebp - 0x44], esi
lea eax, [ebp - 0x70]
push eax
call dword [0x44c114]
call fcn.00436c2b
mov dword [ebp - 0x20], eax
test byte [ebp - 0x44], 1
je 0x431065
movzx eax, word [ebp - 0x40]
jmp 0x431068
push 0xa
pop eax
push eax
push dword [ebp - 0x20]
push esi
push esi
call edi
push eax
call fcn.0043c84e
mov edi, eax
mov dword [ebp - 0x2c], edi
cmp dword [ebp - 0x1c], esi
jne 0x431086
push edi
call fcn.0043023a
call fcn.0043025c
jmp 0x4310b8
or dword [ebp - 4], 0xffffffff
mov eax, edi
lea esp, [ebp - 0x7c]
call fcn.00432173
ret
Function at 0x435041
Capabilities:
Parse pe header

Disassembly:
push ebp
mov ebp, esp
sub esp, 0x20
push ebx
push esi
mov esi, dword [ebp + 8]
mov ebx, dword [esi + 8]
test bl, 3
jne 0x43506f
mov eax, dword fs:[0x18]
mov dword [ebp + 8], eax
mov eax, dword [ebp + 8]
mov ecx, dword [eax + 8]
cmp ebx, ecx
mov dword [ebp - 4], ecx
jb 0x435076
cmp ebx, dword [eax + 4]
jae 0x435076
xor eax, eax
jmp 0x435266
push edi
mov edi, dword [esi + 0xc]
cmp edi, 0xffffffff
jne 0x435087
xor eax, eax
inc eax
jmp 0x435265
xor edx, edx
mov dword [ebp + 8], edx
mov eax, ebx
mov ecx, dword [eax]
cmp ecx, 0xffffffff
je 0x43509d
cmp ecx, edx
jae 0x4351e2
cmp dword [eax + 4], 0
je 0x4350a6
inc dword [ebp + 8]
inc edx
add eax, 0xc
cmp edx, edi
jbe 0x43508e
cmp dword [ebp + 8], 0
je 0x4350c8
mov eax, dword [esi - 8]
cmp eax, dword [ebp - 4]
jb 0x4351e2
cmp eax, esi
jae 0x4351e2
mov eax, dword [0x572cd8]
mov edi, ebx
and edi, 0xfffff000
xor esi, esi
test eax, eax
jle 0x4350ed
cmp dword [esi*4 + 0x572ce0], edi
je 0x4351e6
inc esi
cmp esi, eax
jl 0x4350db
push 0x1c
lea eax, [ebp - 0x20]
push eax
push ebx
call dword [0x44c10c]
test eax, eax
je 0x435262
cmp dword [ebp - 8], 0x1000000
jne 0x435262
test byte [ebp - 0xc], 0xcc
je 0x43516b
mov ecx, dword [ebp - 0x1c]
cmp word [ecx], 0x5a4d
jne 0x435262
mov eax, dword [ecx + 0x3c]
add eax, ecx
cmp dword [eax], 0x4550
jne 0x435262
cmp word [eax + 0x18], 0x10b
jne 0x435262
sub ebx, ecx
cmp word [eax + 6], 0
movzx ecx, word [eax + 0x14]
lea ecx, [ecx + eax + 0x18]
jbe 0x435262
mov eax, dword [ecx + 0xc]
cmp ebx, eax
jb 0x43516b
mov edx, dword [ecx + 8]
add edx, eax
cmp ebx, edx
jae 0x43516b
test byte [ecx + 0x27], 0x80
jne 0x4351e2
push 1
push 0x572d20
call dword [0x44c31c]
test eax, eax
jne 0x43507f
mov ecx, dword [0x572cd8]
test ecx, ecx
mov edx, ecx
jle 0x43519f
lea eax, [ecx*4 + 0x572cdc]
cmp dword [eax], edi
je 0x43519f
dec edx
sub eax, 4
test edx, edx
jg 0x435193
test edx, edx
jne 0x4351d0
push 0xf
pop ebx
cmp ecx, ebx
jg 0x4351ac
mov ebx, ecx
xor edx, edx
test ebx, ebx
jl 0x4351c4
lea eax, [edx*4 + 0x572ce0]
mov esi, dword [eax]
inc edx
cmp edx, ebx
mov dword [eax], edi
mov edi, esi
jle 0x4351b2
cmp ecx, 0x10
jge 0x4351d0
inc ecx
mov dword [0x572cd8], ecx
push 0
push 0x572d20
call dword [0x44c31c]
jmp 0x43507f
xor eax, eax
jmp 0x435265
test esi, esi
jle 0x43507f
mov ebx, dword [0x44c31c]
push 1
push 0x572d20
call ebx
test eax, eax
jne 0x43507f
cmp dword [esi*4 + 0x572ce0], edi
je 0x43523c
mov eax, dword [0x572cd8]
lea esi, [eax - 1]
test esi, esi
jl 0x43522a
cmp dword [esi*4 + 0x572ce0], edi
je 0x435226
dec esi
jns 0x43521a
test esi, esi
jge 0x43523a
cmp eax, 0x10
jge 0x435235
inc eax
mov dword [0x572cd8], eax
lea esi, [eax - 1]
jmp 0x43523c
je 0x435254
xor ecx, ecx
test esi, esi
jl 0x435254
lea eax, [ecx*4 + 0x572ce0]
mov edx, dword [eax]
inc ecx
cmp ecx, esi
mov dword [eax], edi
mov edi, edx
jle 0x435242
push 0
push 0x572d20
call ebx
jmp 0x43507f
or eax, 0xffffffff
pop edi
pop esi
pop ebx
leave
ret
Function at 0x403890
Capabilities:
Create process on windows

Disassembly:
push 0xffffffffffffffff
push 0x428680
mov eax, dword fs:[0]
push eax
mov dword fs:[0], esp
push ecx
mov eax, dword [esp + 0x14]
push esi
test eax, eax
mov esi, ecx
je 0x4039a5
mov dword [esi + 0x88], 0xffffffff
mov eax, dword [0x4348f8]
push edi
mov dword [esp + 0x1c], eax
push 0x100
push 0x100
lea ecx, [esp + 0x24]
mov dword [esp + 0x1c], 0
call fcn.00420e31
push eax
push 0
call dword [sym.imp.KERNEL32.dll_GetModuleFileNameA]
push 0xffffffffffffffff
lea ecx, [esp + 0x20]
call fcn.00420e80
push 0x5c
lea ecx, [esp + 0x20]
call fcn.0041bd73
inc eax
lea ecx, [esp + 8]
push eax
push ecx
lea ecx, [esp + 0x24]
call fcn.0041bcfb
push eax
lea ecx, [esp + 0x20]
mov byte [esp + 0x18], 1
call fcn.00420b61
lea ecx, [esp + 8]
mov byte [esp + 0x14], 0
call fcn.00420a28
mov eax, dword [esi + 0x9c]
lea edi, [esi + 0x9c]
push eax
mov ecx, esi
call fcn.00403fb0
test eax, eax
je 0x403960
push 0x24
push 0x4345ac
push 0x43458c
mov ecx, esi
call fcn.0041ef15
cmp eax, 6
jne 0x403993
push ebp
mov ebp, dword [esi + 0x5c]
lea edx, [esp + 0x20]
push edi
lea eax, [esp + 0x10]
push edx
push eax
call fcn.00420c57
mov ecx, dword [esp + 0x20]
mov eax, dword [eax]
push 5
push ecx
push ebp
push eax
push 0
push 0
call dword [sym.imp.SHELL32.dll_ShellExecuteA]
lea ecx, [esp + 0xc]
call fcn.00420a28
pop ebp
lea ecx, [esp + 0x1c]
mov dword [esp + 0x14], 0xffffffff
call fcn.00420a28
pop edi
push 0
mov ecx, esi
call fcn.0042015b
push esi
call fcn.00402180
mov ecx, dword [esp + 8]
mov dword [esi + 0x8c], 1
pop esi
mov dword fs:[0], ecx
add esp, 0x10
ret 4
Function at 0x420860
Capabilities:
Inspect section memory permissions

Disassembly:
sub esp, 0x124
push ebx
push ebp
push esi
push edi
mov ecx, 0x3e
xor eax, eax
lea edi, [esp + 0x3c]
xor ebx, ebx
rep stosd dword es:[edi], eax
mov ecx, 0xa
lea edi, [esp + 0x14]
rep stosd dword es:[edi], eax
mov ecx, dword [esp + 0x138]
lea eax, [esp + 0x3c]
push eax
push ecx
mov dword [esp + 0x18], ebx
xor esi, esi
call fcn.00420cd0
add eax, 4
movsx edx, word [esp + 0x50]
jo 0x4209b6
add eax, 0x14
jo 0x4209b6
add eax, edx
jo 0x4209b6
mov edi, eax
mov ax, word [esp + 0x42]
sub ax, 1
jo 0x4209b6
movsx ebp, ax
cmp ebp, ebx
jl 0x4209a7
lea ecx, [esp + 0x14]
push ecx
call fcn.004210b0
push 0x28
push edi
push eax
call fcn.00421000
mov eax, dword [esp + 0x38]
test eax, 0x20000000
je 0x42091e
test eax, 0x40000000
je 0x42090d
and eax, 0x80000000
neg eax
sbb eax, eax
and eax, 0x20
add eax, 0x20
jmp 0x420943
and eax, 0x80000000
neg eax
sbb eax, eax
and eax, 0x70
add eax, 0x10
jmp 0x420943
test eax, 0x40000000
je 0x420936
and eax, 0x80000000
neg eax
sbb eax, eax
and eax, 2
add eax, 2
jmp 0x420943
and eax, 0x80000000
neg eax
sbb eax, eax
and eax, 7
inc eax
lea edx, [esp + 0x10]
mov esi, eax
push edx
call fcn.004210b0
push eax
push esi
mov ecx, dword [esp + 0x28]
mov esi, dword [esp + 0x140]
mov eax, dword [esp + 0x24]
add ecx, esi
push eax
jo 0x4209b6
push ecx
call fcn.00420fe0
test eax, eax
je 0x420990
add edi, 0x28
jo 0x4209b6
add ebx, 1
jo 0x4209b6
cmp ebx, ebp
jle 0x4208d7
pop edi
pop esi
pop ebp
xor eax, eax
pop ebx
add esp, 0x124
ret 4
mov esi, 4
call dword [sym.imp.KERNEL32.DLL_SetFileApisToANSI]
call dword [sym.imp.KERNEL32.DLL_SetFileApisToOEM]
call dword [sym.imp.USER32.DLL_WaitMessage]
mov eax, esi
pop edi
pop esi
pop ebp
pop ebx
add esp, 0x124
ret 4
call dword [sym.imp.MSVBVM60.DLL___vbaErrorOverflow]
nop
nop
nop
nop

Function at 0x40203d
Capabilities:
Parse pe header

Disassembly:
push ebp
mov ebp, esp
push ecx
push edi
xor edi, edi
push edi
push edi
push edi
push dword [ebp + 8]
call dword [0x40f090]
lea eax, [ebp - 4]
push edi
push eax
push 0x100000
push 0x415ea4
push dword [ebp + 8]
call dword [0x40f08c]
test eax, eax
je 0x402089
cmp word [0x415ea4], 0x5a4d
jne 0x402089
mov ecx, dword [0x415ee0]
cmp dword [ecx + 0x415ea4], 0x4550
je 0x40208e
or eax, 0xffffffff
jmp 0x4020b9
push esi
xor eax, eax
movzx esi, word [ecx + 0x415eaa]
cmp esi, edi
jle 0x4020b8
lea edx, [ecx + 0x415fac]
mov ecx, dword [edx + 4]
add ecx, dword [edx]
cmp ecx, eax
jbe 0x4020ad
mov eax, ecx
add edx, 0x28
inc edi
movsx ecx, di
cmp ecx, esi
jl 0x4020a2
pop esi
pop edi
leave
ret
Function at 0x67ca52
Capabilities:
Parse pe header

Disassembly:
lea esp, [esp + 1]
mov dword [esp + 0x18], edi
lea esp, [esp + 0x18]
jmp 0x67ca3a

Function at 0x67cb47
Capabilities:
Parse pe header

Disassembly:
pop word [esp + 1]
push dword [esp + 1]
call fcn.0067ca52
pop dword [esp]
mov word [esp], dx
pushal
lea esp, [esp + 0x1b]
mov byte [esp + 3], ah
pop word [esp + 3]
jmp 0x67ca6f
push dword [esp]
jmp 0x67caad
Function at 0x478847
Capabilities:
Check for software breakpoints

Disassembly:
push ebp
mov ebp, esp
push 0xffffffffffffffff
push 0x4b5fc5
mov eax, dword fs:[0]
push eax
mov dword fs:[0], esp
push ecx
sub esp, 0x50
push ebx
push esi
push edi
mov dword [ebp - 0x10], esp
movzx eax, byte [ebp + 0x14]
test eax, eax
je 0x4788e3
mov eax, dword [ebp + 0x10]
mov dword [ebp - 0x30], eax
mov eax, dword [ebp + 8]
mov dword [ebp - 0x44], eax
mov eax, dword [ebp + 0x18]
mov dword [ebp - 0x2c], eax
lea eax, [ebp + 0xc]
mov dword [ebp - 0x28], eax
mov eax, dword [ebp - 0x28]
movzx eax, byte [eax]
test eax, eax
je 0x4788b7
mov eax, dword [ebp - 0x2c]
mov dword [ebp - 0x34], eax
mov eax, dword [ebp - 0x30]
mov dword [ebp - 0x38], eax
mov eax, dword [ebp - 0x34]
mov dword [ebp - 0x3c], eax
mov eax, dword [ebp - 0x38]
mov dword [ebp - 0x40], eax
mov eax, dword [ebp - 0x3c]
mov ecx, dword [ebp - 0x40]
mov ecx, dword [ecx]
mov dword [eax], ecx
jmp 0x4788de
mov eax, dword [ebp - 0x44]
mov dword [ebp - 0x48], eax
mov eax, dword [ebp - 0x48]
mov dword [ebp - 0x4c], eax
mov eax, dword [ebp - 0x4c]
movzx eax, byte [eax]
test eax, eax
je 0x4788de
push 0x20b2
push 0
push 1
call fcn.00463490
add esp, 0xc
jmp 0x4789e4
mov dword [ebp - 0x24], 0x3b7
mov dword [ebp - 0x50], 0xacff78
cmp dword [ebp - 0x24], 0x3d2
jle 0x478983
and dword [ebp - 0x1c], 0
jmp 0x47890b
mov eax, dword [ebp - 0x1c]
inc eax
mov dword [ebp - 0x1c], eax
cmp dword [ebp - 0x1c], 0x72ca
jge 0x478983
and dword [ebp - 0x14], 0
jmp 0x478921
mov eax, dword [ebp - 0x14]
inc eax
mov dword [ebp - 0x14], eax
cmp dword [ebp - 0x14], 0x24d1
jge 0x478981
and dword [ebp - 0x18], 0
jmp 0x478937
mov eax, dword [ebp - 0x18]
inc eax
mov dword [ebp - 0x18], eax
cmp dword [ebp - 0x18], 0x2aa
jge 0x47897f
and dword [ebp - 0x20], 0
jmp 0x47894d
mov eax, dword [ebp - 0x20]
inc eax
mov dword [ebp - 0x20], eax
cmp dword [ebp - 0x20], 0x6a01
jge 0x47897d
mov eax, dword [ebp - 0x14]
mov ecx, dword [ebp - 0x18]
shl eax, cl
xor eax, dword [ebp - 0x1c]
or eax, dword [ebp - 0x20]
cdq
mov dword [ebp - 0x60], eax
mov dword [ebp - 0x5c], edx
push dword [ebp - 0x5c]
push dword [ebp - 0x60]
mov ecx, 0xae4c58
call fcn.00409a6e
jmp 0x478946
jmp 0x478930
jmp 0x47891a
jmp 0x478904
mov eax, dword [ebp + 0x1c]
mov dword [ebp - 0x54], eax
and dword [ebp - 4], 0
cmp dword [ebp - 0x24], 0xcc
jge 0x4789a3
mov edx, dword [ebp - 0x50]
mov ecx, 0xae4c58
call fcn.0040c2f7
jmp 0x4789bf
or dword [ebp - 4], 0xffffffff
jmp 0x4789c9
mov eax, dword [ebp + 0x20]
mov dword [ebp - 0x58], eax
push dword [ebp - 0x54]
push 0
push dword [ebp - 0x58]
push 0x92d
call fcn.00462645
add esp, 0x10
mov ecx, dword [ebp - 0xc]
mov dword fs:[0], ecx
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret
Function at 0x402a00
Capabilities:
Print debug messages

Disassembly:
mov eax, dword [0x421ca0]
sub esp, 0x400
test eax, eax
je 0x402a3e
cmp dword [esp + 0x408], eax
jb 0x402a3e
mov eax, dword [esp + 0x404]
lea ecx, [esp]
push eax
push 0x41d2b8
push ecx
call dword [sym.imp.USER32.dll_wsprintfA]
add esp, 0xc
lea edx, [esp]
push edx
call dword [sym.imp.KERNEL32.dll_OutputDebugStringA]
add esp, 0x400
ret

Function at 0x402a50
Capabilities:
Query or enumerate registry key
Query or enumerate registry value

Disassembly:
sub esp, 0x768
push ebx
push ebp
push esi
mov esi, dword [esp + 0x77c]
xor ebp, ebp
push edi
mov edi, dword [esp + 0x77c]
push ebp
lea eax, [esp + 0xa8]
push 0x1ec
push eax
push ebp
push ebp
push esi
push edi
call dword [sym.imp.SETUPAPI.dll_SetupDiGetDeviceRegistryPropertyA]
push 0x20019
push 1
push ebp
push 1
push esi
push edi
call dword [sym.imp.SETUPAPI.dll_SetupDiOpenDevRegKey]
mov ebx, eax
cmp ebx, ebp
mov dword [esp + 0x10], ebx
je 0x402b9c
push ebp
push ebp
push ebp
push ebp
push ebp
push ebp
push ebp
push ebp
lea ecx, [esp + 0x38]
push ebp
lea edx, [esp + 0x2b4]
push ecx
push edx
push ebx
mov dword [esp + 0x4c], 0x80
mov dword [esp + 0x48], ebp
call dword [sym.imp.ADVAPI32.dll_RegQueryInfoKeyA]
test eax, eax
jne 0x402adb
mov eax, dword [esp + 0x18]
mov byte [esp + eax + 0x290], 0
mov edi, dword [esp + 0x788]
mov edx, dword [esp + 0x784]
lea ecx, [esp + 0x14]
push ecx
lea eax, [esp + 0x24]
push edx
push eax
lea ecx, [esp + 0x28]
push 0
lea edx, [esp + 0x34]
push ecx
push edx
push ebp
push ebx
mov dword [esp + 0x34], 0x400
mov dword [edi], 0
call dword [sym.imp.ADVAPI32.dll_RegEnumValueA]
mov esi, eax
test esi, esi
jne 0x402b3f
mov eax, dword [esp + 0x14]
lea ecx, [esp + 0x24]
push str.EDID
push ecx
mov dword [edi], eax
xor bl, bl
call dword [sym.imp.MSVCRT.dll__mbsicmp]
add esp, 8
test eax, eax
je 0x402b5c
mov ebx, dword [esp + 0x10]
inc ebp
cmp esi, 0x103
jne 0x402ae2
push ebx
call dword [sym.imp.ADVAPI32.dll_RegCloseKey]
pop edi
pop esi
pop ebp
xor al, al
pop ebx
add esp, 0x768
ret
mov ecx, dword [esp + 0x14]
xor eax, eax
test ecx, ecx
jbe 0x402b79
mov edx, dword [esp + 0x784]
add bl, byte [eax + edx]
inc eax
cmp eax, ecx
jb 0x402b66
test bl, bl
jne 0x402b91
mov eax, dword [esp + 0x10]
push eax
call dword [sym.imp.ADVAPI32.dll_RegCloseKey]
pop edi
pop esi
pop ebp
mov al, 1
pop ebx
add esp, 0x768
ret
mov ebx, dword [esp + 0x10]
push ebx
call dword [sym.imp.ADVAPI32.dll_RegCloseKey]
pop edi
pop esi
pop ebp
xor al, al
pop ebx
add esp, 0x768
ret
Function at 0x403a70
Capabilities:
Get session user name
Get user security identifier

Disassembly:
mov eax, 0x12a4
call fcn.00415f10
mov edx, dword [esp + 0x12a8]
push ebx
push esi
mov esi, ecx
mov ecx, dword [esp + 0x12b4]
xor ebx, ebx
cmp ecx, ebx
push edi
mov dword [esi + 4], edx
jne 0x403a98
mov ecx, edx
mov eax, dword [esp + 0x12bc]
mov dword [esi + 8], ecx
cmp eax, ebx
jne 0x403aa8
mov eax, edx
mov dword [esi + 0xc], eax
mov eax, dword [esp + 0x12c0]
lea ecx, [esp + 0x1c]
mov edi, 1
push ecx
mov dword [esi + 0x10], ebx
mov dword [esi + 0x14], ebx
mov dword [esi + 0x18], ebx
mov dword [esi + 0x38], ebx
mov dword [esi + 0x40], edi
mov dword [esi + 0x44], ebx
mov dword [esi + 0x4c], ebx
mov dword [esi + 0x50], 0xf01ff
mov dword [esi + 0x54], 0x10
mov dword [esi + 0x58], 2
mov dword [esi + 0x5c], edi
mov dword [esi + 0x60], eax
mov dword [esi + 0x64], ebx
mov dword [esi + 0x68], ebx
mov dword [esi + 0x6c], ebx
mov dword [esi + 0x70], ebx
mov dword [esi], vtable.CNTService.0
mov dword [esp + 0x20], 0x94
call dword [sym.imp.KERNEL32.dll_GetVersionExA]
mov ecx, dword [esp + 0x2c]
xor edx, edx
cmp ecx, 2
sete dl
mov dword [esi + 0x48], edx
mov dword [0x421cbc], edi
mov dword [0x421cc0], esi
mov eax, dword [esi + 0x48]
cmp eax, ebx
mov dword [esi + 0x1c], 0x10
mov dword [esi + 0x2c], ebx
je 0x403c00
mov eax, 0xff
mov ecx, 0x40
mov dword [esp + 0x10], eax
mov dword [esp + 0xc], eax
xor eax, eax
lea edi, [esp + 0xb0]
rep stosd dword es:[edi], eax
mov ecx, 0x40
lea edi, [esp + 0x1b0]
rep stosd dword es:[edi], eax
mov ecx, 0x400
lea edi, [esp + 0x2b0]
rep stosd dword es:[edi], eax
lea eax, [esp + 0x10]
lea ecx, [esp + 0xb0]
push eax
push ecx
mov dword [esp + 0x1c], 0x1000
call dword [sym.imp.ADVAPI32.dll_GetUserNameA]
lea edx, [esp + 0x18]
lea eax, [esp + 0xc]
push edx
lea ecx, [esp + 0x1b4]
push eax
lea edx, [esp + 0x1c]
push ecx
lea eax, [esp + 0x2bc]
push edx
lea ecx, [esp + 0xc0]
push eax
push ecx
push ebx
call dword [sym.imp.ADVAPI32.dll_LookupAccountNameA]
test eax, eax
je 0x403c00
lea edx, [esp + 0x2b0]
push edx
call dword [sym.imp.ADVAPI32.dll_IsValidSid]
test eax, eax
je 0x403c00
lea eax, [esp + 0x2b0]
push eax
call dword [sym.imp.ADVAPI32.dll_GetLengthSid]
mov edi, eax
push edi
call sub.MSVCRT.dll_void____cdecl_operator_new_unsigned_int_
add esp, 4
lea ecx, [esp + 0x2b0]
mov dword [esi + 0x44], eax
push ecx
push eax
push edi
call dword [sym.imp.ADVAPI32.dll_CopySid]
mov eax, esi
pop edi
pop esi
pop ebx
add esp, 0x12a4
ret 0x10
Function at 0x4046b0
Capabilities:
Print debug messages

Disassembly:
sub esp, 0x70
push edi
mov ecx, 8
xor eax, eax
lea edi, [esp + 4]
rep stosd dword es:[edi], eax
mov ecx, dword [esp + 0x80]
mov eax, dword [esp + 0x7c]
mov dword [esp + 0x14], ecx
mov ecx, dword [esp + 0x84]
mov dword [esp + 0x18], ecx
mov ecx, dword [esp + 0x88]
test eax, eax
mov edx, 1
mov dword [esp + 4], 0x20
mov dword [esp + 8], 5
mov dword [esp + 0x10], eax
mov dword [esp + 0x1c], ecx
pop edi
jne 0x404709
mov edx, 5
mov eax, dword [esp + 0x74]
push edx
lea edx, [esp + 4]
push edx
push eax
call dword [sym.imp.USER32.dll_RegisterDeviceNotificationA]
mov ecx, dword [esp + 0x88]
test eax, eax
mov dword [ecx], eax
jne 0x404752
call dword [sym.imp.KERNEL32.dll_GetLastError]
push eax
lea edx, [esp + 0x24]
push str.RegisterDeviceNotification_failed:__d_n
push edx
call dword [sym.imp.USER32.dll_wsprintfA]
add esp, 0xc
lea eax, [esp + 0x20]
push eax
call dword [sym.imp.KERNEL32.dll_OutputDebugStringA]
xor eax, eax
add esp, 0x70
ret
mov eax, 1
add esp, 0x70
ret
Function at 0x405260
Capabilities:
Query or enumerate registry value
Set registry value

Disassembly:
sub esp, 0x11c
push esi
push edi
mov edi, str.SoftwareSigmaTel
or ecx, 0xffffffff
xor eax, eax
lea edx, [esp + 0x20]
repne scasb al, byte es:[edi]
not ecx
sub edi, ecx
mov dword [esp + 0x18], vtable.CRegistry.0
mov eax, ecx
mov esi, edi
mov edi, edx
mov byte [esp + 0x20], 0
shr ecx, 2
mov dword [esp + 0x1c], reloc.OLEAUT32.dll_SysReAllocString
mov dword [esp + 0x10], 0
rep movsd dword es:[edi], dword [esi]
mov ecx, eax
and ecx, 3
rep movsb byte es:[edi], byte [esi]
mov ecx, str.STSysTray1.0
test ecx, ecx
je 0x405310
mov edi, 0x41d6d8
or ecx, 0xffffffff
xor eax, eax
push ebp
repne scasb al, byte es:[edi]
not ecx
sub edi, ecx
lea edx, [esp + 0x24]
mov esi, edi
mov ebp, ecx
mov edi, edx
or ecx, 0xffffffff
repne scasb al, byte es:[edi]
mov ecx, ebp
dec edi
shr ecx, 2
rep movsd dword es:[edi], dword [esi]
mov ecx, ebp
lea edx, [esp + 0x24]
and ecx, 3
rep movsb byte es:[edi], byte [esi]
mov edi, str.STSysTray1.0
or ecx, 0xffffffff
repne scasb al, byte es:[edi]
not ecx
sub edi, ecx
mov esi, edi
mov ebp, ecx
mov edi, edx
or ecx, 0xffffffff
repne scasb al, byte es:[edi]
mov ecx, ebp
dec edi
shr ecx, 2
rep movsd dword es:[edi], dword [esi]
mov ecx, ebp
pop ebp
and ecx, 3
rep movsb byte es:[edi], byte [esi]
mov edx, dword [esp + 0x1c]
lea eax, [esp + 8]
push eax
push 0x20019
lea ecx, [esp + 0x28]
push 0
push ecx
push edx
mov dword [esp + 0x20], 4
call dword [sym.imp.ADVAPI32.dll_RegOpenKeyExA]
mov esi, dword [sym.imp.ADVAPI32.dll_RegCloseKey]
test eax, eax
jne 0x405363
mov edx, dword [esp + 8]
lea eax, [esp + 0xc]
lea ecx, [esp + 0x10]
push eax
push ecx
push 0
push 0
push str.RetryInstall
push edx
call dword [sym.imp.ADVAPI32.dll_RegQueryValueExA]
mov eax, dword [esp + 8]
push eax
call esi
mov ecx, dword [esp + 0x10]
lea edx, [esp + 8]
push 0
push edx
push 0
push 0xf003f
push 0
mov dword [esp + 0x20], ecx
mov ecx, dword [esp + 0x30]
push 0x421c9c
lea eax, [esp + 0x38]
push 0
push eax
push ecx
call dword [sym.imp.ADVAPI32.dll_RegCreateKeyExA]
test eax, eax
jne 0x4053b7
lea edx, [esp + 0xc]
push 4
push edx
push 4
push eax
mov eax, dword [esp + 0x18]
push str.RetryInstall
push eax
call dword [sym.imp.ADVAPI32.dll_RegSetValueExA]
mov ecx, dword [esp + 8]
push ecx
call esi
mov eax, dword [esp + 0x10]
pop edi
test eax, eax
pop esi
je 0x4053cc
push 3
lea edx, [esp + 0x10]
push 0
push edx
jmp 0x4053d5
push 1
lea eax, [esp + 0x10]
push 0
push eax
call dword [sym.imp.SETUPAPI.dll_CM_Locate_DevNodeA]
test eax, eax
je 0x4053e8
xor al, al
add esp, 0x11c
ret
mov ecx, dword [esp + 0xc]
push 0
push ecx
call dword [sym.imp.SETUPAPI.dll_CM_Reenumerate_DevNode]
test eax, eax
sete al
add esp, 0x11c
ret

Function at 0x405ac0
Capabilities:
Connect pipe
Read pipe
Write pipe

Disassembly:
mov edx, dword [esp + 4]
sub esp, 0x404
or ecx, 0xffffffff
xor eax, eax
push edi
mov edi, edx
repne scasb al, byte es:[edi]
push eax
lea eax, [esp + 8]
push eax
lea eax, [esp + 0x10]
not ecx
push 0x400
push eax
push ecx
mov ecx, dword [esp + 0x424]
push edx
push ecx
call dword [sym.imp.KERNEL32.dll_CallNamedPipeA]
pop edi
add esp, 0x404
ret
Function at 0x412110
Capabilities:
Encrypt data using rc4 prga

Disassembly:
sub esp, 0x418
push ebx
push edi
mov edi, ecx
xor bl, bl
xor ecx, ecx
mov dword [esp + 0x18], edi
mov eax, dword [edi + 0x118]
mov byte [esp + 0x10], bl
test eax, eax
mov byte [esp + 0x14], bl
mov dword [esp + 8], ecx
je 0x4122c0
mov eax, dword [eax + 0x1c0]
test eax, eax
je 0x4122c0
mov ecx, dword [eax]
push ebp
mov ebp, dword [esp + 0x428]
lea edx, [esp + 0x20]
push esi
mov esi, dword [esp + 0x434]
push edx
lea edx, [esp + 0x18]
push esi
push edx
push ebp
push 0
push eax
call dword [ecx + 0x10]
test eax, eax
jl 0x41228c
mov eax, dword [edi + 0x118]
mov edx, dword [eax + 0x20c]
test edx, edx
jle 0x4121b8
lea ecx, [eax + 0x380]
add eax, 0x390
mov edi, edx
cmp ebp, dword [eax - 0x180]
jne 0x4121ad
cmp byte [ecx], 0
mov ebx, dword [eax]
setne dl
shr ebx, 0x10
mov byte [esp + 0x1c], dl
and bl, 1
add eax, 4
inc ecx
dec edi
jne 0x412193
mov byte [esp + 0x18], bl
mov eax, dword [esp + 0x18]
mov edi, dword [esp + 0x1c]
mov ecx, dword [esp + 0x14]
and eax, 0xff
and edi, 0xff
push eax
push edi
push esi
mov esi, dword [esp + 0x43c]
lea edx, [esp + 0x34]
push esi
push ecx
push ebp
push str.SetDeviceType:_port0x_04x_curdev_d_newdev_d_flag_d_isslave_d_slavable_d
push edx
call dword [sym.imp.USER32.dll_wsprintfA]
lea eax, [esp + 0x48]
push 1
push eax
call fcn.00402a00
mov eax, dword [esp + 0x3c]
add esp, 0x28
cmp eax, esi
jne 0x41222b
test bl, bl
je 0x41221a
mov edx, dword [esp + 0x434]
xor ecx, ecx
cmp edx, 1
sete cl
xor ecx, edi
jne 0x41222b
push esi
push ebp
mov dword [esp + 0x18], 1
push str.Port_0x_04x_already_type_0x_04x
jmp 0x412265
mov eax, dword [esp + 0x20]
mov ecx, dword [eax + 0x118]
mov eax, dword [ecx + 0x1c0]
lea ecx, [esp + 0x24]
push ecx
mov ecx, dword [esp + 0x438]
mov edx, dword [eax]
push ecx
push esi
push ebp
push 0
push eax
call dword [edx + 0xc]
test eax, eax
jl 0x412275
push esi
push ebp
mov dword [esp + 0x18], 1
push str.Reconfigured_Port_0x_04x_to_type_0x_04x
lea edx, [esp + 0x34]
push edx
call dword [sym.imp.USER32.dll_wsprintfA]
add esp, 0x10
jmp 0x4122a0
push esi
push ebp
lea eax, [esp + 0x30]
push str.Failed_to_reconfigure_Port_0x_04x_to_type_0x_04x
push eax
call dword [sym.imp.USER32.dll_wsprintfA]
add esp, 0x10
jmp 0x4122a0
push ebp
lea ecx, [esp + 0x2c]
push str.GetPortDeviceType_Port_0x_04x_failed_
push ecx
call dword [sym.imp.USER32.dll_wsprintfA]
add esp, 0xc
lea edx, [esp + 0x28]
push 1
push edx
call fcn.00402a00
mov eax, dword [esp + 0x18]
add esp, 8
pop esi
pop ebp
pop edi
pop ebx
add esp, 0x418
ret 0xc
pop edi
mov eax, ecx
pop ebx
add esp, 0x418
ret 0xc