joyce8/EMBER2024-capa huggingface dataset:
Function at 0x401ee0
Capabilities:
Access peb ldr_data

Disassembly:
push 0xffffffffffffffff
push 0x43a9bd
mov eax, dword fs:[0]
push eax
push ecx
push esi
push edi
mov eax, dword [0x44c274]
xor eax, esp
push eax
lea eax, [esp + 0x10]
mov dword fs:[0], eax
mov esi, ecx
mov dword [esp + 0xc], esi
xor edi, edi
mov dword [esi + 4], edi
mov dword [esi + 8], edi
mov dword [esi + 0x10], edi
mov dword [esp + 0x18], edi
mov dword [esi + 0x18], edi
mov dword [esi + 0x1c], edi
mov eax, dword [0x44e33c]
mov edx, dword [eax + 0xc]
mov ecx, 0x44e33c
mov byte [esp + 0x18], 2
call edx
add eax, 0x10
mov dword [esi + 0x30], eax
mov eax, dword [0x44e33c]
mov edx, dword [eax + 0xc]
mov ecx, 0x44e33c
mov byte [esp + 0x18], 3
call edx
add eax, 0x10
mov dword [esi + 0x34], eax
mov eax, dword [0x44e33c]
mov edx, dword [eax + 0xc]
mov ecx, 0x44e33c
mov byte [esp + 0x18], 4
call edx
add eax, 0x10
mov dword [esi + 0x38], eax
mov eax, dword [0x44e33c]
mov edx, dword [eax + 0xc]
mov ecx, 0x44e33c
mov byte [esp + 0x18], 5
call edx
add eax, 0x10
mov dword [esi + 0x3c], eax
mov dword [esi + 0xc], edi
mov dword [esi + 0x14], edi
mov eax, dword [esi + 0x1c]
cmp eax, edi
mov byte [esp + 0x18], 6
je 0x401fa3
mov dword [esi + 0x1c], edi
mov ecx, dword [eax]
mov edx, dword [ecx + 8]
push eax
call edx
mov dword [esi + 0x24], edi
mov dword [esi + 0x28], edi
mov dword [0x44e0ac], edi
mov dword [esi + 0x2c], edi
mov eax, esi
mov ecx, dword [esp + 0x10]
mov dword fs:[0], ecx
pop ecx
pop edi
pop esi
add esp, 0x10
ret

Function at 0x401fd0
Capabilities:
Terminate thread

Disassembly:
mov eax, dword [0x44e0ac]
test eax, eax
push esi
push edi
mov esi, ecx
je 0x401fe6
push 0
push eax
call dword [sym.imp.KERNEL32.dll_TerminateThread]
mov eax, dword [esi + 0x3c]
sub eax, 0x10
lea ecx, [eax + 0xc]
or edx, 0xffffffff
lock xadd dword [ecx], edx
dec edx
test edx, edx
jg 0x402005
mov ecx, dword [eax]
mov edx, dword [ecx]
push eax
mov eax, dword [edx + 4]
call eax
mov eax, dword [esi + 0x38]
sub eax, 0x10
lea ecx, [eax + 0xc]
or edx, 0xffffffff
lock xadd dword [ecx], edx
dec edx
test edx, edx
jg 0x402024
mov ecx, dword [eax]
mov edx, dword [ecx]
push eax
mov eax, dword [edx + 4]
call eax
mov eax, dword [esi + 0x34]
sub eax, 0x10
lea ecx, [eax + 0xc]
or edx, 0xffffffff
lock xadd dword [ecx], edx
dec edx
test edx, edx
jg 0x402043
mov ecx, dword [eax]
mov edx, dword [ecx]
push eax
mov eax, dword [edx + 4]
call eax
mov eax, dword [esi + 0x30]
sub eax, 0x10
lea ecx, [eax + 0xc]
or edx, 0xffffffff
lock xadd dword [ecx], edx
dec edx
test edx, edx
jg 0x402062
mov ecx, dword [eax]
mov edx, dword [ecx]
push eax
mov eax, dword [edx + 4]
call eax
mov eax, dword [esi + 0x1c]
test eax, eax
je 0x402071
mov ecx, dword [eax]
mov edx, dword [ecx + 8]
push eax
call edx
mov eax, dword [esi + 0x18]
test eax, eax
mov edi, dword [sym.imp.KERNEL32.dll_FreeLibrary]
je 0x402088
push eax
call edi
mov dword [esi + 0x18], 0
mov eax, dword [esi + 8]
test eax, eax
je 0x402099
push eax
call edi
mov dword [esi + 8], 0
pop edi
pop esi
ret
Function at 0x4020a0
Capabilities:
Print debug messages

Disassembly:
push 0xffffffffffffffff
push 0x43a9eb
mov eax, dword fs:[0]
push eax
sub esp, 0x210
mov eax, dword [0x44c274]
xor eax, esp
mov dword [esp + 0x20c], eax
push ebx
push esi
push edi
mov eax, dword [0x44c274]
xor eax, esp
push eax
lea eax, [esp + 0x220]
mov dword fs:[0], eax
lea eax, [esp + 0x10]
push str.antivirusFileGuardNT.dll
push eax
mov edi, ecx
call fcn.0040e530
add esp, 8
xor ebx, ebx
cmp dword [edi + 0x18], ebx
lea esi, [edi + 0x18]
mov dword [esp + 0x228], ebx
jne 0x402196
mov ecx, dword [esp + 0x10]
push 8
push ebx
push ecx
call dword [0x44df00]
xor edx, edx
cmp eax, ebx
setne dl
mov dword [esi], eax
mov eax, edx
cmp eax, ebx
jne 0x402196
push 0x103
lea eax, [esp + 0x19]
push ebx
push eax
mov byte [esp + 0x20], bl
call fcn.00414950
add esp, 0xc
call dword [sym.imp.KERNEL32.dll_GetLastError]
mov ecx, dword [esp + 0x10]
push eax
push ecx
lea edx, [esp + 0x1c]
push 0x43f4d4
push edx
call dword [sym.imp.USER32.dll_wsprintfA]
add esp, 0x10
lea eax, [esp + 0x14]
push eax
call dword [sym.imp.KERNEL32.dll_OutputDebugStringA]
mov eax, dword [esp + 0x10]
add eax, 0xfffffff0
mov dword [esp + 0x228], 0xffffffff
lea ecx, [eax + 0xc]
or edx, 0xffffffff
lock xadd dword [ecx], edx
dec edx
test edx, edx
jg 0x40218c
mov ecx, dword [eax]
mov edx, dword [ecx]
push eax
mov eax, dword [edx + 4]
call eax
mov eax, 0x80004005
jmp 0x402244
lea ecx, [edi + 0x14]
push ecx
push 0x43f4c4
push 0x43f4b4
mov ecx, esi
call fcn.00401ca0
mov esi, eax
cmp esi, ebx
je 0x402214
push 0x103
lea edx, [esp + 0x11d]
push ebx
push edx
mov byte [esp + 0x124], bl
call fcn.00414950
push esi
lea eax, [esp + 0x128]
push str.CFileNotifySink::LoadFileGuarderDll_CreateInstance_Fail__x
push eax
call dword [sym.imp.USER32.dll_wsprintfA]
add esp, 0x18
lea ecx, [esp + 0x118]
push ecx
call dword [sym.imp.KERNEL32.dll_OutputDebugStringA]
mov eax, dword [esp + 0x10]
add eax, 0xfffffff0
mov dword [esp + 0x228], 0xffffffff
lea edx, [eax + 0xc]
or ecx, 0xffffffff
lock xadd dword [edx], ecx
dec ecx
test ecx, ecx
jmp 0x402180
mov eax, dword [esp + 0x10]
add eax, 0xfffffff0
mov dword [edi + 0x24], ebx
mov dword [esp + 0x228], 0xffffffff
lea ecx, [eax + 0xc]
or edx, 0xffffffff
lock xadd dword [ecx], edx
dec edx
test edx, edx
jg 0x402242
mov ecx, dword [eax]
mov edx, dword [ecx]
push eax
mov eax, dword [edx + 4]
call eax
xor eax, eax
mov ecx, dword [esp + 0x220]
mov dword fs:[0], ecx
pop ecx
pop edi
pop esi
pop ebx
mov ecx, dword [esp + 0x20c]
xor ecx, esp
call fcn.004144f2
add esp, 0x21c
ret
Function at 0x402270
Capabilities:
Access peb ldr_data
Get ntdll base address

Disassembly:
push 0xffffffffffffffff
push 0x43aa30
mov eax, dword fs:[0]
push eax
sub esp, 0x1c
mov eax, dword [0x44c274]
xor eax, esp
mov dword [esp + 0x18], eax
push ebx
push ebp
push esi
push edi
mov eax, dword [0x44c274]
xor eax, esp
push eax
lea eax, [esp + 0x30]
mov dword fs:[0], eax
mov eax, dword [0x44e33c]
mov edx, dword [eax + 0xc]
mov edi, ecx
mov ecx, 0x44e33c
mov dword [esp + 0x14], edi
call edx
add eax, 0x10
mov dword [edi], eax
mov ebp, dword [esp + 0x44]
xor ecx, ecx
cmp ebp, ecx
mov dword [esp + 0x38], ecx
jle 0x402413
mov ax, word [esp + 0x40]
cmp ax, cx
mov word [esp + 0x18], ax
mov word [esp + 0x1a], cx
mov esi, 1
je 0x4022ff
lea esi, [esp + 0x18]
lea edx, [esi + 2]
mov edi, edi
mov ax, word [esi]
add esi, 2
cmp ax, cx
jne 0x4022f0
sub esi, edx
sar esi, 1
mov dword [esp + 0x1c], ecx
lea eax, [esi + 1]
mov edx, 2
mul edx
cmp edx, ecx
mov byte [esp + 0x38], 1
ja 0x40231b
cmp eax, 0xffffffff
jbe 0x402325
push 0x80070057
call fcn.00401000
cmp eax, 0xa
jbe 0x402336
push eax
lea ecx, [esp + 0x20]
call fcn.00404ab0
jmp 0x40233e
lea eax, [esp + 0x20]
mov dword [esp + 0x1c], eax
mov eax, dword [esp + 0x1c]
push 2
lea ecx, [esp + 0x1c]
push ecx
lea edx, [esi + esi + 2]
push edx
push eax
call fcn.00413dc1
push eax
call fcn.00401020
mov eax, dword [edi]
mov edx, dword [eax - 8]
mov ebx, esi
imul ebx, ebp
sub eax, 0x10
mov ecx, 1
sub ecx, dword [eax + 0xc]
sub edx, ebx
add esp, 0x14
or ecx, edx
jge 0x402380
push ebx
mov ecx, edi
call fcn.004012f0
cmp esi, 1
mov edi, dword [edi]
jne 0x4023aa
test ebp, ebp
mov eax, dword [esp + 0x1c]
movzx eax, word [eax]
jle 0x4023da
mov dx, ax
mov ecx, ebp
shl edx, 0x10
mov dx, ax
shr ecx, 1
mov eax, edx
rep stosd dword es:[edi], eax
adc ecx, ecx
rep stosw word es:[edi], ax
jmp 0x4023da
test ebp, ebp
mov ecx, edi
jle 0x4023da
xor eax, eax
test esi, esi
jle 0x4023d5
jmp 0x4023c0
mov edx, dword [esp + 0x1c]
mov dx, word [edx + eax*2]
mov word [ecx], dx
add eax, 1
add ecx, 2
cmp eax, esi
jl 0x4023c0
sub ebp, 1
jne 0x4023b0
test ebx, ebx
jl 0x40231b
mov ecx, dword [esp + 0x14]
mov eax, dword [ecx]
cmp ebx, dword [eax - 8]
jg 0x40231b
mov dword [eax - 0xc], ebx
mov eax, dword [ecx]
lea ecx, [esp + 0x20]
mov word [eax + ebx*2], 0
cmp dword [esp + 0x1c], ecx
je 0x40240f
lea ecx, [esp + 0x1c]
call fcn.00404aa0
mov edi, dword [esp + 0x14]
mov eax, edi
mov ecx, dword [esp + 0x30]
mov dword fs:[0], ecx
pop ecx
pop edi
pop esi
pop ebp
pop ebx
mov ecx, dword [esp + 0x18]
xor ecx, esp
call fcn.004144f2
add esp, 0x28
ret 8
Function at 0x403050
Capabilities:
Print debug messages

Disassembly:
push 0xffffffffffffffff
push 0x43ab8b
mov eax, dword fs:[0]
push eax
sub esp, 0x10c
mov eax, dword [0x44c274]
xor eax, esp
mov dword [esp + 0x108], eax
push ebx
push ebp
push esi
push edi
mov eax, dword [0x44c274]
xor eax, esp
push eax
lea eax, [esp + 0x120]
mov dword fs:[0], eax
mov esi, ecx
mov eax, dword [esi + 0x14]
xor ebx, ebx
push eax
lea ecx, [esp + 0x18]
mov dword [esp + 0x18], ebx
call fcn.00401e70
cmp eax, ebx
jge 0x4030b1
cmp eax, 0x80004002
je 0x4030b1
push eax
call fcn.00413c40
mov ebp, dword [esp + 0x14]
cmp ebp, ebx
mov dword [esp + 0x128], ebx
jne 0x4030ca
push 0x80004003
call fcn.00413c40
mov eax, dword [esi + 0x1c]
cmp eax, ebx
lea edi, [esi + 0x1c]
je 0x4030dc
mov ecx, dword [eax]
mov edx, dword [ecx + 8]
push eax
call edx
push edi
mov dword [edi], ebx
mov eax, dword [ebp]
mov ecx, dword [eax + 0x10]
push 0x43f694
push ebp
call ecx
cmp dword [edi], ebx
jne 0x40314c
push 0x103
lea edx, [esp + 0x1d]
push ebx
push edx
mov byte [esp + 0x24], 0
call fcn.00414950
add esp, 0xc
call dword [sym.imp.KERNEL32.dll_GetLastError]
push eax
lea eax, [esp + 0x1c]
push str.CFileNotifySink::FinalConstruct_FindConnectionPoint_Fail__d
push eax
call dword [sym.imp.USER32.dll_wsprintfA]
add esp, 0xc
lea ecx, [esp + 0x18]
push ecx
call dword [sym.imp.KERNEL32.dll_OutputDebugStringA]
mov edx, dword [ebp]
mov eax, dword [edx + 8]
push ebp
mov dword [esp + 0x12c], 0xffffffff
call eax
mov eax, 0x80004005
jmp 0x4031cf
lea ebx, [esi + 0x20]
mov dword [ebx], 0
cmp dword [edi], 0
jne 0x403164
push 0x80004003
call fcn.00413c40
mov eax, dword [edi]
mov ecx, dword [eax]
mov edx, dword [ecx + 0x14]
push ebx
push esi
push eax
call edx
mov eax, dword [esi + 0x14]
mov ecx, dword [eax]
mov edx, dword [ecx + 0x3c]
push eax
call edx
mov eax, dword [esi + 0x14]
mov ecx, dword [eax]
mov edx, dword [ecx + 0x30]
push 2
push 0
push eax
call edx
mov eax, dword [esi + 0x14]
mov ecx, dword [eax]
mov edx, dword [ecx + 0x34]
push 1
push eax
call edx
mov eax, dword [esi + 0x14]
mov ecx, dword [eax]
mov edx, dword [ecx + 0x2c]
push 0x43f638
push eax
call edx
mov ecx, esi
call fcn.00402dc0
mov esi, dword [esi + 0x14]
mov eax, dword [esi]
mov ecx, dword [eax + 0x38]
push esi
call ecx
mov edx, dword [ebp]
mov eax, dword [edx + 8]
push ebp
mov dword [esp + 0x12c], 0xffffffff
call eax
xor eax, eax
mov ecx, dword [esp + 0x120]
mov dword fs:[0], ecx
pop ecx
pop edi
pop esi
pop ebp
pop ebx
mov ecx, dword [esp + 0x108]
xor ecx, esp
call fcn.004144f2
add esp, 0x118
ret
Function at 0x4032c0
Capabilities:
Create thread
Print debug messages

Disassembly:
push ecx
push esi
mov esi, ecx
lea eax, [esi + 0x14]
push eax
push 0x43f4c4
push 4
push 0
push 0x43f4b4
call dword [sym.imp.ole32.dll_CoCreateInstance]
test eax, eax
jne 0x40331b
push str.CFileNotifySink::LoadFileGuarder_CoCreateInstance_Success
call dword [sym.imp.KERNEL32.dll_OutputDebugStringA]
mov dword [esi + 0x24], 1
push edi
mov ecx, esi
call fcn.00403050
mov edi, eax
test edi, edi
jne 0x403315
lea edx, [esi + 0x2c]
push edx
push eax
push esi
push 0x4025a0
push eax
push eax
call fcn.00414ac9
add esp, 0x18
mov eax, edi
pop edi
pop esi
pop ecx
ret
mov ecx, esi
call fcn.004020a0
test eax, eax
je 0x4032f2
lea ecx, [esp + 4]
push ecx
push 0
push esi
push 0x403200
push 0
push 0
mov dword [esp + 0x1c], 0
call fcn.00414ac9
add esp, 0x18
mov dword [0x44e0ac], eax
mov eax, 0x80004005
pop esi
pop ecx
ret

Function at 0x403550
Capabilities:
Check mutex on windows

Disassembly:
push 0
push str.KVPortableMonitor
push 0
push 0
mov dword [0x44e0a8], 0
call dword [0x44df50]
test eax, eax
jne 0x4035a4
push str.Jiangmin_KVPORTABLE_SINGLE
push eax
push eax
call dword [sym.imp.KERNEL32.dll_CreateMutexA]
mov dword [0x44e0a8], eax
call dword [sym.imp.KERNEL32.dll_GetLastError]
cmp eax, 0xb7
jne 0x4035aa
mov eax, dword [0x44e0a8]
push eax
call dword [sym.imp.KERNEL32.dll_ReleaseMutex]
mov dword [0x44e0a8], 0
mov eax, 1
ret
xor eax, eax
ret
Function at 0x40dd90
Capabilities:
Access peb ldr_data
Get ntdll base address

Disassembly:
push 0xffffffffffffffff
push 0x43b739
mov eax, dword fs:[0]
push eax
sub esp, 0xc
push ebx
push ebp
push esi
push edi
mov eax, dword [0x44c274]
xor eax, esp
push eax
lea eax, [esp + 0x20]
mov dword fs:[0], eax
mov ebx, ecx
xor ebp, ebp
mov dword [esp + 0x1c], ebp
mov eax, dword [0x44e33c]
mov edx, dword [eax + 0xc]
mov ecx, 0x44e33c
mov dword [esp + 0x28], ebp
call edx
mov edi, dword [esp + 0x30]
add eax, 0x10
mov dword [edi], eax
lea esi, [ebx + 0x100]
lea ecx, [ebx + 0x28]
mov dword [esp + 0x28], ebp
mov dword [esp + 0x1c], 1
mov dword [esp + 0x14], esi
mov dword [esp + 0x18], ecx
push esi
call fcn.0040cc40
mov eax, dword [esi]
mov ecx, dword [eax - 0xc]
push ecx
push eax
mov ecx, edi
call fcn.004013f0
cmp ebp, 4
je 0x40de54
mov eax, dword [edi]
mov ebx, dword [eax - 0xc]
mov ecx, 1
sub ecx, dword [eax - 4]
mov eax, dword [eax - 8]
lea esi, [ebx + 1]
sub eax, esi
or eax, ecx
jge 0x40de32
push esi
mov ecx, edi
call fcn.004012f0
test esi, esi
mov eax, dword [edi]
mov word [eax + ebx*2], 0x2d
jl 0x40de86
mov eax, dword [edi]
cmp esi, dword [eax - 8]
jg 0x40de86
mov dword [eax - 0xc], esi
mov eax, dword [edi]
mov word [eax + esi*2], 0
mov esi, dword [esp + 0x14]
mov ecx, dword [esp + 0x18]
add ebp, 1
add esi, 4
add ecx, 0x2c
cmp ebp, 5
mov dword [esp + 0x14], esi
mov dword [esp + 0x18], ecx
jl 0x40ddf8
mov eax, edi
mov ecx, dword [esp + 0x20]
mov dword fs:[0], ecx
pop ecx
pop edi
pop esi
pop ebp
pop ebx
add esp, 0x18
ret 4
push 0x80070057
call fcn.00401000
int3
Function at 0x40f61f
Capabilities:
Check if file exists

Disassembly:
sub esp, 0x20c
mov eax, dword [0x44c274]
xor eax, esp
mov dword [esp + 0x208], eax
cmp dword [esp + 0x214], 0x8004
push esi
mov esi, ecx
jne 0x40f680
push 0x206
lea eax, [esp + 0xa]
push 0
push eax
mov word [esp + 0x10], 0
call fcn.00414950
add esp, 0xc
push 0x104
lea ecx, [esp + 8]
push ecx
push 0
call dword [0x44ded0]
lea edx, [esp + 4]
push edx
call dword [sym.imp.SHLWAPI.dll_PathFileExistsW]
test eax, eax
jne 0x40f680
mov ecx, dword [esi + 0x408]
test ecx, ecx
je 0x40f670
push eax
call fcn.00401c50
mov eax, dword [esi + 4]
push 0
push 0
push 0x10
push eax
call dword [0x44df94]
mov ecx, dword [esp + 0x20c]
pop esi
xor ecx, esp
xor eax, eax
call fcn.004144f2
add esp, 0x20c
ret 0x10
Function at 0x412f31
Capabilities:
Get common file path

Disassembly:
mov edi, edi
push ebp
mov ebp, esp
sub esp, 0x52c
mov eax, dword [0x44c274]
mov dword [ebp - 4], eax
mov eax, dword [0x44f18c]
push ebx
xor ebx, ebx
cmp eax, ebx
je 0x412f60
call eax
cmp eax, ebx
mov dword [ebp - 0x528], eax
jne 0x4130ed
push dword [0x44c198]
call dword [sym.imp.KERNEL32.dll_LoadLibraryA]
cmp eax, ebx
mov dword [ebp - 0x528], eax
je 0x4130ed
push esi
mov esi, 0x104
push esi
lea eax, [ebp - 0x41c]
push eax
call dword [sym.imp.KERNEL32.dll_GetSystemDirectoryA]
test eax, eax
jne 0x412f98
mov byte [ebp - 0x41c], bl
push esi
lea eax, [ebp - 0x524]
push eax
call dword [sym.imp.KERNEL32.dll_GetWindowsDirectoryA]
test eax, eax
jne 0x412fb0
mov byte [ebp - 0x524], bl
push edi
mov edi, dword [sym.imp.KERNEL32.dll_GetModuleFileNameA]
push esi
lea eax, [ebp - 0x10c]
push eax
push dword [ebp - 0x528]
call edi
test eax, eax
jne 0x412fd1
mov byte [ebp - 0x10c], bl
push esi
lea eax, [ebp - 0x214]
push eax
push ebx
call dword [sym.imp.KERNEL32.dll_GetModuleHandleA]
push eax
call edi
test eax, eax
pop edi
jne 0x412fee
mov byte [ebp - 0x214], bl
lea eax, [ebp - 0x314]
push eax
lea eax, [ebp - 0x52c]
push eax
lea eax, [ebp - 0x214]
push eax
call fcn.00412e94
lea eax, [ebp - 0x52c]
lea edx, [eax + 1]
mov cl, byte [eax]
inc eax
cmp cl, bl
jne 0x413011
sub eax, edx
mov ecx, eax
lea eax, [ebp - 0x314]
lea esi, [eax + 1]
mov dl, byte [eax]
inc eax
cmp dl, bl
jne 0x413025
sub eax, esi
add eax, ecx
mov byte [ebp + eax - 0x213], bl
lea eax, [ebp - 0x314]
push eax
lea eax, [ebp - 0x52c]
push eax
lea eax, [ebp - 0x10c]
push eax
call fcn.00412e94
lea eax, [ebp - 0x52c]
lea ecx, [eax + 1]
mov dl, byte [eax]
inc eax
cmp dl, bl
jne 0x41305a
sub eax, ecx
lea ecx, [ebp - 0x314]
lea esi, [ecx + 1]
mov dl, byte [ecx]
inc ecx
cmp dl, bl
jne 0x41306c
sub ecx, esi
add ecx, eax
lea eax, [ebp - 0x10c]
push eax
lea eax, [ebp - 0x524]
push eax
mov byte [ebp + ecx - 0x10b], bl
call fcn.00412dc5
test eax, eax
pop esi
jne 0x4130ad
lea eax, [ebp - 0x214]
push eax
lea eax, [ebp - 0x524]
push eax
call fcn.00412dc5
test eax, eax
jne 0x4130db
lea eax, [ebp - 0x10c]
push eax
lea eax, [ebp - 0x41c]
push eax
call fcn.00412dc5
test eax, eax
jne 0x4130ed
lea eax, [ebp - 0x214]
push eax
lea eax, [ebp - 0x41c]
push eax
call fcn.00412dc5
test eax, eax
je 0x4130ed
push dword [ebp - 0x528]
call dword [sym.imp.KERNEL32.dll_FreeLibrary]
mov dword [ebp - 0x528], ebx
mov ecx, dword [ebp - 4]
mov eax, dword [ebp - 0x528]
pop ebx
call fcn.004144f2
leave
ret
Function at 0x4136b8
Capabilities:
Check os version

Disassembly:
push ebp
lea ebp, [esp - 0x78]
sub esp, 0x98
mov eax, dword [0x44c274]
xor eax, ebp
mov dword [ebp + 0x74], eax
push esi
mov esi, ecx
call fcn.004135f7
mov eax, 0x400000
push 0x94
mov dword [esi + 8], eax
mov dword [esi + 4], eax
lea eax, [ebp - 0x20]
push 0
push eax
mov dword [esi], 0x3c
mov byte [esi + 0xc], 0
call fcn.00414950
add esp, 0xc
lea eax, [ebp - 0x20]
push eax
mov dword [ebp - 0x20], 0x94
call dword [sym.imp.KERNEL32.dll_GetVersionExA]
cmp dword [ebp - 0x10], 2
jne 0x413707
cmp dword [ebp - 0x1c], 5
jb 0x41371f
jmp 0x41371b
cmp dword [ebp - 0x10], 1
jne 0x41371f
cmp dword [ebp - 0x1c], 4
ja 0x41371b
jne 0x41371f
cmp dword [ebp - 0x18], 0
jbe 0x41371f
mov byte [esi + 0xc], 1
lea ecx, [esi + 0x18]
mov dword [esi + 0x10], 0x800
mov dword [esi + 0x14], 0x440e58
call fcn.00403600
test eax, eax
jge 0x413740
mov byte [0x44e004], 1
mov ecx, dword [ebp + 0x74]
mov eax, esi
xor ecx, ebp
pop esi
call fcn.004144f2
add ebp, 0x78
leave
ret

Function at 0x413c31
Capabilities:
Allocate or change rwx memory

Disassembly:
cmp dword [0x44e380], 0
push esi
jne 0x413ba4
call fcn.00413acf
test eax, eax
je 0x413be7
mov eax, dword [0x44e380]
cmp eax, 1
jne 0x413bc5
push 0xd
push 0
call dword [sym.imp.KERNEL32.dll_GetProcessHeap]
push eax
call dword [sym.imp.KERNEL32.dll_HeapAlloc]
test eax, eax
je 0x413be7
pop esi
ret
push eax
call dword [0x44e388]
test eax, eax
jne 0x413c2f
push 0x40
mov eax, 0x1000
push eax
push eax
push 0
call dword [sym.imp.KERNEL32.dll_VirtualAlloc]
mov esi, eax
test esi, esi
jne 0x413beb
xor eax, eax
pop esi
ret
mov eax, dword [esi]
push edi
push dword [0x44e380]
call dword [0x44e388]
mov edi, eax
test edi, edi
je 0x413c12
push 0x8000
push 0
push esi
call dword [sym.imp.KERNEL32.dll_VirtualFree]
mov eax, edi
jmp 0x413c2e
lea edi, [esi + 0xff0]
push esi
push dword [0x44e380]
call dword [0x44e384]
add esi, 0x10
cmp esi, edi
jb 0x413c18
mov eax, esi
pop edi
pop esi
ret
jmp 0x413b91

Function at 0x4144f2
Capabilities:
Terminate process

Disassembly:
cmp ecx, dword [0x44c274]
jne 0x4144fc
repz ret
jmp fcn.00418fec
Function at 0x42ba70
Capabilities:
Check if file exists

Disassembly:
push 0xffffffffffffffff
push 0x43c6d8
mov eax, dword fs:[0]
push eax
sub esp, 0x5c
mov eax, dword [0x44c274]
xor eax, esp
mov dword [esp + 0x58], eax
push ebx
push esi
push edi
mov eax, dword [0x44c274]
xor eax, esp
push eax
lea eax, [esp + 0x6c]
mov dword fs:[0], eax
mov edi, dword [esp + 0x7c]
mov esi, ecx
lea ecx, [esp + 0x10]
call fcn.0042f930
xor ebx, ebx
push 0x50
lea eax, [esp + 0x1c]
push ebx
push eax
mov dword [esp + 0x80], 0
mov dword [esp + 0x20], ebx
call fcn.00414950
add esp, 0xc
push edi
lea ecx, [esp + 0x14]
call sub.SHLWAPI.dll_PathFileExistsA
test eax, eax
jne 0x42bafa
lea ecx, [esp + 0x10]
mov dword [esp + 0x74], 0xffffffff
call fcn.0042f410
mov eax, 0xe
jmp 0x42bc18
lea ecx, [esp + 0x18]
push ecx
push edi
mov ecx, esi
call fcn.0042afb0
mov edi, eax
test edi, edi
je 0x42bb25
lea ecx, [esp + 0x10]
mov dword [esp + 0x74], 0xffffffff
call fcn.0042f410
mov eax, edi
jmp 0x42bc18
mov edi, dword [esp + 0x80]
lea edx, [esp + 0x18]
push edx
push edi
mov ecx, esi
call fcn.00427ab0
test eax, eax
jne 0x42bb58
lea ecx, [esp + 0x10]
mov dword [esp + 0x74], 0xffffffff
call fcn.0042f410
mov eax, 0xb
jmp 0x42bc18
lea eax, [esp + 0x14]
push eax
mov ecx, esi
call fcn.00427770
mov ecx, dword [esp + 0x18]
test ecx, ecx
jle 0x42bbb6
mov eax, dword [esp + 0x64]
cmp dword [eax], edi
jne 0x42bb7f
cmp dword [eax + 4], 0
jne 0x42bb7f
mov ebx, 1
add eax, 0x3c
sub ecx, 1
jne 0x42bb70
test ebx, ebx
je 0x42bbb6
push 0
lea ecx, [esp + 0x1c]
push ecx
push edi
mov ecx, esi
call fcn.004279b0
test eax, eax
jne 0x42bbb6
lea ecx, [esp + 0x10]
mov dword [esp + 0x74], 0xffffffff
call fcn.0042f410
mov eax, 9
jmp 0x42bc18
lea edx, [esp + 0x18]
push edx
push edi
mov ecx, esi
call fcn.0042ad40
test eax, eax
jne 0x42bbdf
lea ecx, [esp + 0x10]
mov dword [esp + 0x74], 0xffffffff
call fcn.0042f410
mov eax, 0x10
jmp 0x42bc18
mov eax, dword [esp + 0x14]
test edi, eax
jne 0x42bc05
or eax, edi
push eax
mov ecx, esi
mov dword [esp + 0x18], eax
call fcn.00427890
test eax, eax
jne 0x42bc05
mov eax, dword [esp + 0x14]
push eax
mov ecx, esi
call fcn.00427890
lea ecx, [esp + 0x10]
mov dword [esp + 0x74], 0xffffffff
call fcn.0042f410
xor eax, eax
mov ecx, dword [esp + 0x6c]
mov dword fs:[0], ecx
pop ecx
pop edi
pop esi
pop ebx
mov ecx, dword [esp + 0x58]
xor ecx, esp
call fcn.004144f2
add esp, 0x68
ret 8
Function at 0x42bc40
Capabilities:
Check if file exists

Disassembly:
push 0xffffffffffffffff
push 0x43c708
mov eax, dword fs:[0]
push eax
sub esp, 0x5c
mov eax, dword [0x44c274]
xor eax, esp
mov dword [esp + 0x58], eax
push ebx
push esi
push edi
mov eax, dword [0x44c274]
xor eax, esp
push eax
lea eax, [esp + 0x6c]
mov dword fs:[0], eax
mov edi, dword [esp + 0x7c]
mov esi, ecx
lea ecx, [esp + 0x10]
call fcn.0042f930
xor ebx, ebx
push 0x50
lea eax, [esp + 0x1c]
push ebx
push eax
mov dword [esp + 0x80], 0
mov dword [esp + 0x20], ebx
call fcn.00414950
add esp, 0xc
push edi
lea ecx, [esp + 0x14]
call sub.SHLWAPI.dll_PathFileExistsA
test eax, eax
jne 0x42bcca
lea ecx, [esp + 0x10]
mov dword [esp + 0x74], 0xffffffff
call fcn.0042f410
mov eax, 0xe
jmp 0x42bde8
lea ecx, [esp + 0x18]
push ecx
push edi
mov ecx, esi
call fcn.0042afb0
mov edi, eax
test edi, edi
je 0x42bcf5
lea ecx, [esp + 0x10]
mov dword [esp + 0x74], 0xffffffff
call fcn.0042f410
mov eax, edi
jmp 0x42bde8
mov edi, dword [esp + 0x80]
lea edx, [esp + 0x18]
push edx
push edi
mov ecx, esi
call fcn.00427ab0
test eax, eax
jne 0x42bd28
lea ecx, [esp + 0x10]
mov dword [esp + 0x74], 0xffffffff
call fcn.0042f410
mov eax, 0xb
jmp 0x42bde8
lea eax, [esp + 0x14]
push eax
mov ecx, esi
call fcn.00427770
mov ecx, dword [esp + 0x18]
test ecx, ecx
jle 0x42bd86
mov eax, dword [esp + 0x64]
cmp dword [eax], edi
jne 0x42bd4f
cmp dword [eax + 4], 0
jne 0x42bd4f
mov ebx, 1
add eax, 0x3c
sub ecx, 1
jne 0x42bd40
test ebx, ebx
je 0x42bd86
push 0
lea ecx, [esp + 0x1c]
push ecx
push edi
mov ecx, esi
call fcn.004279b0
test eax, eax
jne 0x42bd86
lea ecx, [esp + 0x10]
mov dword [esp + 0x74], 0xffffffff
call fcn.0042f410
mov eax, 9
jmp 0x42bde8
lea edx, [esp + 0x18]
push edx
push edi
mov ecx, esi
call fcn.0042ad40
test eax, eax
jne 0x42bdaf
lea ecx, [esp + 0x10]
mov dword [esp + 0x74], 0xffffffff
call fcn.0042f410
mov eax, 0x10
jmp 0x42bde8
mov eax, dword [esp + 0x14]
test edi, eax
jne 0x42bdd5
or eax, edi
push eax
mov ecx, esi
mov dword [esp + 0x18], eax
call fcn.00427890
test eax, eax
jne 0x42bdd5
mov eax, dword [esp + 0x14]
push eax
mov ecx, esi
call fcn.00427890
lea ecx, [esp + 0x10]
mov dword [esp + 0x74], 0xffffffff
call fcn.0042f410
xor eax, eax
mov ecx, dword [esp + 0x6c]
mov dword fs:[0], ecx
pop ecx
pop edi
pop esi
pop ebx
mov ecx, dword [esp + 0x58]
xor ecx, esp
call fcn.004144f2
add esp, 0x68
ret 8