joyce8/EMBER2024-capa huggingface dataset:
Function at 0x418200
Capabilities:
Get installed programs
Query or enumerate registry key
Query or enumerate registry value

Disassembly:
push ebp
mov ebp, esp
sub esp, 0x428
mov eax, dword [0x627a40]
xor eax, ebp
mov dword [ebp - 4], eax
push ebx
push esi
push edi
xor esi, esi
mov dword [ebp - 0x428], ecx
push 0x208
lea eax, [ebp - 0x20c]
mov dword [ebp - 0x418], esi
push esi
push eax
mov dword [ebp - 0x41c], esi
call fcn.00576f50
add esp, 0xc
lea eax, [ebp - 0x418]
push eax
push 0x109
push esi
push str.SoftwareMicrosoftWindowsCurrentVersionUninstall_
push reloc.WS2_32.dll_bind
call dword [sym.imp.ADVAPI32.dll_RegOpenKeyExW]
mov ebx, dword [sym.imp.ADVAPI32.dll_RegCloseKey]
test eax, eax
jne 0x418364
push 0x104
lea eax, [ebp - 0x20c]
xor edi, edi
push eax
push edi
push dword [ebp - 0x418]
call dword [sym.imp.ADVAPI32.dll_RegEnumKeyW]
test eax, eax
jne 0x418354
nop dword [eax]
lea eax, [ebp - 0x41c]
push eax
lea eax, [ebp - 0x20c]
push eax
push dword [ebp - 0x418]
call dword [sym.imp.ADVAPI32.dll_RegOpenKeyW]
test eax, eax
jne 0x418332
push 0x208
push eax
lea eax, [ebp - 0x414]
mov dword [ebp - 0x420], 0x104
push eax
call fcn.00576f50
add esp, 0xc
mov dword [ebp - 0x424], 1
lea eax, [ebp - 0x420]
push eax
lea eax, [ebp - 0x414]
push eax
lea eax, [ebp - 0x424]
push eax
push 0
push str.DisplayName
push dword [ebp - 0x41c]
call dword [sym.imp.ADVAPI32.dll_RegQueryValueExW]
test eax, eax
jne 0x418326
push dword [ebp - 0x428]
lea eax, [ebp - 0x414]
push eax
call fcn.0057612d
add esp, 8
test eax, eax
mov eax, 1
cmovne esi, eax
push dword [ebp - 0x41c]
call ebx
test esi, esi
jne 0x418354
push 0x104
lea eax, [ebp - 0x20c]
inc edi
push eax
push edi
push dword [ebp - 0x418]
call dword [sym.imp.ADVAPI32.dll_RegEnumKeyW]
test eax, eax
je 0x418290
push dword [ebp - 0x418]
call ebx
test esi, esi
jne 0x41847c
lea eax, [ebp - 0x418]
push eax
push 9
push 0
push 0x61b590
push reloc.WS2_32.dll_bind
call dword [sym.imp.ADVAPI32.dll_RegOpenKeyExW]
test eax, eax
jne 0x41847c
push 0x104
lea eax, [ebp - 0x20c]
xor edi, edi
push eax
push edi
push dword [ebp - 0x418]
call dword [sym.imp.ADVAPI32.dll_RegEnumKeyW]
test eax, eax
jne 0x418474
nop word [eax + eax]
lea eax, [ebp - 0x41c]
push eax
lea eax, [ebp - 0x20c]
push eax
push dword [ebp - 0x418]
call dword [sym.imp.ADVAPI32.dll_RegOpenKeyW]
test eax, eax
jne 0x418452
push 0x208
push eax
lea eax, [ebp - 0x414]
mov dword [ebp - 0x424], 0x104
push eax
call fcn.00576f50
add esp, 0xc
mov dword [ebp - 0x420], 1
lea eax, [ebp - 0x424]
push eax
lea eax, [ebp - 0x414]
push eax
lea eax, [ebp - 0x420]
push eax
push 0
push str.DisplayName
push dword [ebp - 0x41c]
call dword [sym.imp.ADVAPI32.dll_RegQueryValueExW]
test eax, eax
jne 0x418446
push dword [ebp - 0x428]
lea eax, [ebp - 0x414]
push eax
call fcn.0057612d
add esp, 8
test eax, eax
mov eax, 1
cmovne esi, eax
push dword [ebp - 0x41c]
call ebx
test esi, esi
jne 0x418474
push 0x104
lea eax, [ebp - 0x20c]
inc edi
push eax
push edi
push dword [ebp - 0x418]
call dword [sym.imp.ADVAPI32.dll_RegEnumKeyW]
test eax, eax
je 0x4183b0
push dword [ebp - 0x418]
call ebx
mov ecx, dword [ebp - 4]
mov eax, esi
pop edi
pop esi
xor ecx, ebp
pop ebx
call fcn.00570ea9
mov esp, ebp
pop ebp
ret
Function at 0x418490
Capabilities:
Query or enumerate registry key

Disassembly:
push ebp
mov ebp, esp
sub esp, 0x214
mov eax, dword [0x627a40]
xor eax, ebp
mov dword [ebp - 4], eax
push edi
xor edi, edi
mov dword [ebp - 0x214], ecx
push 0x208
lea eax, [ebp - 0x20c]
mov dword [ebp - 0x210], edi
push edi
push eax
call fcn.00576f50
add esp, 0xc
lea eax, [ebp - 0x210]
push eax
push 0x109
push edi
push str.SYSTEMCurrentControlSetServices_
push reloc.WS2_32.dll_bind
call dword [sym.imp.ADVAPI32.dll_RegOpenKeyExW]
test eax, eax
jne 0x418558
push ebx
mov ebx, dword [sym.imp.ADVAPI32.dll_RegEnumKeyW]
lea eax, [ebp - 0x20c]
push esi
push 0x104
push eax
xor esi, esi
push esi
push dword [ebp - 0x210]
call ebx
test eax, eax
jne 0x41854a
nop dword [eax + eax]
push dword [ebp - 0x214]
lea eax, [ebp - 0x20c]
push eax
call fcn.005839a8
add esp, 8
test eax, eax
je 0x418545
push 0x104
lea eax, [ebp - 0x20c]
inc esi
push eax
push esi
push dword [ebp - 0x210]
call ebx
test eax, eax
je 0x418510
jmp 0x41854a
mov edi, 1
push dword [ebp - 0x210]
call dword [sym.imp.ADVAPI32.dll_RegCloseKey]
pop esi
pop ebx
mov ecx, dword [ebp - 4]
mov eax, edi
xor ecx, ebp
pop edi
call fcn.00570ea9
mov esp, ebp
pop ebp
ret
Function at 0x419ff0
Capabilities:
Get common file path

Disassembly:
push ebp
mov ebp, esp
push 0xffffffffffffffff
push 0x59e2f6
mov eax, dword fs:[0]
push eax
sub esp, 0x240
mov eax, dword [0x627a40]
xor eax, ebp
mov dword [ebp - 0x14], eax
push ebx
push esi
push edi
push eax
lea eax, [ebp - 0xc]
mov dword fs:[0], eax
mov ebx, dword [ebp + 8]
lea eax, [ebp - 0x21c]
push 0x208
push 0
push eax
call fcn.00576f50
mov esi, dword [sym.imp.SHELL32.dll_SHGetSpecialFolderPathW]
lea eax, [ebp - 0x21c]
add esp, 0xc
push 0
push 0x19
push eax
push 0
call esi
test eax, eax
je 0x41a12d
xor eax, eax
mov dword [ebp - 0x220], 7
mov dword [ebp - 0x224], 0
mov word [ebp - 0x234], ax
cmp word [ebp - 0x21c], ax
jne 0x41a07e
xor ecx, ecx
jmp 0x41a096
lea ecx, [ebp - 0x21c]
lea edx, [ecx + 2]
mov ax, word [ecx]
add ecx, 2
test ax, ax
jne 0x41a087
sub ecx, edx
sar ecx, 1
push ecx
lea eax, [ebp - 0x21c]
push eax
lea ecx, [ebp - 0x234]
call fcn.00403d10
push 1
push 0x61970c
lea ecx, [ebp - 0x234]
mov dword [ebp - 4], 0
call fcn.0040be00
cmp dword [ebp - 0x220], 8
lea eax, [ebp - 0x234]
push ebx
cmovae eax, dword [ebp - 0x234]
push eax
call fcn.0041a240
mov edi, eax
test edi, edi
je 0x41a108
mov ecx, dword [ebp - 0x220]
cmp ecx, 8
jb 0x41a101
inc ecx
push ecx
push dword [ebp - 0x234]
lea ecx, [ebp - 0x234]
call fcn.00404090
mov eax, edi
jmp 0x41a215
mov dword [ebp - 4], 0xffffffff
mov eax, dword [ebp - 0x220]
cmp eax, 8
jb 0x41a12d
inc eax
lea ecx, [ebp - 0x234]
push eax
push dword [ebp - 0x234]
call fcn.00404090
push 0
push 0x10
lea eax, [ebp - 0x21c]
push eax
push 0
call esi
test eax, eax
je 0x41a213
xor eax, eax
mov dword [ebp - 0x238], 7
mov dword [ebp - 0x23c], 0
mov word [ebp - 0x24c], ax
cmp word [ebp - 0x21c], ax
jne 0x41a16e
xor ecx, ecx
jmp 0x41a186
lea ecx, [ebp - 0x21c]
lea edx, [ecx + 2]
mov ax, word [ecx]
add ecx, 2
test ax, ax
jne 0x41a177
sub ecx, edx
sar ecx, 1
push ecx
lea eax, [ebp - 0x21c]
push eax
lea ecx, [ebp - 0x24c]
call fcn.00403d10
push 1
push 0x61970c
lea ecx, [ebp - 0x24c]
mov dword [ebp - 4], 1
call fcn.0040be00
cmp dword [ebp - 0x238], 8
lea eax, [ebp - 0x24c]
push ebx
cmovae eax, dword [ebp - 0x24c]
push eax
call fcn.0041a240
mov esi, eax
test esi, esi
je 0x41a1f5
mov ecx, dword [ebp - 0x238]
cmp ecx, 8
jb 0x41a1f1
inc ecx
push ecx
push dword [ebp - 0x24c]
lea ecx, [ebp - 0x24c]
call fcn.00404090
mov eax, esi
jmp 0x41a215
mov eax, dword [ebp - 0x238]
cmp eax, 8
jb 0x41a213
inc eax
lea ecx, [ebp - 0x24c]
push eax
push dword [ebp - 0x24c]
call fcn.00404090
xor eax, eax
mov ecx, dword [ebp - 0xc]
mov dword fs:[0], ecx
pop ecx
pop edi
pop esi
pop ebx
mov ecx, dword [ebp - 0x14]
xor ecx, ebp
call fcn.00570ea9
mov esp, ebp
pop ebp
ret 4
Function at 0x41a9e0
Capabilities:
Check if file exists
Get common file path
Get startup folder

Disassembly:
push ebp
mov ebp, esp
push 0xffffffffffffffff
push 0x59e3ab
mov eax, dword fs:[0]
push eax
sub esp, 0x848
mov eax, dword [0x627a40]
xor eax, ebp
mov dword [ebp - 0x14], eax
push esi
push eax
lea eax, [ebp - 0xc]
mov dword fs:[0], eax
mov esi, dword [ebp + 8]
lea eax, [ebp - 0x21c]
push 0x208
push 0
push eax
call fcn.00576f50
add esp, 0xc
lea eax, [ebp - 0x21c]
push 0
push 0x1a
push eax
push 0
call dword [sym.imp.SHELL32.dll_SHGetSpecialFolderPathW]
xor eax, eax
mov dword [ebp - 0x838], 7
mov dword [ebp - 0x83c], 0
mov word [ebp - 0x84c], ax
cmp word [ebp - 0x21c], ax
jne 0x41aa62
xor ecx, ecx
jmp 0x41aa7f
lea ecx, [ebp - 0x21c]
lea edx, [ecx + 2]
nop dword [eax + eax]
mov ax, word [ecx]
add ecx, 2
test ax, ax
jne 0x41aa70
sub ecx, edx
sar ecx, 1
push ecx
lea eax, [ebp - 0x21c]
push eax
lea ecx, [ebp - 0x84c]
call fcn.00403d10
push 0x3e
push str.MicrosoftInternet_ExplorerQuick_LaunchUser_PinnedTaskBar_
lea ecx, [ebp - 0x84c]
mov dword [ebp - 4], 0
call fcn.0040be00
cmp word [esi], 0
jne 0x41aab5
xor ecx, ecx
jmp 0x41aacf
mov ecx, esi
lea edx, [ecx + 2]
nop word [eax + eax]
mov ax, word [ecx]
add ecx, 2
test ax, ax
jne 0x41aac0
sub ecx, edx
sar ecx, 1
push ecx
push esi
lea ecx, [ebp - 0x84c]
call fcn.0040be00
push 4
push str..lnk
lea ecx, [ebp - 0x84c]
call fcn.0040be00
cmp dword [ebp - 0x838], 8
lea eax, [ebp - 0x84c]
mov esi, dword [sym.imp.SHLWAPI.dll_PathFileExistsW]
cmovae eax, dword [ebp - 0x84c]
push eax
call esi
test eax, eax
je 0x41abff
push 0x208
lea eax, [ebp - 0x834]
push 0
push eax
call fcn.00576f50
add esp, 0xc
lea eax, [ebp - 0x62c]
push 0x208
push 0
push eax
call fcn.00576f50
add esp, 0xc
lea ecx, [ebp - 0x84c]
cmp dword [ebp - 0x838], 8
lea edx, [ebp - 0x834]
cmovae ecx, dword [ebp - 0x84c]
nop dword [eax]
movzx eax, word [ecx]
lea ecx, [ecx + 2]
mov word [edx], ax
lea edx, [edx + 2]
test ax, ax
jne 0x41ab60
lea eax, [ebp - 0x62c]
push eax
lea eax, [ebp - 0x834]
push eax
call fcn.0041a8c0
push 0x208
lea eax, [ebp - 0x424]
push 0
push eax
call fcn.00576f50
add esp, 0xc
lea eax, [ebp - 0x424]
push 0x104
push eax
lea eax, [ebp - 0x62c]
push eax
call dword [sym.imp.KERNEL32.dll_GetLongPathNameW]
lea ecx, [ebp - 0x424]
lea edx, [ecx + 2]
nop dword [eax]
mov ax, word [ecx]
add ecx, 2
test ax, ax
jne 0x41abc0
sub ecx, edx
sar ecx, 1
jne 0x41abeb
xor ecx, ecx
movzx eax, word [ebp + ecx - 0x62c]
lea ecx, [ecx + 2]
mov word [ebp + ecx - 0x426], ax
test ax, ax
jne 0x41abd3
lea eax, [ebp - 0x424]
push eax
call esi
test eax, eax
je 0x41abff
mov esi, 1
jmp 0x41ac01
xor esi, esi
mov ecx, dword [ebp - 0x838]
cmp ecx, 8
jb 0x41ac1f
inc ecx
push ecx
push dword [ebp - 0x84c]
lea ecx, [ebp - 0x84c]
call fcn.00404090
mov eax, esi
mov ecx, dword [ebp - 0xc]
mov dword fs:[0], ecx
pop ecx
pop esi
mov ecx, dword [ebp - 0x14]
xor ecx, ebp
call fcn.00570ea9
mov esp, ebp
pop ebp
ret 4
Function at 0x41b470
Capabilities:
Get common file path

Disassembly:
push ebp
mov ebp, esp
sub esp, 0x20c
mov eax, dword [0x627a40]
xor eax, ebp
mov dword [ebp - 4], eax
push 0x208
lea eax, [ebp - 0x20c]
push 0
push eax
call fcn.00576f50
add esp, 0xc
lea eax, [ebp - 0x20c]
push 1
push 0x1a
push eax
push 0
call dword [sym.imp.SHELL32.dll_SHGetSpecialFolderPathW]
test eax, eax
je 0x41b501
lea eax, [ebp - 0x20c]
push eax
call fcn.00583ca6
lea eax, [ebp - 0x20c]
push 0x61b944
push eax
call fcn.0057612d
add esp, 0xc
test eax, eax
jne 0x41b4ec
lea eax, [ebp - 0x20c]
push str.documents_and_settingslocalservice
push eax
call fcn.0057612d
add esp, 8
test eax, eax
je 0x41b501
mov al, 1
mov byte [0x62d779], al
mov ecx, dword [ebp - 4]
xor ecx, ebp
call fcn.00570ea9
mov esp, ebp
pop ebp
ret
mov ecx, dword [ebp - 4]
mov al, byte [0x62d779]
xor ecx, ebp
call fcn.00570ea9
mov esp, ebp
pop ebp
ret

Function at 0x41b520
Capabilities:
Get common file path
Get program files directory

Disassembly:
push ebp
mov ebp, esp
push ecx
mov al, byte [0x62d779]
push ebx
push esi
mov esi, dword [ebp + 0xc]
xor bl, bl
push edi
test al, al
jne 0x41b53a
call fcn.0041b470
mov edi, 1
test al, al
je 0x41b58c
lea eax, [ebp - 4]
mov dword [ebp - 4], 0
push eax
call fcn.0041b5b0
test al, al
je 0x41b58c
push esi
push edi
push dword [ebp - 4]
push 0x26
push 0
call dword [sym.imp.SHELL32.dll_SHGetFolderPathW]
test eax, eax
movzx ebx, bl
cmove ebx, edi
call dword [sym.imp.ADVAPI32.dll_RevertToSelf]
push dword [ebp - 4]
call dword [sym.imp.KERNEL32.dll_CloseHandle]
test bl, bl
je 0x41b58c
mov al, bl
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret 0x10
push 0
push 0x26
push esi
push 0
call dword [sym.imp.SHELL32.dll_SHGetSpecialFolderPathW]
test eax, eax
movzx ecx, bl
cmovne ecx, edi
pop edi
pop esi
mov al, cl
pop ebx
mov esp, ebp
pop ebp
ret 0x10

Function at 0x41b660
Capabilities:
Get common file path

Disassembly:
push ebp
mov ebp, esp
sub esp, 0x218
mov eax, dword [0x627a40]
xor eax, ebp
mov dword [ebp - 8], eax
push ebx
mov ebx, dword [ebp + 8]
lea eax, [ebp - 0x214]
push esi
push edi
push 0x208
push 0
push eax
mov esi, ecx
call fcn.00576f50
add esp, 0xc
lea eax, [ebp - 0x214]
push 0
push 0x17
push eax
push 0
call dword [sym.imp.SHELL32.dll_SHGetSpecialFolderPathW]
test eax, eax
je 0x41b6e6
lea edi, [ebp - 0x214]
add edi, 0xfffffffe
mov ax, word [edi + 2]
lea edi, [edi + 2]
test ax, ax
jne 0x41b6b1
mov eax, dword [0x61970c]
mov ecx, esi
mov dword [edi], eax
lea eax, [ebp - 0x214]
push ebx
push eax
call fcn.0041b700
pop edi
pop esi
pop ebx
mov ecx, dword [ebp - 8]
xor ecx, ebp
call fcn.00570ea9
mov esp, ebp
pop ebp
ret 4
mov ecx, dword [ebp - 8]
xor eax, eax
pop edi
pop esi
xor ecx, ebp
pop ebx
call fcn.00570ea9
mov esp, ebp
pop ebp
ret 4
Function at 0x41bf90
Capabilities:
Query or enumerate registry value

Disassembly:
push ebp
mov ebp, esp
push 0xffffffffffffffff
push 0x59e548
mov eax, dword fs:[0]
push eax
sub esp, 0x30
push esi
mov eax, dword [0x627a40]
xor eax, ebp
push eax
lea eax, [ebp - 0xc]
mov dword fs:[0], eax
lea ecx, [ebp - 0x3c]
mov dword [ebp - 0x10], 0
mov dword [ebp - 0x14], 0
mov dword [ebp - 0x18], 0x104
mov dword [ebp - 0x3c], 0
mov dword [ebp - 0x38], 0
mov dword [ebp - 0x30], 0
mov dword [ebp - 0x34], 0
mov dword [ebp - 0x2c], 0
mov dword [ebp - 0x28], 0
mov dword [ebp - 0x24], 0
mov dword [ebp - 0x20], 0
mov dword [ebp - 0x1c], 0
call fcn.00405460
lea ecx, [ebp - 0x3c]
mov dword [ebp - 4], 0
call fcn.004055c0
test eax, eax
lea eax, [ebp - 0x10]
push eax
je 0x41c052
push 0xf013f
push 0
push str.SoftWare
push reloc.WS2_32.dll_bind
call dword [sym.imp.ADVAPI32.dll_RegOpenKeyExW]
test eax, eax
jne 0x41c0c1
push eax
lea eax, [ebp - 0x14]
push eax
push 0
push 0xf013f
jmp 0x41c079
push 0xf003f
push 0
push str.SoftWare
push reloc.WS2_32.dll_bind
call dword [sym.imp.ADVAPI32.dll_RegOpenKeyExW]
test eax, eax
jne 0x41c0c1
push eax
lea eax, [ebp - 0x14]
push eax
push 0
push 0xf003f
push 0
push 0
push 0
push dword [ebp + 8]
push dword [ebp - 0x10]
call dword [sym.imp.ADVAPI32.dll_RegCreateKeyExW]
test eax, eax
je 0x41c09a
push dword [ebp - 0x10]
call dword [sym.imp.ADVAPI32.dll_RegCloseKey]
jmp 0x41c0c1
lea eax, [ebp - 0x18]
push eax
push dword [ebp + 0x10]
push 0
push 0
push dword [ebp + 0xc]
push dword [ebp - 0x14]
call dword [sym.imp.ADVAPI32.dll_RegQueryValueExW]
push dword [ebp - 0x14]
mov esi, dword [sym.imp.ADVAPI32.dll_RegCloseKey]
call esi
push dword [ebp - 0x10]
call esi
mov eax, dword [ebp - 0x3c]
mov esi, dword [sym.imp.KERNEL32.dll_FreeLibrary]
test eax, eax
je 0x41c0d1
push eax
call esi
mov eax, dword [ebp - 0x38]
test eax, eax
je 0x41c0db
push eax
call esi
mov ecx, dword [ebp - 0xc]
mov dword fs:[0], ecx
pop ecx
pop esi
mov esp, ebp
pop ebp
ret 0xc
Function at 0x41d8f0
Capabilities:
Terminate thread

Disassembly:
push ebp
mov ebp, esp
push 0xffffffffffffffff
push 0x59e630
mov eax, dword fs:[0]
push eax
sub esp, 0x24
mov eax, dword [0x627a40]
xor eax, ebp
mov dword [ebp - 0x10], eax
push ebx
push esi
push edi
push eax
lea eax, [ebp - 0xc]
mov dword fs:[0], eax
mov edi, ecx
mov dword [ebp - 0x30], edi
cmp dword [edi + 8], 0
je 0x41d988
cmp byte [edi + 1], 0
je 0x41d988
call fcn.0041ee00
mov ebx, dword [sym.imp.KERNEL32.dll_Sleep]
xor esi, esi
nop dword [eax]
cmp esi, 0x14
jl 0x41d94b
cmp byte [edi + 3], 0
je 0x41d95b
cmp byte [edi + 2], 0
jne 0x41d988
push 0x1f4
inc esi
call ebx
jmp 0x41d940
cmp byte [edi + 2], 0
jne 0x41d988
lea eax, [ebp - 0x2c]
mov dword [ebp - 0x2c], 0
push eax
push dword [edi + 8]
call dword [sym.imp.KERNEL32.dll_GetExitCodeThread]
push dword [ebp - 0x2c]
push dword [edi + 8]
call dword [sym.imp.KERNEL32.dll_TerminateThread]
mov dword [edi + 8], 0
mov eax, dword [edi + 8]
test eax, eax
je 0x41d996
push eax
call dword [sym.imp.KERNEL32.dll_CloseHandle]
lea ebx, [edi + 0x2c]
mov dword [edi + 8], 0
push ebx
mov dword [ebp - 0x2c], ebx
call dword [sym.imp.KERNEL32.dll_EnterCriticalSection]
mov dword [ebp - 4], 0
mov esi, dword [edi + 0xf8]
mov edi, dword [edi + 0xfc]
cmp esi, edi
je 0x41da5d
push 0xffffffffffffffff
push 0
push esi
lea ecx, [ebp - 0x28]
mov dword [ebp - 0x14], 0xf
mov dword [ebp - 0x18], 0
mov byte [ebp - 0x28], 0
call fcn.00407370
mov ecx, dword [ebp - 0x30]
lea eax, [ebp - 0x28]
mov byte [ebp - 4], 1
cmp dword [ebp - 0x14], 0x10
push 0
cmovae eax, dword [ebp - 0x28]
push eax
call fcn.0041eb30
test eax, eax
jne 0x41da09
push 0x61ba44
jmp 0x41da0e
push str.Exit
push 2
call fcn.004223f0
mov byte [ebp - 4], 0
add esp, 8
mov eax, dword [ebp - 0x14]
cmp eax, 0x10
jb 0x41da52
mov ecx, dword [ebp - 0x28]
inc eax
cmp eax, 0x1000
jb 0x41da49
test cl, 0x1f
jne 0x41da80
mov eax, dword [ecx - 4]
cmp eax, ecx
jae 0x41da80
sub ecx, eax
cmp ecx, 4
jb 0x41da80
cmp ecx, 0x23
ja 0x41da80
mov ecx, eax
push ecx
call fcn.00570ea4
add esp, 4
add esi, 0x18
cmp esi, edi
jne 0x41d9c5
push ebx
call dword [sym.imp.KERNEL32.dll_LeaveCriticalSection]
mov ecx, dword [ebp - 0xc]
mov dword fs:[0], ecx
pop ecx
pop edi
pop esi
pop ebx
mov ecx, dword [ebp - 0x10]
xor ecx, ebp
call fcn.00570ea9
mov esp, ebp
pop ebp
call fcn.0057d383
int3
Function at 0x41f5f0
Capabilities:
Check if file exists

Disassembly:
push ebp
mov ebp, esp
sub esp, 0x228
mov eax, dword [0x627a40]
xor eax, ebp
mov dword [ebp - 4], eax
push ebx
push esi
push edi
push 0x20
push str.cae04bc49778d3ec4522cef1584bb459
lea ecx, [ebp - 0x228]
mov dword [ebp - 0x214], 0xf
mov dword [ebp - 0x218], 0
mov byte [ebp - 0x228], 0
call fcn.00407270
cmp dword [ebp - 0x218], 0x100
mov eax, dword [ebp - 0x214]
jbe 0x41f67a
cmp eax, 0x10
jb 0x41f65d
inc eax
lea ecx, [ebp - 0x228]
push eax
push dword [ebp - 0x228]
call fcn.00407760
xchg edi, eax
movsb byte es:[edi], byte [esi]
sub al, 0x34
adc dl, bh
sub eax, dword [esi]
fbstp tbyte [ecx]
movsb byte es:[edi], byte [esi]
movsb byte es:[edi], byte [esi]
sub byte [edx], ah
and dword [0x7ccc7d0d], ebx
dec ecx
retf
cmp eax, 0x10
jb 0x41f692
inc eax
lea ecx, [ebp - 0x228]
push eax
push dword [ebp - 0x228]
call fcn.00407760
push 0x208
lea eax, [ebp - 0x210]
push 0
push eax
call fcn.00576f50
add esp, 0xc
lea eax, [ebp - 0x210]
push 0x619710
push str.C:log_s.log
push eax
call fcn.00408f60
add esp, 0xc
call fcn.00436160
test al, al
je 0x41f6da
xchg edi, eax
adc al, byte [esi - 0x5f]
sub ah, byte [esi + edx*2]
insd dword es:[edi], dx
mov eax, dword [0x6d56242a]
pop ebp
out 0x17, al
and eax, 0x4350f4d1
lea eax, [ebp - 0x210]
push eax
call dword [sym.imp.SHLWAPI.dll_PathFileExistsW]
test eax, eax
je 0x41f6fe
mov al, 1
pop edi
pop esi
pop ebx
mov ecx, dword [ebp - 4]
xor ecx, ebp
call fcn.00570ea9
mov esp, ebp
pop ebp
ret
call fcn.00436320
test al, al
je 0x41f727
sahf
imul byte [ebp + 0x58]
sub eax, 0xbf3a0c40
add ah, byte [ebx + 0x79701ead]
and dword [eax - 0x3f78bca8], esi
mov edi, 0xab1d241e
xchg dl, dh
outsb dx, byte [esi]
fidiv dword [ecx + 0x6804e826]
add dword [eax], eax
call fcn.00435f30
test al, al
je 0x41f74c
nop
or bh, ch
aas
jp 0x41f6cd
and ch, bh
sbb dword [ebp + 0xae4911a], ebx
popal
dec eax
push es
fdiv qword [edx]
xchg ebx, eax
sub esp, ebp
hlt
mov edx, 0x270f
xor ecx, ecx
call fcn.00426820
cmp eax, 0x64
jle 0x41f6eb
call fcn.00435de0
test al, al
je 0x41f777
aad 0xf
cmp al, 0x5e
mov word [ecx], cs
invalid
call fcn.00436400
test al, al
je 0x41f796
mov ebx, 0xbd21e82
mov dh, 0x2f
and al, ch
dec ecx
fstp dword [eax]
xor dword [ecx], 0xfab5515
invalid
mov ecx, dword [ebp - 4]
xor al, al
pop edi
pop esi
xor ecx, ebp
pop ebx
call fcn.00570ea9
mov esp, ebp
pop ebp
ret
Function at 0x420d20
Capabilities:
Write file on windows

Disassembly:
push ebp
mov ebp, esp
sub esp, 0xc
push ebx
push esi
push edi
push 0
push 0x80
push 2
push 0
push 1
push 0x40000000
push ecx
mov dword [ebp - 0xc], edx
call dword [sym.imp.KERNEL32.dll_CreateFileW]
mov ebx, eax
mov dword [ebp - 8], ebx
add byte [ebx - 0x7a27628], cl
cmp ebx, 0xffffffff
je 0x420e0c
call fcn.00435ec0
test al, al
je 0x420d71
adc dword [edi - 0x10], ecx
adc byte cs:[eax - 0x1d], ah
popfd
sti
mov dl, 0x80
call 0x82b39e5c
outsd dx, dword [esi]
add byte [ebx + 0x6af85d], cl
push 0
lea eax, [ebp - 4]
mov dword [ebp - 4], 0
push eax
push dword [ebp + 8]
push dword [ebp - 0xc]
push ebx
call dword [sym.imp.KERNEL32.dll_WriteFile]
push ebx
mov dword [ebp - 0xc], eax
call dword [sym.imp.KERNEL32.dll_CloseHandle]
call fcn.00436860
test al, al
je 0x420db9
jae 0x420d44
stosb byte es:[edi], al
or bl, ch
jmp 0x70f4c0ab
call fcn.004365c0
test al, al
je 0x420dd7
mov al, 0x97
sbb byte [ebx - 0x5df94862], al
add esp, dword [eax]
mov al, 0x28
shr byte [ebx - 0x41], cl
popal
cmpsb byte [esi], byte es:[edi]
imul eax, dword [ebx + 0x14e8befd], 0x8400015a
sal byte [edx + edx - 0x13], 0x3c
xor al, 0xd
and al, 0x1c
sub al, 0x2b
call fcn.004367f0
test al, al
je 0x420df2
in eax, dx
cmp al, 0x34
or eax, 0x2b2c1c24
inc edx
push ebx
push edi
cmp edx, eax
test byte [edi + esi + 0x7d830339], dh
hlt
cmp dword [ebp - 0xc], 0
je 0x420e0c
mov eax, dword [ebp + 8]
cmp eax, dword [ebp - 4]
jne 0x420e0c
mov eax, 1
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret
pop edi
pop esi
xor eax, eax
pop ebx
mov esp, ebp
pop ebp
ret

Function at 0x4214f0
Capabilities:
Access peb ldr_data

Disassembly:
push ebp
mov ebp, esp
push 0xffffffffffffffff
push 0x59cae6
mov eax, dword fs:[0]
push eax
push esi
push edi
mov eax, dword [0x627a40]
xor eax, ebp
push eax
lea eax, [ebp - 0xc]
mov dword fs:[0], eax
mov edi, ecx
push 8
mov dword [edi], vtable.std::basic_streambuf_char__struct_std::char_traits_char__.0
call fcn.00570eba
mov esi, eax
push 1
mov dword [ebp - 4], 0
call fcn.00436d01
mov dword [esi + 4], eax
lea ecx, [edi + 8]
lea eax, [edi + 4]
mov dword [edi + 0x34], esi
mov dword [edi + 0xc], eax
add esp, 8
lea eax, [edi + 0x14]
mov dword [edi + 0x10], ecx
mov dword [edi + 0x1c], eax
lea eax, [edi + 0x18]
mov dword [edi + 0x20], eax
lea eax, [edi + 0x24]
mov dword [edi + 0x2c], eax
lea eax, [edi + 0x28]
mov dword [edi + 0x30], eax
mov dword [ecx], 0
mov eax, dword [edi + 0x20]
mov dword [eax], 0
mov eax, dword [edi + 0x30]
mov dword [eax], 0
mov eax, dword [edi + 0xc]
mov dword [eax], 0
mov eax, dword [edi + 0x1c]
mov dword [eax], 0
mov eax, dword [edi + 0x2c]
mov dword [eax], 0
mov eax, edi
mov ecx, dword [ebp - 0xc]
mov dword fs:[0], ecx
pop ecx
pop edi
pop esi
mov esp, ebp
pop ebp
ret