joyce8/EMBER2024-capa huggingface dataset:
Function at 0x50ce50
Capabilities:
Packed with generic packer

Disassembly:
pushal
mov esi, section.QNhjSkbP
lea edi, [esi - 0x9000]
push edi
or ebp, 0xffffffff
jmp 0x50ce72
mov al, byte [esi]
inc esi
mov byte [edi], al
inc edi
add ebx, ebx
jne 0x50ce79
mov ebx, dword [esi]
sub esi, 0xfffffffc
adc ebx, ebx
jb 0x50ce68
mov eax, 1
add ebx, ebx
jne 0x50ce8b
mov ebx, dword [esi]
sub esi, 0xfffffffc
adc ebx, ebx
adc eax, eax
add ebx, ebx
jae 0x50ce80
jne 0x50ce9c
mov ebx, dword [esi]
sub esi, 0xfffffffc
adc ebx, ebx
jae 0x50ce80
xor ecx, ecx
sub eax, 3
jb 0x50ceb0
shl eax, 8
mov al, byte [esi]
inc esi
xor eax, 0xffffffff
je 0x50cf22
mov ebp, eax
add ebx, ebx
jne 0x50cebb
mov ebx, dword [esi]
sub esi, 0xfffffffc
adc ebx, ebx
adc ecx, ecx
add ebx, ebx
jne 0x50cec8
mov ebx, dword [esi]
sub esi, 0xfffffffc
adc ebx, ebx
adc ecx, ecx
jne 0x50ceec
inc ecx
add ebx, ebx
jne 0x50ced8
mov ebx, dword [esi]
sub esi, 0xfffffffc
adc ebx, ebx
adc ecx, ecx
add ebx, ebx
jae 0x50cecd
jne 0x50cee9
mov ebx, dword [esi]
sub esi, 0xfffffffc
adc ebx, ebx
jae 0x50cecd
add ecx, 2
cmp ebp, 0xfffff300
adc ecx, 1
lea edx, [edi + ebp]
cmp ebp, 0xfffffffc
jbe 0x50cf0c
mov al, byte [edx]
inc edx
mov byte [edi], al
inc edi
dec ecx
jne 0x50cefd
jmp 0x50ce6e
mov eax, dword [edx]
add edx, 4
mov dword [edi], eax
add edi, 4
sub ecx, 4
ja 0x50cf0c
add edi, ecx
jmp 0x50ce6e
pop esi
lea edi, [esi + 0xa000]
mov eax, dword [edi]
or eax, eax
je 0x50cf6b
mov ebx, dword [edi + 4]
lea eax, [eax + esi + 0xeacc]
add ebx, esi
push eax
add edi, 8
call dword [esi + 0xeb24]
xchg ebp, eax
mov al, byte [edi]
inc edi
or al, al
je 0x50cf29
mov ecx, edi
push edi
dec eax
repne scasb al, byte es:[edi]
push ebp
call dword [esi + 0xeb2c]
or eax, eax
je 0x50cf65
mov dword [ebx], eax
add ebx, 4
jmp 0x50cf46
call dword [esi + 0xeb28]
mov ebp, dword [esi + 0xeb30]
lea edi, [esi - 0x1000]
mov ebx, 0x1000
push eax
push esp
push 4
push ebx
push edi
call ebp
lea eax, [edi + 0x20f]
and byte [eax], 0x7f
and byte [eax + 0x28], 0x7f
pop eax
push eax
push esp
push eax
push ebx
push edi
call ebp
pop eax
popal
lea eax, [esp - 0x80]
push 0
cmp esp, eax
jne 0x50cf9f
sub esp, 0xffffff80
jmp section.bUItIFMf

Function at 0x403d61
Capabilities:
Encode data using xor

Disassembly:
push eax
push ebx
mov eax, 0x499
mov ecx, 0x404498
mov bl, byte [ecx]
sub bl, 0xf2
rol bl, 2
sub bl, cl
ror bl, 1
mov byte [ecx], bl
dec ecx
dec eax
jne 0x403d6d
mov eax, 0x261d
mov ecx, 0x403764
mov bl, byte [ecx]
rol bl, 7
ror bl, 2
sub bl, cl
xor bl, 0x91
mov byte [ecx], bl
dec ecx
dec eax
jne 0x403d8a
pop ebx
pop eax
add ecx, 0x2c1a
jmp ecx
Function at 0x1001edf0
Capabilities:
Packed with generic packer

Disassembly:
cmp byte [esp + 8], 1
jne 0x1001ef81
pushal
mov esi, section.UPX1
lea edi, [esi - 0x1c000]
push edi
or ebp, 0xffffffff
jmp 0x1001ee1a
mov al, byte [esi]
inc esi
mov byte [edi], al
inc edi
add ebx, ebx
jne 0x1001ee21
mov ebx, dword [esi]
sub esi, 0xfffffffc
adc ebx, ebx
jb 0x1001ee10
mov eax, 1
add ebx, ebx
jne 0x1001ee33
mov ebx, dword [esi]
sub esi, 0xfffffffc
adc ebx, ebx
adc eax, eax
add ebx, ebx
jae 0x1001ee28
jne 0x1001ee44
mov ebx, dword [esi]
sub esi, 0xfffffffc
adc ebx, ebx
jae 0x1001ee28
xor ecx, ecx
sub eax, 3
jb 0x1001ee58
shl eax, 8
mov al, byte [esi]
inc esi
xor eax, 0xffffffff
je 0x1001eeca
mov ebp, eax
add ebx, ebx
jne 0x1001ee63
mov ebx, dword [esi]
sub esi, 0xfffffffc
adc ebx, ebx
adc ecx, ecx
add ebx, ebx
jne 0x1001ee70
mov ebx, dword [esi]
sub esi, 0xfffffffc
adc ebx, ebx
adc ecx, ecx
jne 0x1001ee94
inc ecx
add ebx, ebx
jne 0x1001ee80
mov ebx, dword [esi]
sub esi, 0xfffffffc
adc ebx, ebx
adc ecx, ecx
add ebx, ebx
jae 0x1001ee75
jne 0x1001ee91
mov ebx, dword [esi]
sub esi, 0xfffffffc
adc ebx, ebx
jae 0x1001ee75
add ecx, 2
cmp ebp, 0xfffff300
adc ecx, 1
lea edx, [edi + ebp]
cmp ebp, 0xfffffffc
jbe 0x1001eeb4
mov al, byte [edx]
inc edx
mov byte [edi], al
inc edi
dec ecx
jne 0x1001eea5
jmp 0x1001ee16
mov eax, dword [edx]
add edx, 4
mov dword [edi], eax
add edi, 4
sub ecx, 4
ja 0x1001eeb4
add edi, ecx
jmp 0x1001ee16
pop esi
lea edi, [esi + 0x1c000]
mov eax, dword [edi]
or eax, eax
je 0x1001ef13
mov ebx, dword [edi + 4]
lea eax, [eax + esi + 0x1e1dc]
add ebx, esi
push eax
add edi, 8
call dword [esi + 0x1e240]
xchg ebp, eax
mov al, byte [edi]
inc edi
or al, al
je 0x1001eed1
mov ecx, edi
push edi
dec eax
repne scasb al, byte es:[edi]
push ebp
call dword [esi + 0x1e244]
or eax, eax
je 0x1001ef0d
mov dword [ebx], eax
add ebx, 4
jmp 0x1001eeee
popal
xor eax, eax
ret 0xc
add edi, 4
lea ebx, [esi - 4]
xor eax, eax
mov al, byte [edi]
inc edi
or eax, eax
je 0x1001ef44
cmp al, 0xef
ja 0x1001ef37
add ebx, eax
mov eax, dword [ebx]
xchg ah, al
rol eax, 0x10
xchg ah, al
add eax, esi
mov dword [ebx], eax
jmp 0x1001ef19
and al, 0xf
shl eax, 0x10
mov ax, word [edi]
add edi, 2
jmp 0x1001ef26
mov ebp, dword [esi + 0x1e248]
lea edi, [esi - 0x1000]
mov ebx, 0x1000
push eax
push esp
push 4
push ebx
push edi
call ebp
lea eax, [edi + 0x207]
and byte [eax], 0x7f
and byte [eax + 0x28], 0x7f
pop eax
push eax
push esp
push eax
push ebx
push edi
call ebp
pop eax
popal
lea eax, [esp - 0x80]
push 0
cmp esp, eax
jne 0x1001ef78
sub esp, 0xffffff80
jmp 0x100110dc
Function at 0x10c6058
Capabilities:
Decompress data using aplib

Disassembly:
call fcn.010c61a8
push ebx
mov ebx, esp
push ebx
mov esi, dword [ebx + 8]
mov edi, dword [ebx + 0x10]
cld
mov dl, 0x80
mov al, byte [esi]
inc esi
mov byte [edi], al
inc edi
mov ebx, 2
add dl, dl
jne 0x10c607e
mov dl, byte [esi]
inc esi
adc dl, dl
jae 0x10c606a
add dl, dl
jne 0x10c6089
mov dl, byte [esi]
inc esi
adc dl, dl
jae 0x10c60dc
xor eax, eax
add dl, dl
jne 0x10c6096
mov dl, byte [esi]
inc esi
adc dl, dl
jae 0x10c617d
add dl, dl
jne 0x10c60a5
mov dl, byte [esi]
inc esi
adc dl, dl
adc eax, eax
add dl, dl
jne 0x10c60b0
mov dl, byte [esi]
inc esi
adc dl, dl
adc eax, eax
add dl, dl
jne 0x10c60bb
mov dl, byte [esi]
inc esi
adc dl, dl
adc eax, eax
add dl, dl
jne 0x10c60c6
mov dl, byte [esi]
inc esi
adc dl, dl
adc eax, eax
je 0x10c60d2
push edi
mov eax, eax
sub edi, eax
mov al, byte [edi]
pop edi
mov byte [edi], al
inc edi
mov ebx, 2
jmp 0x10c6075
mov eax, 1
add dl, dl
jne 0x10c60ea
mov dl, byte [esi]
inc esi
adc dl, dl
adc eax, eax
add dl, dl
jne 0x10c60f5
mov dl, byte [esi]
inc esi
adc dl, dl
jb 0x10c60e1
sub eax, ebx
mov ebx, 1
jne 0x10c6128
mov ecx, 1
add dl, dl
jne 0x10c610e
mov dl, byte [esi]
inc esi
adc dl, dl
adc ecx, ecx
add dl, dl
jne 0x10c6119
mov dl, byte [esi]
inc esi
adc dl, dl
jb 0x10c6105
push esi
mov esi, edi
sub esi, ebp
rep movsb byte es:[edi], byte [esi]
pop esi
jmp 0x10c6075
dec eax
shl eax, 8
mov al, byte [esi]
inc esi
mov ebp, eax
mov ecx, 1
add dl, dl
jne 0x10c613f
mov dl, byte [esi]
inc esi
adc dl, dl
adc ecx, ecx
add dl, dl
jne 0x10c614a
mov dl, byte [esi]
inc esi
adc dl, dl
jb 0x10c6136
cmp eax, 0x7d00
jae 0x10c616d
cmp eax, 0x500
jb 0x10c6168
inc ecx
push esi
mov esi, edi
sub esi, eax
rep movsb byte es:[edi], byte [esi]
pop esi
jmp 0x10c6075
cmp eax, 0x7f
ja 0x10c6170
add ecx, 2
push esi
mov esi, edi
sub esi, eax
rep movsb byte es:[edi], byte [esi]
pop esi
jmp 0x10c6075
mov al, byte [esi]
inc esi
xor ecx, ecx
shr al, 1
je 0x10c619e
adc ecx, 2
mov ebp, eax
push esi
mov esi, edi
sub esi, eax
rep movsb byte es:[edi], byte [esi]
pop esi
mov ebx, 1
jmp 0x10c6075
pop ebx
sub edi, dword [ebx + 0x10]
mov eax, edi
pop ebx
ret 0x10
Function at 0x4045d0
Capabilities:
Check for time delay via queryperformancecounter
Find taskbar

Disassembly:
sub esp, 0x38
push ebx
push ebp
push edi
call fcn.004066a0
mov ebx, dword [sym.imp.USER32.dll_SystemParametersInfoW]
push 0
mov dword [esi], eax
lea eax, [esp + 0x14]
push eax
push 0
push 0x30
call ebx
mov ecx, dword [esp + 0x14]
mov dword [esi + 8], ecx
call fcn.00406600
push 0
lea edx, [esp + 0x14]
push edx
push 0
push 0x30
mov dword [esi + 0xc], eax
call ebx
mov ebp, dword [sym.imp.USER32.dll_FindWindowW]
push 0
push str.Shell_TrayWnd
call ebp
mov dword [esp + 0xc], eax
call dword [sym.imp.USER32.dll_GetDesktopWindow]
mov edi, dword [sym.imp.USER32.dll_GetWindowRect]
lea ecx, [esp + 0x20]
push ecx
push eax
call edi
mov eax, dword [esp + 0xc]
lea edx, [esp + 0x30]
push edx
push eax
call edi
mov ecx, dword [esp + 0x1c]
sub ecx, dword [esp + 0x14]
push 0
lea edx, [esp + 0x34]
push edx
push 0
push 0x30
mov dword [esi + 0x10], ecx
call ebx
push 0
push str.Shell_TrayWnd
call ebp
mov dword [esp + 0xc], eax
call dword [sym.imp.USER32.dll_GetDesktopWindow]
lea ecx, [esp + 0x10]
push ecx
push eax
call edi
mov eax, dword [esp + 0xc]
lea edx, [esp + 0x20]
push edx
push eax
call edi
mov ecx, dword [esp + 0x18]
sub ecx, dword [esp + 0x10]
push 0
lea edx, [esp + 0x34]
push edx
push 0
push 0x30
mov dword [esi + 0x18], ecx
call ebx
push 0
push str.Shell_TrayWnd
call ebp
mov ebx, eax
call dword [sym.imp.USER32.dll_GetDesktopWindow]
lea ecx, [esp + 0x10]
push ecx
push eax
call edi
lea edx, [esp + 0x20]
push edx
push ebx
call edi
mov eax, dword [esp + 0x1c]
sub eax, dword [esp + 0x14]
mov ecx, dword [esi]
mov edi, dword [sym.imp.KERNEL32.dll_QueryPerformanceCounter]
lea edx, [esi + 0x1a0]
push edx
mov dword [esi + 0x1c], eax
mov dword [esi + 4], ecx
call edi
lea eax, [esi + 0x1b8]
push eax
call edi
lea ecx, [esi + 0x1a8]
push ecx
call edi
lea edx, [esi + 0x1e8]
push edx
call edi
lea eax, [esi + 0x1c8]
push eax
call edi
lea ecx, [esi + 0x1d8]
push ecx
call edi
mov edx, dword [0x44e808]
pop edi
pop ebp
mov dword [esi + 0x190], edx
pop ebx
add esp, 0x38
ret
Function at 0x4051c0
Capabilities:
Enumerate processes

Disassembly:
sub esp, 0x438
mov eax, dword [0x44a590]
xor eax, esp
mov dword [esp + 0x434], eax
push ebp
mov ebp, dword [esp + 0x440]
push esi
push edi
push 0x206
lea eax, [esp + 0x23e]
push 0
push eax
mov word [esp + 0x244], 0
call fcn.00425c60
add esp, 0xc
call dword [sym.imp.KERNEL32.dll_GetCurrentProcessId]
push 0x228
lea ecx, [esp + 0x14]
push 0
push ecx
mov edi, eax
mov dword [esp + 0x18], 0
call fcn.00425c60
add esp, 0xc
push 0
push 2
call sub.KERNEL32.dll_CreateToolhelp32Snapshot
mov esi, eax
cmp esi, 0xffffffff
je 0x4052bd
lea edx, [esp + 0xc]
push edx
push esi
mov dword [esp + 0x14], 0x22c
call sub.KERNEL32.dll_Process32FirstW
test eax, eax
je 0x405285
mov edi, edi
cmp dword [esp + 0x14], edi
je 0x405267
lea eax, [esp + 0xc]
push eax
push esi
call sub.KERNEL32.dll_Process32NextW
test eax, eax
jne 0x405250
jmp 0x405285
xor eax, eax
lea esp, [esp]
movzx ecx, word [esp + eax + 0x30]
mov word [esp + eax + 0x238], cx
add eax, 2
test cx, cx
jne 0x405270
push esi
call dword [sym.imp.KERNEL32.dll_CloseHandle]
lea ecx, [esp + 0x238]
push ecx
call fcn.00422966
mov ecx, eax
add esp, 4
lea esi, [ecx + 2]
mov dx, word [ecx]
add ecx, 2
test dx, dx
jne 0x4052a1
sub ecx, esi
sar ecx, 1
push ecx
push eax
lea esi, [ebp + 0x174]
call fcn.004014f0
mov ecx, dword [esp + 0x440]
pop edi
pop esi
pop ebp
xor ecx, esp
call fcn.004223ab
add esp, 0x438
ret 4

Function at 0x4052e0
Capabilities:
Check os version

Disassembly:
sub esp, 0x120
mov eax, dword [0x44a590]
xor eax, esp
mov dword [esp + 0x11c], eax
push 0x11c
lea eax, [esp + 4]
push 0
push eax
call fcn.00425c60
add esp, 0xc
lea ecx, [esp]
push ecx
mov dword [esp + 4], 0x11c
call dword [sym.imp.KERNEL32.dll_GetVersionExW]
cmp dword [esp + 4], 6
jne 0x405352
mov eax, dword [esp + 8]
test eax, eax
je 0x40532e
cmp eax, 1
jne 0x405352
cmp byte [esp + 0x11a], 1
jne 0x405352
mov eax, 1
mov ecx, dword [esp + 0x11c]
xor ecx, esp
call fcn.004223ab
add esp, 0x120
ret
mov ecx, dword [esp + 0x11c]
xor ecx, esp
xor eax, eax
call fcn.004223ab
add esp, 0x120
ret

Function at 0x405370
Capabilities:
Check if file exists

Disassembly:
sub esp, 0x1c
mov eax, dword [0x44a590]
xor eax, esp
mov dword [esp + 0x18], eax
mov eax, dword [esp + 0x20]
push esi
push str.SHGetKnownFolderPath
push eax
call dword [sym.imp.KERNEL32.dll_GetProcAddress]
mov esi, eax
test esi, esi
jne 0x4053a9
xor al, al
pop esi
mov ecx, dword [esp + 0x18]
xor ecx, esp
call fcn.004223ab
add esp, 0x1c
ret 4
lea eax, [esp + 0xc]
push eax
push str.A520A1A4_1780_4FF6_BD18_167343C5AF16
call dword [sym.imp.ole32.dll_CLSIDFromString]
lea ecx, [esp + 8]
push ecx
push 0
push 0x400
lea edx, [esp + 0x18]
push edx
call esi
test eax, eax
jl 0x405395
mov eax, dword [esp + 8]
mov edx, edi
sub edx, eax
jmp 0x4053e0
movzx ecx, word [eax]
mov word [edx + eax], cx
add eax, 2
test cx, cx
jne 0x4053e0
push edi
call dword [sym.imp.SHLWAPI.dll_PathFileExistsW]
mov ecx, dword [esp + 0x1c]
test eax, eax
setne al
pop esi
xor ecx, esp
call fcn.004223ab
add esp, 0x1c
ret 4
Function at 0x405410
Capabilities:
Check if file exists
Query environment variable

Disassembly:
push ecx
push esi
push edi
push str.Shell32.dll
call dword [sym.imp.KERNEL32.dll_LoadLibraryW]
test eax, eax
je 0x405434
push eax
mov edi, ebx
call fcn.00405370
test al, al
je 0x405434
mov al, 1
pop edi
pop esi
pop ecx
ret
push 0x104
push ebx
push str.USERPROFILE
call dword [sym.imp.KERNEL32.dll_GetEnvironmentVariableW]
test eax, eax
je 0x405473
mov edi, ebx
add edi, 0xfffffffe
mov edi, edi
mov ax, word [edi + 2]
add edi, 2
test ax, ax
jne 0x405450
mov ecx, 9
mov esi, str.AppDataLocalLow
push ebx
rep movsd dword es:[edi], dword [esi]
call dword [sym.imp.SHLWAPI.dll_PathFileExistsW]
test eax, eax
jne 0x40542e
pop edi
xor al, al
pop esi
pop ecx
ret

Function at 0x405480
Capabilities:
Check if file exists
Get common file path

Disassembly:
sub esp, 0x218
mov eax, dword [0x44a590]
xor eax, esp
mov dword [esp + 0x210], eax
push ebx
push esi
push edi
push 0x206
lea eax, [esp + 0x16]
push 0
push eax
mov esi, ecx
mov word [esp + 0x1c], 0
call fcn.00425c60
add esp, 0xc
lea ebx, [esp + 0x10]
call fcn.00405410
test al, al
jne 0x4054ea
push 0
push 0x1a
mov ecx, ebx
push ecx
push 0
call dword [sym.imp.SHELL32.dll_SHGetSpecialFolderPathW]
mov eax, ebx
lea edx, [eax + 2]
mov cx, word [eax]
add eax, 2
test cx, cx
jne 0x4054d5
sub eax, edx
sar eax, 1
je 0x4055ad
lea edi, [esp + 0x10]
add edi, 0xfffffffe
mov ax, word [edi + 2]
add edi, 2
test ax, ax
jne 0x4054f1
mov edx, dword [0x440c74]
lea eax, [esp + 0x10]
mov dword [edi], edx
add eax, 0xfffffffe
lea esp, [esp]
mov cx, word [eax + 2]
add eax, 2
test cx, cx
jne 0x405510
mov ecx, dword [str.DongFangIME]
mov dword [eax], ecx
mov ecx, dword [0x440bd4]
mov dword [eax + 4], ecx
mov ecx, dword [0x440bd8]
mov dword [eax + 8], ecx
mov ecx, dword [0x440bdc]
mov dword [eax + 0xc], ecx
mov ecx, dword [0x440be0]
mov dword [eax + 0x10], ecx
mov ecx, dword [0x440be4]
lea edi, [esp + 0x10]
mov dword [eax + 0x14], ecx
add edi, 0xfffffffe
jmp 0x405560
mov ax, word [edi + 2]
add edi, 2
test ax, ax
jne 0x405560
mov dword [edi], edx
lea edx, [esp + 0x10]
push edx
call dword [sym.imp.SHLWAPI.dll_PathFileExistsW]
test eax, eax
jne 0x405586
lea eax, [esp + 0x10]
call fcn.00405e50
lea eax, [esp + 0x10]
lea edx, [eax + 2]
lea ecx, [ecx]
mov cx, word [eax]
add eax, 2
test cx, cx
jne 0x405590
sub eax, edx
sar eax, 1
push eax
lea eax, [esp + 0x14]
push eax
add esi, 0x40
call fcn.004014f0
mov ecx, dword [esp + 0x21c]
pop edi
pop esi
pop ebx
xor ecx, esp
call fcn.004223ab
add esp, 0x218
ret
Function at 0x4055d0
Capabilities:
Check if file exists
Get common file path

Disassembly:
sub esp, 0x218
mov eax, dword [0x44a590]
xor eax, esp
mov dword [esp + 0x214], eax
push ebx
push ebp
mov ebp, dword [esp + 0x224]
push esi
push edi
push 0x206
lea eax, [esp + 0x1e]
push 0
push eax
mov word [esp + 0x24], 0
call fcn.00425c60
add esp, 0xc
lea ebx, [esp + 0x18]
call fcn.00405410
test al, al
jne 0x405645
push 0
push 0x1a
mov ecx, ebx
push ecx
push 0
call dword [sym.imp.SHELL32.dll_SHGetSpecialFolderPathW]
mov eax, ebx
lea edx, [eax + 2]
jmp 0x405630
mov cx, word [eax]
add eax, 2
test cx, cx
jne 0x405630
sub eax, edx
sar eax, 1
je 0x4056dd
lea edi, [esp + 0x18]
add edi, 0xfffffffe
lea esp, [esp]
mov ax, word [edi + 2]
add edi, 2
test ax, ax
jne 0x405650
mov edx, dword [0x440c74]
mov dword [edi], edx
lea edi, [esp + 0x18]
add edi, 0xfffffffe
jmp 0x405670
mov ax, word [edi + 2]
add edi, 2
test ax, ax
jne 0x405670
mov ecx, 9
mov esi, str.DongFangIME.users
rep movsd dword es:[edi], dword [esi]
lea edi, [esp + 0x18]
add edi, 0xfffffffe
nop
mov ax, word [edi + 2]
add edi, 2
test ax, ax
jne 0x405690
mov dword [edi], edx
lea edx, [esp + 0x18]
push edx
call dword [sym.imp.SHLWAPI.dll_PathFileExistsW]
test eax, eax
jne 0x4056b6
lea eax, [esp + 0x18]
call fcn.00405e50
lea eax, [esp + 0x18]
lea edx, [eax + 2]
lea ecx, [ecx]
mov cx, word [eax]
add eax, 2
test cx, cx
jne 0x4056c0
sub eax, edx
sar eax, 1
push eax
lea eax, [esp + 0x1c]
push eax
lea esi, [ebp + 0x24]
call fcn.004014f0
mov ecx, dword [esp + 0x224]
pop edi
pop esi
pop ebp
pop ebx
xor ecx, esp
call fcn.004223ab
add esp, 0x218
ret 4
Function at 0x405700
Capabilities:
Set registry value

Disassembly:
sub esp, 0x620
mov eax, dword [0x44a590]
xor eax, esp
mov dword [esp + 0x61c], eax
push 0x206
lea eax, [esp + 0xa]
push 0
push eax
mov word [esp + 0x10], 0
call fcn.00425c60
add esp, 0xc
xor eax, eax
movzx ecx, word [eax + str.SOFTWARE_]
mov word [esp + eax + 4], cx
add eax, 2
test cx, cx
jne 0x405731
push esi
push edi
lea edi, [esp + 0xc]
add edi, 0xfffffffe
mov edi, edi
mov ax, word [edi + 2]
add edi, 2
test ax, ax
jne 0x405750
mov ecx, 7
mov esi, 0x440c78
rep movsd dword es:[edi], dword [esi]
mov esi, 8
cmp dword [ebx + 0x58], esi
jb 0x405777
mov ecx, dword [ebx + 0x44]
jmp 0x40577a
lea ecx, [ebx + 0x44]
lea edx, [esp + 0x214]
movzx eax, word [ecx]
mov word [edx], ax
add ecx, 2
add edx, 2
test ax, ax
jne 0x405781
cmp dword [ebx + 0x3c], esi
jb 0x40579c
mov ecx, dword [ebx + 0x28]
jmp 0x40579f
lea ecx, [ebx + 0x28]
lea edx, [esp + 0x41c]
movzx eax, word [ecx]
mov word [edx], ax
add ecx, 2
add edx, 2
test ax, ax
jne 0x4057a6
lea ecx, [esp + 8]
push ecx
push 2
push 0
lea edx, [esp + 0x18]
push edx
push reloc.OLEAUT32.dll_SysReAllocString
call dword [sym.imp.ADVAPI32.dll_RegOpenKeyExW]
test eax, eax
jne 0x405814
mov ecx, dword [esp + 8]
mov esi, dword [sym.imp.ADVAPI32.dll_RegSetValueExW]
push 0x104
lea eax, [esp + 0x218]
push eax
push 1
push 0
push str.CfgRootPath
push ecx
call esi
mov eax, dword [esp + 8]
push 0x104
lea edx, [esp + 0x420]
push edx
push 1
push 0
push str.CfgUserPath
push eax
call esi
mov ecx, dword [esp + 8]
push ecx
call dword [sym.imp.ADVAPI32.dll_RegCloseKey]
mov ecx, dword [esp + 0x624]
pop edi
pop esi
xor ecx, esp
call fcn.004223ab
add esp, 0x620
ret

Function at 0x405840
Capabilities:
Read .ini file

Disassembly:
sub esp, 0x210
mov eax, dword [0x44a590]
xor eax, esp
mov dword [esp + 0x20c], eax
push ebx
push esi
push edi
xor ebx, ebx
push 0x206
lea eax, [esp + 0x16]
push ebx
push eax
mov edi, ecx
mov esi, edx
mov dword [esp + 0x18], ebx
mov word [esp + 0x1c], bx
call fcn.00425c60
add esp, 0xc
cmp dword [edi + 0x11c], 8
jb 0x40588a
mov edi, dword [edi + 0x108]
jmp 0x405890
add edi, 0x108
push edi
push 0x104
lea ecx, [esp + 0x18]
push ecx
push 0x440af4
push str.TTNewsShutCutClickTimes
push str.MiNiNews
call dword [sym.imp.KERNEL32.dll_GetPrivateProfileStringW]
lea eax, [esp + 0x10]
mov dword [esi + 0x18], 7
mov dword [esi + 0x14], ebx
mov word [esi + 4], bx
lea edx, [eax + 2]
mov cx, word [eax]
add eax, 2
cmp cx, bx
jne 0x4058c5
sub eax, edx
sar eax, 1
push eax
lea edx, [esp + 0x14]
push edx
call fcn.004014f0
mov ecx, dword [esp + 0x218]
pop edi
mov eax, esi
pop esi
pop ebx
xor ecx, esp
call fcn.004223ab
add esp, 0x210
ret
Function at 0x405e50
Capabilities:
Check if file exists
Create directory

Disassembly:
push ecx
push ebp
push esi
push edi
mov edi, eax
lea edx, [eax + 2]
lea esp, [esp]
mov cx, word [eax]
add eax, 2
test cx, cx
jne 0x405e60
sub eax, edx
sar eax, 1
mov ebp, eax
xor ecx, ecx
lea eax, [ebp + 1]
mov edx, 2
mul edx
seto cl
neg ecx
or ecx, eax
push ecx
call fcn.004069a8
mov esi, eax
mov edx, esi
add esp, 4
mov eax, edi
sub edx, edi
movzx ecx, word [eax]
mov word [edx + eax], cx
add eax, 2
test cx, cx
jne 0x405e95
xor edi, edi
test ebp, ebp
mov byte [esp + 0xf], 1
jl 0x405efd
push ebx
mov ebx, dword [sym.imp.SHLWAPI.dll_PathFileExistsW]
cmp word [esi + edi*2], 0x5c
jne 0x405edc
push esi
mov word [esi + edi*2], 0
call ebx
test eax, eax
jne 0x405ed6
push eax
push esi
call dword [sym.imp.KERNEL32.dll_CreateDirectoryW]
test eax, eax
je 0x405ef7
mov word [esi + edi*2], 0x5c
add edi, 1
cmp edi, ebp
jle 0x405eb6
pop ebx
push esi
call fcn.004069a3
movzx eax, byte [esp + 0x13]
add esp, 4
pop edi
pop esi
pop ebp
pop ecx
ret
mov byte [esp + 0x13], 0
pop ebx
push esi
call fcn.004069a3
movzx eax, byte [esp + 0x13]
add esp, 4
pop edi
pop esi
pop ebp
pop ecx
ret
Function at 0x405f10
Capabilities:
Check if file exists
Get common file path
Get program files directory
Query or enumerate registry value

Disassembly:
sub esp, 0x420
mov eax, dword [0x44a590]
xor eax, esp
mov dword [esp + 0x41c], eax
push ebp
mov ebp, dword [esp + 0x428]
push esi
lea eax, [esp + 8]
push eax
push 0x20019
xor esi, esi
push esi
push str.SOFTWAREMicrosoftWindowsCurrentVersionApp_PathsIEXPLORE.EXE
push reloc.OLEAUT32.dll_SysReAllocString
mov dword [esp + 0x1c], esi
call dword [sym.imp.ADVAPI32.dll_RegOpenKeyExW]
test eax, eax
je 0x405f6b
pop esi
xor eax, eax
pop ebp
mov ecx, dword [esp + 0x41c]
xor ecx, esp
call fcn.004223ab
add esp, 0x420
ret
push ebx
push 0x206
lea ecx, [esp + 0x226]
push esi
push ecx
mov word [esp + 0x22c], si
call fcn.00425c60
add esp, 0xc
lea edx, [esp + 0x14]
push edx
mov edx, dword [esp + 0x10]
lea eax, [esp + 0x224]
push eax
lea ecx, [esp + 0x18]
push ecx
push esi
push 0x440af4
push edx
mov dword [esp + 0x2c], 0x104
mov dword [esp + 0x28], 1
call dword [sym.imp.ADVAPI32.dll_RegQueryValueExW]
mov ebx, dword [sym.imp.SHLWAPI.dll_PathFileExistsW]
lea eax, [esp + 0x220]
push eax
call ebx
test eax, eax
jne 0x406067
mov ecx, dword [esp + 0xc]
push edi
push ecx
call dword [sym.imp.ADVAPI32.dll_RegCloseKey]
push 0x206
lea edx, [esp + 0x22]
push esi
push edx
mov word [esp + 0x28], si
call fcn.00425c60
add esp, 0xc
push esi
push 0x26
lea eax, [esp + 0x24]
push eax
push esi
call dword [sym.imp.SHELL32.dll_SHGetSpecialFolderPathW]
lea edi, [esp + 0x1c]
add edi, 0xfffffffe
nop
mov ax, word [edi + 2]
add edi, 2
cmp ax, si
jne 0x406010
mov ecx, 0x10
mov esi, str.Internet_Exploreriexplore.exe
rep movsd dword es:[edi], dword [esi]
lea ecx, [esp + 0x1c]
push ecx
call ebx
test eax, eax
pop edi
jne 0x40604c
pop ebx
pop esi
pop ebp
mov ecx, dword [esp + 0x41c]
xor ecx, esp
call fcn.004223ab
add esp, 0x420
ret
lea eax, [esp + 0x18]
mov edx, ebp
mov ecx, eax
sub edx, ecx
movzx ecx, word [eax]
mov word [edx + eax], cx
add eax, 2
test cx, cx
jne 0x406056
jmp 0x40608e
lea eax, [esp + 0x220]
mov edx, ebp
mov ecx, eax
sub edx, ecx
movzx ecx, word [eax]
mov word [edx + eax], cx
add eax, 2
cmp cx, si
jne 0x406074
mov edx, dword [esp + 0xc]
push edx
call dword [sym.imp.ADVAPI32.dll_RegCloseKey]
mov ecx, dword [esp + 0x428]
pop ebx
pop esi
pop ebp
xor ecx, esp
mov eax, 1
call fcn.004223ab
add esp, 0x420
ret