joyce8/EMBER2024-capa huggingface dataset:
Function at 0x1801af7b
Capabilities:
Set current directory

Disassembly:
push ebp
mov ebp, esp
sub esp, 0x1c
push ebx
push esi
push edi
mov edi, dword [ecx + 0x78]
xor eax, eax
push 2
mov dword [ebp - 0xc], ecx
pop esi
mov dword [ebp - 8], eax
cmp edi, dword [ecx + 0x7c]
je 0x1801afa4
xor edx, edx
cmp dword [edi + 0x14], eax
setne dl
mov dword [ebp - 4], edx
mov esi, edx
mov al, byte [ecx + 0x85]
mov bl, byte [ecx + 0x11]
mov dword [ebp - 4], eax
call fcn.180663aa
push esi
push ebx
mov ebx, dword [ebp - 0xc]
push dword [ebp - 4]
mov dl, byte [eax + 1]
mov ecx, dword [ebx + 0xc]
call fcn.1801c4a4
movzx ecx, byte [0x18101323]
add esp, 0xc
neg ecx
mov byte [ebx + 0x84], al
sbb ecx, ecx
push 7
pop edi
push 1
pop eax
and ecx, 0x18101240
je 0x1801b016
push eax
push edi
mov dword [ebp - 0x1c], ecx
mov dword [ebp - 0x18], edi
mov dword [ebp - 0x14], eax
call fcn.1800457f
mov dword [ebp - 0x10], eax
movzx eax, byte [ebx + 0x84]
push eax
lea eax, [ebp - 0x1c]
push str._is_machine:__d_
push eax
call fcn.18002ca6
add esp, 0xc
movzx eax, byte [ebx + 0x84]
mov ecx, 0x180fe150
push eax
call fcn.18056171
mov ecx, ebx
call fcn.1801c18b
cmp byte [ebx + 0x84], 0
je 0x1801b046
call fcn.18015907
test al, al
je 0x1801b046
xor eax, eax
inc eax
jmp 0x1801b048
xor al, al
mov cl, al
call fcn.1804b77d
mov edx, dword [ebx]
lea ecx, [ebp - 4]
call fcn.1801103a
mov esi, dword [ebp - 4]
cmp dword [esi - 0xc], 0
je 0x1801b14a
push esi
call dword [sym.imp.KERNEL32.dll_SetCurrentDirectoryW]
test eax, eax
je 0x1801b14a
movzx ecx, byte [0x18101323]
neg ecx
sbb ecx, ecx
and ecx, 0x18101240
je 0x1801b0b0
push 3
pop eax
push eax
push edi
mov dword [ebp - 0x1c], ecx
mov dword [ebp - 0x18], edi
mov dword [ebp - 0x14], eax
call fcn.1800457f
push esi
mov dword [ebp - 0x10], eax
lea eax, [ebp - 0x1c]
push str._Current_dir___s_
push eax
call fcn.18002ca6
add esp, 0xc
mov edx, dword [ebx + 0x78]
cmp edx, dword [ebx + 0x7c]
je 0x1801b104
mov edi, dword [ebx + 0x70]
lea ecx, [ebp - 0xc]
call fcn.18008e1d
mov ecx, dword [ebx + 0x78]
mov edx, eax
push edi
cmp dword [ecx + 0x14], 0
setne cl
call fcn.180717e2
pop ecx
mov ecx, dword [ebp - 0xc]
mov edi, eax
add ecx, 0xfffffff0
call fcn.18003140
mov ecx, edi
call fcn.180183fe
test edi, edi
jns 0x1801b104
cmp edi, 0x80070005
jne 0x1801b104
mov eax, dword [ebx + 0x78]
cmp dword [eax + 0x14], 0
je 0x1801b104
call fcn.18015907
mov cl, byte [ebx + 0x84]
call fcn.1801c2fe
push dword [ebx + 0xc]
call fcn.1801b5cd
test al, al
je 0x1801b12d
mov ecx, ebx
call fcn.1801b61e
test al, al
je 0x1801b12d
mov edi, 0xa0430607
jmp 0x1801b151
lea eax, [ebp - 4]
mov ecx, ebx
push eax
push dword [ebx + 0xc]
call fcn.1801b680
mov edi, eax
mov ecx, edi
call fcn.180183fe
test edi, edi
js 0x1801b151
jmp 0x1801b154
call fcn.18015f1f
mov edi, eax
mov dword [ebp - 8], edi
lea ecx, [esi - 0x10]
call fcn.18003140
mov eax, dword [ebp - 8]
pop edi
pop esi
pop ebx
leave
ret
Function at 0x1801be7e
Capabilities:
Query or enumerate registry value

Disassembly:
push ebp
mov ebp, esp
sub esp, 0x1c
push ebx
push esi
push edi
mov esi, ecx
call fcn.180663aa
cmp byte [esi + 0x84], 0
mov eax, str.HKLMSoftwareASUSUpdate_
jne 0x1801bea1
mov eax, str.HKCUSoftwareASUSUpdate_
push eax
lea ecx, [ebp - 8]
call fcn.18005bdc
mov edi, dword [ebp - 8]
lea ecx, [ebp - 0x18]
and dword [ebp - 0x14], 0
push 0x20019
push edi
mov dword [ebp - 0x18], 0x180e49a8
mov dword [ebp - 0x10], 0x200
call fcn.180121eb
mov ebx, eax
mov ecx, ebx
call fcn.180183fe
test ebx, ebx
js 0x1801bff9
lea ecx, [ebp - 0x18]
call fcn.18012f8d
test eax, eax
je 0x1801bff4
push str.Clients
lea ecx, [ebp - 0x18]
call fcn.18012232
test al, al
je 0x1801bff4
push str.ClientState
lea ecx, [ebp - 0x18]
call fcn.18012232
test al, al
je 0x1801bff4
mov ebx, dword [sym.imp.ADVAPI32.dll_RegQueryValueExW]
xor eax, eax
push eax
push eax
push eax
push eax
push 0x180e5a60
push dword [ebp - 0x14]
call ebx
test eax, eax
jne 0x1801bff4
push eax
push eax
push eax
push eax
push str.path
push dword [ebp - 0x14]
call ebx
test eax, eax
jne 0x1801bff4
lea ecx, [ebp - 8]
call fcn.18005c3b
lea eax, [ebp - 8]
push eax
push 0x180e5a60
lea ecx, [ebp - 0x18]
call fcn.180126f6
mov ebx, eax
mov ecx, ebx
call fcn.180183fe
test ebx, ebx
js 0x1801bfe7
call fcn.180663aa
cmp byte [esi + 0x84], 0
mov eax, str.HKLMSoftwareASUSUpdateClients079B2A6C_DC82_42E3_94B6_9B36E683D464
jne 0x1801bf8a
mov eax, str.HKCUSoftwareASUSUpdateClients079B2A6C_DC82_42E3_94B6_9B36E683D464
push eax
lea ecx, [ebp - 0xc]
call fcn.18005bdc
lea ecx, [ebp - 4]
call fcn.18005c3b
mov esi, dword [ebp - 0xc]
lea eax, [ebp - 4]
push eax
mov edx, 0x180e5a30
mov ecx, esi
call fcn.18017e9c
pop ecx
mov ebx, eax
mov ecx, ebx
call fcn.180183fe
test ebx, ebx
js 0x1801bfd4
lea edx, [ebp - 4]
lea ecx, [ebp - 8]
call fcn.180140c3
test al, al
je 0x1801bfd2
mov ebx, 0xa043090b
jmp 0x1801bfd4
xor ebx, ebx
mov ecx, dword [ebp - 4]
lea ecx, [ecx - 0x10]
call fcn.18003140
lea ecx, [esi - 0x10]
call fcn.18003140
mov ecx, dword [ebp - 8]
lea ecx, [ecx - 0x10]
call fcn.18003140
jmp 0x1801bff9
mov ebx, 0x80070003
cmp dword [ebp - 0x14], 0
mov dword [ebp - 0x18], 0x180e49a8
je 0x1801c01a
push dword [ebp - 0x14]
call dword [sym.imp.ADVAPI32.dll_RegCloseKey]
and dword [ebp - 0x14], 0
mov dword [ebp - 0x10], 0x200
lea ecx, [edi - 0x10]
call fcn.18003140
pop edi
pop esi
mov eax, ebx
pop ebx
leave
ret
Function at 0x1801c18b
Capabilities:
Query environment variable

Disassembly:
push ebp
mov ebp, esp
sub esp, 0x14
push ebx
push esi
push edi
push 0
push 0
push str.GOOGLE_UPDATE_NO_CRASH_HANDLER
mov ebx, ecx
call dword [sym.imp.KERNEL32.dll_GetEnvironmentVariableW]
test eax, eax
jne 0x1801c26c
call dword [sym.imp.KERNEL32.dll_GetLastError]
cmp eax, 0xcb
je 0x1801c1ce
test eax, eax
jle 0x1801c1c8
movzx eax, ax
or eax, 0x80070000
test eax, eax
js 0x1801c26c
lea edi, [ebx + 0x8c]
mov esi, dword [edi]
test esi, esi
je 0x1801c1ee
and dword [edi], 0
mov ecx, esi
call fcn.1806391d
push 0x1c
push esi
call fcn.180a66f3
pop ecx
pop ecx
lea ecx, [ebp - 0x10]
call fcn.18011979
lea ecx, [ebp - 4]
call fcn.18005c3b
push dword [ebx + 0xc]
lea eax, [ebp - 4]
push 0x180e5fb0
push eax
call fcn.18011d09
add esp, 0xc
lea ecx, [ebp - 8]
push str.CommandLineMode
call fcn.18005bdc
lea eax, [ebp - 4]
push eax
push ecx
lea eax, [ebp - 8]
push eax
lea ecx, [ebp - 0x10]
call fcn.1801c5ce
pop ecx
mov ecx, eax
call fcn.18005b84
mov ecx, dword [ebp - 8]
lea ecx, [ecx - 0x10]
call fcn.18003140
mov cl, byte [ebx + 0x84]
lea edx, [ebp - 0x10]
push edi
call fcn.1806387a
pop ecx
mov ecx, dword [ebp - 4]
mov esi, eax
add ecx, 0xfffffff0
call fcn.18003140
lea ecx, [ebp - 0x10]
call fcn.1801199f
mov eax, esi
jmp 0x1801c26f
xor eax, eax
inc eax
pop edi
pop esi
pop ebx
leave
ret

Function at 0x1801cd9c
Capabilities:
Modify service

Disassembly:
push ebp
mov ebp, esp
sub esp, 0xc
push ebx
push esi
push edi
call fcn.18014f82
test al, al
je 0x1801ce33
call fcn.1801d65c
test al, al
jne 0x1801ce33
push 0xf003f
xor ebx, ebx
push ebx
push ebx
call dword [sym.imp.ADVAPI32.dll_OpenSCManagerW]
mov edi, eax
test edi, edi
jne 0x1801cdd9
call fcn.18015f1f
mov ebx, eax
jmp 0x1801ce2f
lea ecx, [ebp - 4]
call fcn.18054361
push 2
push dword [ebp - 4]
push edi
call dword [sym.imp.ADVAPI32.dll_OpenServiceW]
mov esi, eax
test esi, esi
je 0x1801ce0b
lea eax, [ebp - 8]
mov dword [ebp - 8], 1
push eax
push 3
push esi
call dword [sym.imp.ADVAPI32.dll_ChangeServiceConfig2W]
test eax, eax
jne 0x1801ce16
call fcn.18015f1f
mov ebx, eax
test esi, esi
je 0x1801ce1d
push esi
call dword [sym.imp.ADVAPI32.dll_CloseServiceHandle]
mov ecx, dword [ebp - 4]
lea ecx, [ecx - 0x10]
call fcn.18003140
push edi
call dword [sym.imp.ADVAPI32.dll_CloseServiceHandle]
mov eax, ebx
jmp 0x1801ce35
xor eax, eax
pop edi
pop esi
pop ebx
leave
ret
Function at 0x1801d0ca
Capabilities:
Modify service

Disassembly:
push ebp
mov ebp, esp
sub esp, 0xc
push ebx
push esi
push edi
call fcn.18014f82
test al, al
je 0x1801d161
call fcn.1801d9a4
test al, al
jne 0x1801d161
push 0xf003f
xor ebx, ebx
push ebx
push ebx
call dword [sym.imp.ADVAPI32.dll_OpenSCManagerW]
mov edi, eax
test edi, edi
jne 0x1801d107
call fcn.18015f1f
mov ebx, eax
jmp 0x1801d15d
lea ecx, [ebp - 4]
call fcn.180542c4
push 2
push dword [ebp - 4]
push edi
call dword [sym.imp.ADVAPI32.dll_OpenServiceW]
mov esi, eax
test esi, esi
je 0x1801d139
lea eax, [ebp - 8]
mov dword [ebp - 8], 1
push eax
push 3
push esi
call dword [sym.imp.ADVAPI32.dll_ChangeServiceConfig2W]
test eax, eax
jne 0x1801d144
call fcn.18015f1f
mov ebx, eax
test esi, esi
je 0x1801d14b
push esi
call dword [sym.imp.ADVAPI32.dll_CloseServiceHandle]
mov ecx, dword [ebp - 4]
lea ecx, [ecx - 0x10]
call fcn.18003140
push edi
call dword [sym.imp.ADVAPI32.dll_CloseServiceHandle]
mov eax, ebx
jmp 0x1801d163
xor eax, eax
pop edi
pop esi
pop ebx
leave
ret

Function at 0x1801d72e
Capabilities:
Modify service

Disassembly:
push ebp
mov ebp, esp
sub esp, 0xc
push ebx
push esi
mov eax, ecx
push edi
mov dword [ebp - 8], eax
call fcn.1801dfb6
test al, al
je 0x1801d74c
xor eax, eax
jmp 0x1801d7f9
call fcn.1801cf7f
mov esi, eax
mov ecx, esi
call fcn.180183fe
test esi, esi
jns 0x1801d765
mov eax, esi
jmp 0x1801d7f9
push 0xf003f
xor ebx, ebx
push ebx
push ebx
call dword [sym.imp.ADVAPI32.dll_OpenSCManagerW]
mov edi, eax
test edi, edi
jne 0x1801d791
call dword [sym.imp.KERNEL32.dll_GetLastError]
mov ebx, eax
test ebx, ebx
jle 0x1801d7f7
movzx ebx, bx
or ebx, 0x80070000
jmp 0x1801d7f7
lea ecx, [ebp - 4]
call fcn.18054361
push 2
push dword [ebp - 4]
push edi
call dword [sym.imp.ADVAPI32.dll_OpenServiceW]
mov esi, eax
test esi, esi
je 0x1801d7c5
push ebx
push ebx
push ebx
push ebx
push ebx
push ebx
push dword [ebp - 8]
push 1
push 3
push 0x10
push esi
call dword [sym.imp.ADVAPI32.dll_ChangeServiceConfigW]
test eax, eax
jne 0x1801d7de
call dword [sym.imp.KERNEL32.dll_GetLastError]
mov ebx, eax
test ebx, ebx
jle 0x1801d7da
movzx ebx, bx
or ebx, 0x80070000
test esi, esi
je 0x1801d7e5
push esi
call dword [sym.imp.ADVAPI32.dll_CloseServiceHandle]
mov ecx, dword [ebp - 4]
add ecx, 0xfffffff0
call fcn.18003140
push edi
call dword [sym.imp.ADVAPI32.dll_CloseServiceHandle]
mov eax, ebx
pop edi
pop esi
pop ebx
leave
ret
Function at 0x1801d7fe
Capabilities:
Create service

Disassembly:
push ebp
mov ebp, esp
push ecx
push ecx
push ebx
push esi
push edi
push 0xf003f
xor edi, edi
mov ebx, ecx
push edi
push edi
call dword [sym.imp.ADVAPI32.dll_OpenSCManagerW]
mov esi, eax
test esi, esi
jne 0x1801d834
call dword [sym.imp.KERNEL32.dll_GetLastError]
mov edi, eax
test edi, edi
jle 0x1801d8a3
movzx edi, di
or edi, 0x80070000
jmp 0x1801d8a3
lea ecx, [ebp - 8]
call fcn.18054361
lea ecx, [ebp - 4]
call fcn.1801df52
push edi
push edi
push str.RPCSS
push edi
push edi
push ebx
push 1
push 3
push 0x10
push 0xf01ff
push dword [ebp - 4]
push dword [ebp - 8]
push esi
call dword [sym.imp.ADVAPI32.dll_CreateServiceW]
mov ebx, dword [sym.imp.ADVAPI32.dll_CloseServiceHandle]
test eax, eax
jne 0x1801d887
call dword [sym.imp.KERNEL32.dll_GetLastError]
mov edi, eax
test edi, edi
jle 0x1801d88a
movzx edi, di
or edi, 0x80070000
jmp 0x1801d88a
push eax
call ebx
mov ecx, dword [ebp - 4]
lea ecx, [ecx - 0x10]
call fcn.18003140
mov ecx, dword [ebp - 8]
add ecx, 0xfffffff0
call fcn.18003140
push esi
call ebx
mov eax, edi
pop edi
pop esi
pop ebx
leave
ret

Function at 0x1801da76
Capabilities:
Modify service

Disassembly:
push ebp
mov ebp, esp
sub esp, 0xc
push ebx
push esi
mov eax, ecx
push edi
mov dword [ebp - 8], eax
call fcn.1801e136
test al, al
je 0x1801da94
xor eax, eax
jmp 0x1801db41
call fcn.1801d2ad
mov esi, eax
mov ecx, esi
call fcn.180183fe
test esi, esi
jns 0x1801daad
mov eax, esi
jmp 0x1801db41
push 0xf003f
xor ebx, ebx
push ebx
push ebx
call dword [sym.imp.ADVAPI32.dll_OpenSCManagerW]
mov edi, eax
test edi, edi
jne 0x1801dad9
call dword [sym.imp.KERNEL32.dll_GetLastError]
mov ebx, eax
test ebx, ebx
jle 0x1801db3f
movzx ebx, bx
or ebx, 0x80070000
jmp 0x1801db3f
lea ecx, [ebp - 4]
call fcn.180542c4
push 2
push dword [ebp - 4]
push edi
call dword [sym.imp.ADVAPI32.dll_OpenServiceW]
mov esi, eax
test esi, esi
je 0x1801db0d
push ebx
push ebx
push ebx
push ebx
push ebx
push ebx
push dword [ebp - 8]
push 1
push 2
push 0x10
push esi
call dword [sym.imp.ADVAPI32.dll_ChangeServiceConfigW]
test eax, eax
jne 0x1801db26
call dword [sym.imp.KERNEL32.dll_GetLastError]
mov ebx, eax
test ebx, ebx
jle 0x1801db22
movzx ebx, bx
or ebx, 0x80070000
test esi, esi
je 0x1801db2d
push esi
call dword [sym.imp.ADVAPI32.dll_CloseServiceHandle]
mov ecx, dword [ebp - 4]
add ecx, 0xfffffff0
call fcn.18003140
push edi
call dword [sym.imp.ADVAPI32.dll_CloseServiceHandle]
mov eax, ebx
pop edi
pop esi
pop ebx
leave
ret
Function at 0x1801db46
Capabilities:
Create service
Persist via windows service

Disassembly:
push ebp
mov ebp, esp
push ecx
push ecx
push ebx
push esi
push edi
push 0xf003f
xor edi, edi
mov ebx, ecx
push edi
push edi
call dword [sym.imp.ADVAPI32.dll_OpenSCManagerW]
mov esi, eax
test esi, esi
jne 0x1801db7c
call dword [sym.imp.KERNEL32.dll_GetLastError]
mov edi, eax
test edi, edi
jle 0x1801dbeb
movzx edi, di
or edi, 0x80070000
jmp 0x1801dbeb
lea ecx, [ebp - 8]
call fcn.180542c4
lea ecx, [ebp - 4]
call fcn.1801e0d2
push edi
push edi
push str.RPCSS
push edi
push edi
push ebx
push 1
push 2
push 0x10
push 0xf01ff
push dword [ebp - 4]
push dword [ebp - 8]
push esi
call dword [sym.imp.ADVAPI32.dll_CreateServiceW]
mov ebx, dword [sym.imp.ADVAPI32.dll_CloseServiceHandle]
test eax, eax
jne 0x1801dbcf
call dword [sym.imp.KERNEL32.dll_GetLastError]
mov edi, eax
test edi, edi
jle 0x1801dbd2
movzx edi, di
or edi, 0x80070000
jmp 0x1801dbd2
push eax
call ebx
mov ecx, dword [ebp - 4]
lea ecx, [ecx - 0x10]
call fcn.18003140
mov ecx, dword [ebp - 8]
add ecx, 0xfffffff0
call fcn.18003140
push esi
call ebx
mov eax, edi
pop edi
pop esi
pop ebx
leave
ret

Function at 0x1801e619
Capabilities:
Access the windows event log

Disassembly:
push ebp
mov ebp, esp
sub esp, 0x208
mov eax, dword [0x180fd00c]
xor eax, ebp
mov dword [ebp - 4], eax
push esi
mov esi, dword [ebp + 8]
lea eax, [ebp + 0x10]
push edi
push eax
xor edi, edi
lea eax, [ebp - 0x204]
push edi
push dword [ebp + 0xc]
push 0xff
push 0x100
push eax
call fcn.18002f43
push dword [eax + 4]
push dword [eax]
call fcn.180b174b
xor eax, eax
add esp, 0x20
mov word [ebp - 6], ax
lea eax, [ebp - 0x204]
mov dword [ebp - 0x208], eax
cmp dword [esi + 0x260], edi
jne 0x1801e67f
push eax
call fcn.180b3717
pop ecx
lea eax, [esi + 0x40]
push eax
push edi
call dword [sym.imp.ADVAPI32.dll_RegisterEventSourceW]
mov esi, eax
test esi, esi
je 0x1801e6ae
push edi
lea eax, [ebp - 0x208]
push eax
push edi
push 1
push edi
push edi
push edi
push 4
push esi
call dword [sym.imp.ADVAPI32.dll_ReportEventW]
push esi
call dword [sym.imp.ADVAPI32.dll_DeregisterEventSource]
mov ecx, dword [ebp - 4]
pop edi
xor ecx, ebp
pop esi
call fcn.180a61d8
leave
ret
Function at 0x1801e8fc
Capabilities:
Create thread

Disassembly:
push ebp
mov ebp, esp
push ecx
push ebx
push esi
xor ebx, ebx
mov esi, 0x180fe890
push edi
mov edi, ecx
cmp dword [0x180fe890], ebx
je 0x1801e933
push 5
mov ecx, esi
call fcn.180186fa
mov ebx, eax
mov ecx, ebx
call fcn.180183fe
test ebx, ebx
js 0x1801e976
add esi, 0x24
xor ebx, ebx
cmp dword [esi], ebx
jne 0x1801e914
cmp byte [edi + 0x3c], 0
je 0x1801e9a5
push ebx
push ebx
push ebx
push ebx
call dword [sym.imp.KERNEL32.dll_CreateEventW]
mov dword [edi + 0x30], eax
test eax, eax
je 0x1801e96f
lea eax, [ebp - 4]
mov dword [ebp - 4], ebx
push eax
push ebx
push edi
push 0x1801eac3
push ebx
push ebx
call dword [sym.imp.KERNEL32.dll_CreateThread]
mov ebx, eax
test ebx, ebx
jne 0x1801e97a
push dword [edi + 0x30]
call dword [sym.imp.KERNEL32.dll_CloseHandle]
mov esi, 0x80004005
jmp 0x1801e9b1
mov eax, ebx
jmp 0x1801e9b8
call dword [sym.imp.ole32.dll_CoResumeClassObjects]
mov esi, eax
test esi, esi
jns 0x1801e99c
push dword [edi + 0x30]
call dword [sym.imp.KERNEL32.dll_SetEvent]
mov ecx, dword [edi + 0x34]
add ecx, ecx
push ecx
push ebx
call dword [sym.imp.KERNEL32.dll_WaitForSingleObject]
push ebx
call dword [sym.imp.KERNEL32.dll_CloseHandle]
jmp 0x1801e9ad
call dword [sym.imp.ole32.dll_CoResumeClassObjects]
mov esi, eax
test esi, esi
jns 0x1801e9b6
call fcn.1801e8bb
mov eax, esi
pop edi
pop esi
pop ebx
leave
ret 4

Function at 0x1801ea00
Capabilities:
Create thread

Disassembly:
push ebp
mov ebp, esp
push ecx
push ebx
push esi
xor ebx, ebx
mov esi, 0x180fe950
push edi
mov edi, ecx
cmp dword [0x180fe950], ebx
je 0x1801ea37
push 5
mov ecx, esi
call fcn.180186fa
mov ebx, eax
mov ecx, ebx
call fcn.180183fe
test ebx, ebx
js 0x1801ea7a
add esi, 0x24
xor ebx, ebx
cmp dword [esi], ebx
jne 0x1801ea18
cmp byte [edi + 0x3c], 0
je 0x1801eaa9
push ebx
push ebx
push ebx
push ebx
call dword [sym.imp.KERNEL32.dll_CreateEventW]
mov dword [edi + 0x30], eax
test eax, eax
je 0x1801ea73
lea eax, [ebp - 4]
mov dword [ebp - 4], ebx
push eax
push ebx
push edi
push 0x1801eac3
push ebx
push ebx
call dword [sym.imp.KERNEL32.dll_CreateThread]
mov ebx, eax
test ebx, ebx
jne 0x1801ea7e
push dword [edi + 0x30]
call dword [sym.imp.KERNEL32.dll_CloseHandle]
mov esi, 0x80004005
jmp 0x1801eab5
mov eax, ebx
jmp 0x1801eabc
call dword [sym.imp.ole32.dll_CoResumeClassObjects]
mov esi, eax
test esi, esi
jns 0x1801eaa0
push dword [edi + 0x30]
call dword [sym.imp.KERNEL32.dll_SetEvent]
mov ecx, dword [edi + 0x34]
add ecx, ecx
push ecx
push ebx
call dword [sym.imp.KERNEL32.dll_WaitForSingleObject]
push ebx
call dword [sym.imp.KERNEL32.dll_CloseHandle]
jmp 0x1801eab1
call dword [sym.imp.ole32.dll_CoResumeClassObjects]
mov esi, eax
test esi, esi
jns 0x1801eaba
call fcn.1801e9bf
mov eax, esi
pop edi
pop esi
pop ebx
leave
ret 4
Function at 0x1801fa91
Capabilities:
Check for time delay via gettickcount

Disassembly:
push esi
push edi
mov edi, ecx
mov ecx, dword [edi + 0x1c]
and dword [edi + 0x1c], 0
test ecx, ecx
je 0x1801faa6
mov eax, dword [ecx]
push 1
call dword [eax]
mov esi, dword [edi + 0x18]
and dword [edi + 0x18], 0
test esi, esi
je 0x1801fac2
mov ecx, esi
call fcn.18056e1f
push 0x24
push esi
call fcn.180a66f3
pop ecx
pop ecx
mov ecx, dword [0x18100efc]
pop edi
pop esi
mov ecx, dword [ecx]
jmp fcn.1801aa21

Function at 0x18022531
Capabilities:
Check if file exists

Disassembly:
push ebp
mov ebp, esp
sub esp, 0x38
and dword [ebp - 8], 0
push ebx
mov bl, dl
mov bh, cl
call dword [sym.imp.KERNEL32.dll_GetCurrentProcess]
lea edx, [ebp - 8]
mov ecx, eax
call fcn.18056fa6
test eax, eax
je 0x18022649
cmp dword [ebp - 8], 0
je 0x18022649
push esi
push edi
lea ecx, [ebp - 0xc]
call fcn.180110b2
mov edi, dword [ebp - 0xc]
lea ecx, [ebp - 0xc]
push edi
call fcn.18005bdc
push str.AsusUpdateComRegisterShell64.exe
lea ecx, [ebp - 0xc]
call fcn.18005a55
mov esi, dword [ebp - 0xc]
test eax, eax
jne 0x18022598
call fcn.18015f1f
mov ebx, eax
jmp 0x18022633
push esi
call dword [sym.imp.SHLWAPI.dll_PathFileExistsW]
test eax, eax
jne 0x180225ad
mov ebx, 0x80070002
jmp 0x18022633
lea ecx, [ebp - 4]
call fcn.18005c3b
mov eax, 0x180d97a8
mov ecx, eax
test bl, bl
jne 0x180225c5
mov ecx, str._unregister
test bh, bh
jne 0x180225ce
mov eax, str._user
push ecx
push eax
lea eax, [ebp - 4]
push 0x180e6e08
push eax
call fcn.18011d09
add esp, 0xc
lea ecx, [ebp - 0x38]
push esi
call fcn.180131d5
mov eax, dword [ebp - 0x38]
lea ecx, [ebp - 0x38]
push 0
push 0
push dword [ebp - 4]
call dword [eax + 8]
mov ebx, eax
test ebx, ebx
js 0x18022620
push 0x7530
lea ecx, [ebp - 0x38]
call fcn.1801341e
movzx ebx, al
neg ebx
sbb ebx, ebx
and ebx, 0x7ff8fa4c
add ebx, 0x800705b4
lea ecx, [ebp - 0x38]
call fcn.180132d5
mov ecx, dword [ebp - 4]
lea ecx, [ecx - 0x10]
call fcn.18003140
lea ecx, [esi - 0x10]
call fcn.18003140
lea ecx, [edi - 0x10]
call fcn.18003140
pop edi
mov eax, ebx
pop esi
jmp 0x1802264b
xor eax, eax
pop ebx
leave
ret
Function at 0x18023860
Capabilities:
Create thread

Disassembly:
push ebp
mov ebp, esp
push ecx
push ebx
push esi
push edi
mov esi, ecx
call fcn.1802233b
mov edi, eax
xor ebx, ebx
test edi, edi
je 0x18023890
cmp dword [edi], ebx
je 0x18023890
push 5
mov ecx, edi
call fcn.180186fa
test eax, eax
js 0x18023912
add edi, 0x24
jne 0x18023876
cmp byte [esi + 0x3c], bl
je 0x180238fd
push ebx
push ebx
push ebx
push ebx
call dword [sym.imp.KERNEL32.dll_CreateEventW]
mov dword [esi + 0x30], eax
test eax, eax
je 0x180238cb
lea eax, [ebp - 4]
push eax
push ebx
push esi
push 0x18026033
push ebx
push ebx
call dword [sym.imp.KERNEL32.dll_CreateThread]
mov ebx, eax
test ebx, ebx
jne 0x180238d2
push dword [esi + 0x30]
call dword [sym.imp.KERNEL32.dll_CloseHandle]
and dword [esi + 0x30], ebx
mov edi, 0x80004005
jmp 0x18023909
call dword [sym.imp.ole32.dll_CoResumeClassObjects]
mov edi, eax
test edi, edi
jns 0x180238f4
push dword [esi + 0x30]
call dword [sym.imp.KERNEL32.dll_SetEvent]
mov ecx, dword [esi + 0x34]
add ecx, ecx
push ecx
push ebx
call dword [sym.imp.KERNEL32.dll_WaitForSingleObject]
push ebx
call dword [sym.imp.KERNEL32.dll_CloseHandle]
jmp 0x18023905
call dword [sym.imp.ole32.dll_CoResumeClassObjects]
mov edi, eax
test edi, edi
jns 0x18023910
mov ecx, esi
call fcn.18022449
mov eax, edi
pop edi
pop esi
pop ebx
leave
ret 4

Function at 0x180265eb
Capabilities:
Get common file path

Disassembly:
push ebp
mov ebp, esp
sub esp, 0x224
mov eax, dword [0x180fd00c]
xor eax, ebp
mov dword [ebp - 4], eax
push ebx
push esi
push edi
xor esi, esi
lea eax, [ebp - 0x210]
push 0x208
push esi
mov ebx, 0x180e4924
mov dword [ebp - 0x220], esi
push eax
mov edi, ecx
mov dword [ebp - 0x224], ebx
mov dword [ebp - 0x21c], esi
mov dword [ebp - 0x218], esi
call fcn.180a89f0
lea ecx, [ebp - 0x224]
mov dword [esp], 0x20008
call fcn.18010f8d
lea eax, [ebp - 0x210]
push eax
push esi
push dword [ebp - 0x220]
push 0x1c
push esi
call dword [sym.imp.SHELL32.dll_SHGetFolderPathW]
mov esi, eax
test esi, esi
js 0x18026692
lea eax, [ebp - 0x210]
push eax
lea ecx, [ebp - 0x214]
call fcn.18005bdc
mov edx, edi
lea ecx, [ebp - 0x214]
call fcn.18007ad0
mov ecx, dword [ebp - 0x214]
mov esi, eax
add ecx, 0xfffffff0
call fcn.18003140
lea ecx, [ebp - 0x224]
mov dword [ebp - 0x224], ebx
call fcn.18007639
mov ecx, dword [ebp - 4]
mov eax, esi
pop edi
pop esi
xor ecx, ebp
pop ebx
call fcn.180a61d8
leave
ret
Function at 0x18032cf1
Capabilities:
Parse credit card information

Disassembly:
push ecx
push ebx
push esi
mov esi, ecx
xor cl, cl
mov eax, dword [esi + 0x4c]
cmp eax, 0xffffffff
je 0x18032e44
mov edx, 0x10000000
cmp eax, 0x7c
je 0x18032e44
cmp eax, 0x29
jne 0x18032d2a
cmp dword [esi + 0x10], 0
jne 0x18032e44
test dword [esi + 0x50], edx
je 0x18032e4a
cmp eax, 0x2e
jne 0x18032d45
push 5
lea ecx, [esi + 0x24]
call fcn.18032f0d
mov ecx, esi
call fcn.18032cc8
jmp 0x18032e2e
cmp eax, 0x5c
jne 0x18032d9a
mov ecx, esi
call fcn.18032cc8
test byte [esi + 0x50], 0x80
je 0x18032d8e
movzx eax, word [esi + 0x48]
cmp eax, 0x62
jne 0x18032d76
push 4
lea ecx, [esi + 0x24]
call fcn.18032f0d
mov ecx, esi
call fcn.18032cc8
jmp 0x18032e35
cmp eax, 0x42
jne 0x18032d8e
push 4
lea ecx, [esi + 0x24]
call fcn.18032f0d
mov eax, dword [esi + 0x28]
xor dword [eax + 8], 1
jmp 0x18032d6a
mov ecx, esi
call fcn.18033a72
jmp 0x18032e2e
cmp eax, 0x5b
jne 0x18032dba
mov ecx, esi
call fcn.18032cc8
mov ecx, esi
call fcn.18033a26
cmp dword [esi + 0x4c], 0x5d
je 0x18032d39
push 4
jmp 0x18032e4c
cmp eax, 0x28
jne 0x18032dd7
mov ecx, esi
call fcn.18032cc8
mov ecx, esi
call fcn.18033b43
cmp dword [esi + 0x4c], 0x29
mov bl, al
jne 0x18032e4a
jmp 0x18032e23
cmp eax, 0x5e
jne 0x18032de0
push 2
jmp 0x18032d62
cmp eax, 0x24
jne 0x18032dec
push 3
jmp 0x18032d62
cmp eax, 0x2a
je 0x18032e40
cmp eax, 0x2b
je 0x18032e40
cmp eax, 0x3f
je 0x18032e40
cmp eax, 0x7b
je 0x18032e40
cmp eax, 0x7d
jne 0x18032e0a
test dword [esi + 0x50], edx
je 0x18032e3c
cmp eax, 0x5d
jne 0x18032e14
test dword [esi + 0x50], edx
je 0x18032db3
movzx eax, word [esi + 0x48]
lea ecx, [esi + 0x24]
push eax
call fcn.18033cac
mov bl, 1
mov ecx, esi
call fcn.18032cc8
test bl, bl
je 0x18032e35
mov ecx, esi
call fcn.18033bc4
mov cl, 1
jmp 0x18032cf8
push 6
jmp 0x18032e4c
push 0xa
jmp 0x18032e4c
pop esi
mov al, cl
pop ebx
pop ecx
ret
push 5
call fcn.1803222f
int3