joyce8/EMBER2024-capa huggingface dataset:
Function at 0x44f8a2
Capabilities:
Create directory

Disassembly:
push ebp
mov ebp, esp
push ecx
push ebx
push esi
mov esi, dword [sym.imp.KERNEL32.dll_lstrlenW]
push edi
push dword [ebp + 8]
mov dword [ebp - 4], 1
call esi
push 2
pop edx
xor ecx, ecx
add eax, edx
mul edx
seto cl
neg ecx
or ecx, eax
push ecx
call fcn.00452087
pop ecx
push dword [ebp + 8]
mov ebx, eax
push ebx
call dword [sym.imp.KERNEL32.dll_lstrcpyW]
push 0x4b4e80
push ebx
call dword [sym.imp.KERNEL32.dll_lstrcatW]
push ebx
mov edi, ebx
call esi
xor esi, esi
mov dword [ebp + 8], eax
test eax, eax
je 0x44f935
push 0x5c
pop ecx
cmp word [edi], cx
jne 0x44f927
xor eax, eax
push eax
push ebx
mov word [edi], ax
call dword [sym.imp.KERNEL32.dll_CreateDirectoryW]
test eax, eax
je 0x44f91e
call dword [sym.imp.KERNEL32.dll_GetLastError]
cmp eax, 0xb7
jne 0x44f931
mov eax, dword [ebp + 8]
push 0x5c
pop ecx
mov word [edi], cx
add edi, 2
inc esi
cmp esi, eax
jb 0x44f8fb
jmp 0x44f935
and dword [ebp - 4], 0
push ebx
call fcn.0045367d
mov eax, dword [ebp - 4]
pop ecx
pop edi
pop esi
pop ebx
leave
ret 4

Function at 0x44f988
Capabilities:
Delete file

Disassembly:
push ebp
mov ebp, esp
sub esp, 0x804
mov eax, dword [0x4e98d0]
xor eax, ebp
mov dword [ebp - 4], eax
push dword [0x4e9798]
mov eax, dword [ebp + 8]
push eax
lea eax, [ebp - 0x804]
push eax
call fcn.0044f76c
xor eax, eax
push eax
push 0x80
push 2
push eax
push eax
push 0xc0000000
lea eax, [ebp - 0x804]
push eax
call dword [sym.imp.KERNEL32.dll_CreateFileW]
cmp eax, 0xffffffff
jne 0x44f9d8
xor eax, eax
jmp 0x44f9ef
push eax
call dword [sym.imp.KERNEL32.dll_CloseHandle]
lea eax, [ebp - 0x804]
push eax
call dword [sym.imp.KERNEL32.dll_DeleteFileW]
xor eax, eax
inc eax
mov ecx, dword [ebp - 4]
xor ecx, ebp
call fcn.004526a3
leave
ret

Function at 0x44f9fb
Capabilities:
Get disk information

Disassembly:
push ebp
mov ebp, esp
sub esp, 0x20c
mov eax, dword [0x4e98d0]
xor eax, ebp
mov dword [ebp - 4], eax
push esi
mov esi, dword [ebp + 8]
push edi
xor eax, eax
push 0x206
mov word [ebp - 0x20c], ax
xor edi, edi
lea eax, [ebp - 0x20a]
push edi
push eax
call fcn.004526c0
add esp, 0xc
lea eax, [ebp - 0x20c]
push esi
push eax
call fcn.00450893
lea eax, [ebp - 0x20c]
push eax
call dword [sym.imp.KERNEL32.dll_lstrlenW]
test eax, eax
je 0x44fa6f
lea eax, [ebp - 0x20c]
push eax
call dword [sym.imp.KERNEL32.dll_GetDriveTypeW]
cmp eax, 2
je 0x44fa68
cmp eax, 5
jne 0x44fa6b
xor edi, edi
inc edi
mov eax, edi
jmp 0x44fa71
xor eax, eax
mov ecx, dword [ebp - 4]
pop edi
xor ecx, ebp
pop esi
call fcn.004526a3
leave
ret 4
Function at 0x44fde7
Capabilities:
Get geographical location

Disassembly:
push ebp
mov ebp, esp
sub esp, 0x4c
mov eax, dword [0x4e98d0]
xor eax, ebp
mov dword [ebp - 4], eax
push esi
mov esi, dword [ebp + 8]
cmp dword [0x4ef8e0], esi
jne 0x44fe0d
mov eax, dword [0x4e979c]
cmp eax, 0xffffffff
jne 0x44fe5f
push 0x14
lea eax, [ebp - 0x2c]
push eax
push 0x1004
push esi
call dword [sym.imp.KERNEL32.dll_GetLocaleInfoW]
test eax, eax
jle 0x44fe5a
lea eax, [ebp - 0x2c]
push eax
call fcn.0045567a
pop ecx
push 2
lea ecx, [ebp - 0x4c]
push ecx
push eax
call dword [sym.imp.GDI32.dll_TranslateCharsetInfo]
test eax, eax
je 0x44fe49
movsx eax, word [ebp - 0x4c]
mov dword [0x4e979c], eax
jmp 0x44fe5f
push 1
push esi
call dword [sym.imp.KERNEL32.dll_IsValidLocale]
test eax, eax
je 0x44fe5a
xor eax, eax
jmp 0x44fe5f
mov eax, dword [0x4e979c]
mov ecx, dword [ebp - 4]
xor ecx, ebp
pop esi
call fcn.004526a3
leave
ret
Function at 0x44fff7
Capabilities:
Get file version info

Disassembly:
push ebp
mov ebp, esp
sub esp, 0x250
mov eax, dword [0x4e98d0]
xor eax, ebp
mov dword [ebp - 4], eax
mov eax, dword [ebp + 0xc]
and dword [ebp - 0x24c], 0
push ebx
mov ebx, dword [ebp + 8]
push esi
mov esi, dword [sym.imp.KERNEL32.dll_lstrcpyW]
push edi
mov edi, dword [ebp + 0x10]
push 0x4c8c5c
push eax
mov dword [ebp - 0x23c], eax
mov dword [ebp - 0x248], edi
call esi
push 0x4c8c5c
push edi
call esi
lea eax, [ebp - 0x24c]
push eax
push ebx
call sub.VERSION.dll_GetFileVersionInfoSizeW
mov edi, eax
test edi, edi
je 0x4501d6
push edi
call fcn.00456706
push edi
mov esi, eax
push 0
push esi
mov dword [ebp - 0x250], esi
call fcn.004526c0
add esp, 0x10
push esi
push edi
xor edi, edi
push edi
push ebx
call sub.VERSION.dll_GetFileVersionInfoW
test eax, eax
je 0x4501cf
push 0x34
lea eax, [ebp - 0x238]
push edi
push eax
mov dword [ebp - 0x240], eax
call fcn.004526c0
add esp, 0xc
lea eax, [ebp - 0x244]
push eax
lea eax, [ebp - 0x240]
push eax
push 0x4b4e80
push esi
mov dword [ebp - 0x244], edi
call sub.VERSION.dll_VerQueryValueW
test eax, eax
je 0x4500ee
mov eax, dword [ebp - 0x240]
mov ecx, dword [eax + 0xc]
mov edx, dword [eax + 8]
movzx eax, cx
push eax
movzx eax, dx
shr ecx, 0x10
push ecx
push eax
shr edx, 0x10
push edx
push str._u._u._u._u
push dword [ebp - 0x23c]
call dword [sym.imp.USER32.dll_wsprintfW]
add esp, 0x18
push 0x34
push edi
push dword [ebp - 0x240]
mov dword [ebp - 0x244], edi
call fcn.004526c0
add esp, 0xc
lea eax, [ebp - 0x244]
push eax
lea eax, [ebp - 0x240]
push eax
push str.VarFileInfoTranslation
push esi
call sub.VERSION.dll_VerQueryValueW
test eax, eax
je 0x4501cf
mov ebx, dword [ebp - 0x244]
xor eax, eax
push 0x1fe
mov word [ebp - 0x204], ax
lea eax, [ebp - 0x202]
push edi
push eax
shr ebx, 2
call fcn.004526c0
mov eax, dword [ebp - 0x240]
add esp, 0xc
test ebx, ebx
jle 0x4501cf
mov esi, eax
and dword [ebp - 0x23c], 0
test edi, edi
jle 0x450167
add esi, 4
push 4
lea eax, [ebp - 0x23c]
push esi
push eax
call fcn.004529d0
movzx eax, word [ebp - 0x23c]
add esp, 0xc
push eax
lea eax, [ebp - 0x204]
test edi, edi
jne 0x45019c
push 0x4b7780
push eax
call dword [sym.imp.USER32.dll_wsprintfW]
add esp, 0xc
jmp 0x4501b1
push dword [ebp - 0x248]
push str._s__u
push eax
call dword [sym.imp.USER32.dll_wsprintfW]
add esp, 0x10
lea eax, [ebp - 0x204]
push eax
push dword [ebp - 0x248]
call dword [sym.imp.KERNEL32.dll_lstrcpyW]
inc edi
cmp edi, ebx
jl 0x450159
mov esi, dword [ebp - 0x250]
push esi
call fcn.00456691
pop ecx
mov ecx, dword [ebp - 4]
pop edi
pop esi
xor ecx, ebp
pop ebx
call fcn.004526a3
leave
ret
Function at 0x45028c
Capabilities:
Compare security identifiers

Disassembly:
push 0x20
mov eax, 0x4ac52f
call fcn.00453742
lea eax, [ebp - 0x1c]
push eax
xor ebx, ebx
push ebx
push 8
mov dword [ebp - 0x18], ebx
mov word [ebp - 0x14], 0x500
call dword [sym.imp.KERNEL32.dll_GetCurrentThread]
push eax
call dword [sym.imp.ADVAPI32.dll_OpenThreadToken]
mov esi, dword [sym.imp.KERNEL32.dll_GetLastError]
test eax, eax
jne 0x4502ef
call esi
cmp eax, 0x3f0
jne 0x4502df
lea eax, [ebp - 0x1c]
push eax
push 8
call dword [sym.imp.KERNEL32.dll_GetCurrentProcess]
push eax
call dword [sym.imp.ADVAPI32.dll_OpenProcessToken]
call esi
cmp eax, 0x78
jne 0x4502eb
xor eax, eax
jmp 0x450396
test eax, eax
je 0x4502e4
mov edi, dword [sym.imp.ADVAPI32.dll_GetTokenInformation]
lea eax, [ebp - 0x20]
push eax
push ebx
push ebx
push 2
push dword [ebp - 0x1c]
call edi
test eax, eax
jne 0x4502e4
call esi
cmp eax, 0x7a
jne 0x4502e4
push dword [ebp - 0x20]
call fcn.004545d7
mov esi, eax
pop ecx
mov dword [ebp - 0x2c], esi
mov dword [ebp - 4], ebx
lea eax, [ebp - 0x20]
push eax
push dword [ebp - 0x20]
push esi
push 2
push dword [ebp - 0x1c]
call edi
test eax, eax
je 0x450389
lea eax, [ebp - 0x28]
push eax
push ebx
push ebx
push ebx
push ebx
push ebx
push ebx
push 0x220
push 0x20
push 2
lea eax, [ebp - 0x18]
push eax
call dword [sym.imp.ADVAPI32.dll_AllocateAndInitializeSid]
test eax, eax
je 0x450389
mov edi, ebx
cmp dword [esi], ebx
jbe 0x450380
lea eax, [esi + 4]
mov dword [ebp - 0x24], eax
push dword [ebp - 0x28]
push dword [eax]
call dword [sym.imp.ADVAPI32.dll_EqualSid]
test eax, eax
jne 0x45037d
mov eax, dword [ebp - 0x24]
inc edi
add eax, 8
mov dword [ebp - 0x24], eax
cmp edi, dword [esi]
jb 0x45035e
jmp 0x450380
xor ebx, ebx
inc ebx
push dword [ebp - 0x28]
call dword [sym.imp.ADVAPI32.dll_FreeSid]
or dword [ebp - 4], 0xffffffff
push esi
call fcn.0045269e
pop ecx
mov eax, ebx
call fcn.004536f1
ret
Function at 0x4503ae
Capabilities:
Create process on windows

Disassembly:
push 0x894
mov eax, 0x4ac56a
call fcn.00453742
mov esi, dword [ebp + 8]
push 0x10
xor ebx, ebx
lea eax, [ebp - 0x85c]
push ebx
push eax
call fcn.004526c0
push 0x44
pop edi
push edi
lea eax, [ebp - 0x8a0]
push ebx
push eax
call fcn.004526c0
mov dword [ebp - 0x8a0], edi
xor edi, edi
xor eax, eax
inc edi
add esp, 0x18
mov dword [ebp - 0x874], edi
mov word [ebp - 0x870], ax
cmp dword [ebp + 0xc], eax
je 0x450409
mov word [ebp - 0x870], di
push esi
lea eax, [ebp - 0x810]
push eax
call dword [sym.imp.KERNEL32.dll_lstrcpyW]
push edi
lea eax, [ebp - 0x841]
push eax
lea eax, [ebp - 0x810]
push eax
lea ecx, [ebp - 0x840]
call fcn.00402ca0
mov dword [ebp - 4], ebx
add eax, 4
cmp dword [eax + 0x14], 8
jb 0x45043f
mov eax, dword [eax]
push eax
lea eax, [ebp - 0x84c]
push str.Attempting_to_launch__no_wait_:__s
mov edi, str.utils.cpp
push eax
mov dword [ebp - 0x84c], edi
mov dword [ebp - 0x848], 0x488
call fcn.004192e5
add esp, 0xc
or dword [ebp - 4], 0xffffffff
lea ecx, [ebp - 0x840]
call fcn.00401ac0
lea eax, [ebp - 0x85c]
push eax
lea eax, [ebp - 0x8a0]
push eax
push ebx
push ebx
push 0x20
push 1
push ebx
push ebx
lea eax, [ebp - 0x810]
push eax
push ebx
call dword [sym.imp.KERNEL32.dll_CreateProcessW]
mov esi, eax
push esi
lea eax, [ebp - 0x84c]
push str.Launch_result__d
push eax
mov dword [ebp - 0x84c], edi
mov dword [ebp - 0x848], 0x48d
call fcn.004192e5
add esp, 0xc
test esi, esi
je 0x4504d8
push 0x3e8
push dword [ebp - 0x85c]
call dword [sym.imp.USER32.dll_WaitForInputIdle]
mov eax, esi
call fcn.004536f1
ret 8
Function at 0x4504e2
Capabilities:
Create process on windows

Disassembly:
push 0xb8
mov eax, 0x4ac5aa
call fcn.00453742
mov eax, dword [ebp + 8]
xor ecx, ecx
inc ecx
push ecx
lea ecx, [ebp - 0x45]
push ecx
xor ebx, ebx
push eax
lea ecx, [ebp - 0x40]
mov dword [ebp - 0x44], ebx
call fcn.00402ca0
mov dword [ebp - 4], ebx
push 0x10
lea eax, [ebp - 0x64]
push ebx
push eax
call fcn.004526c0
push 0x44
pop esi
push esi
lea eax, [ebp - 0xc4]
push ebx
push eax
call fcn.004526c0
xor edi, edi
xor eax, eax
inc edi
add esp, 0x18
mov dword [ebp - 0xc4], esi
mov dword [ebp - 0x98], edi
mov word [ebp - 0x94], ax
cmp dword [ebp + 0xc], eax
je 0x450551
mov word [ebp - 0x94], di
cmp dword [ebp - 0x28], 8
lea eax, [ebp - 0x3c]
cmovae eax, dword [ebp - 0x3c]
push eax
lea eax, [ebp - 0x50]
push str.Attempting_to_launch:__s
push eax
mov dword [ebp - 0x50], str.utils.cpp
mov dword [ebp - 0x4c], 0x446
call fcn.004192e5
add esp, 0xc
lea eax, [ebp - 0x54]
push dword [ebp - 0x2c]
lea ecx, [ebp - 0x40]
push eax
call fcn.00402fe0
xor ecx, ecx
inc ecx
mov byte [ebp - 4], cl
mov byte [eax + 4], cl
mov ecx, dword [eax]
call fcn.00403d20
lea ecx, [ebp - 0x64]
push ecx
lea ecx, [ebp - 0xc4]
push ecx
push ebx
push ebx
push 0x20
push ebx
push ebx
push ebx
push dword [eax]
push ebx
call dword [sym.imp.KERNEL32.dll_CreateProcessW]
mov esi, eax
mov byte [ebp - 4], bl
lea ecx, [ebp - 0x54]
call fcn.00403980
test esi, esi
je 0x450653
mov esi, dword [sym.imp.USER32.dll_MsgWaitForMultipleObjects]
xor edi, edi
inc edi
jmp 0x4505fa
cmp eax, edi
jne 0x45060d
push ebx
push ebx
push ebx
push ebx
lea eax, [ebp - 0x80]
push eax
call dword [sym.imp.USER32.dll_PeekMessageW]
cmp dword [ebp - 0x7c], 0x11
je 0x45060d
cmp dword [ebp - 0x7c], 0x10
je 0x45060d
cmp dword [ebp - 0x7c], 0x12
je 0x45060d
push 0x4ff
push 0xffffffffffffffff
push ebx
lea eax, [ebp - 0x64]
push eax
push edi
call esi
test eax, eax
jne 0x4505d6
lea eax, [ebp - 0x44]
push eax
push dword [ebp - 0x64]
call dword [sym.imp.KERNEL32.dll_GetExitCodeProcess]
mov eax, dword [ebp - 0x44]
push dword [ebp - 0x64]
mov dword [0x4ef824], eax
call dword [sym.imp.KERNEL32.dll_CloseHandle]
push dword [ebp - 0x44]
mov dword [ebp - 0x50], str.utils.cpp
push eax
lea eax, [ebp - 0x50]
push str.Launch_result__d__exit_code__d
push eax
mov dword [ebp - 0x4c], 0x467
call fcn.004192e5
mov esi, dword [ebp - 0x44]
add esp, 0x10
jmp 0x450658
mov esi, 0xcccccccc
or dword [ebp - 4], 0xffffffff
lea ecx, [ebp - 0x40]
call fcn.00401ac0
mov eax, esi
call fcn.004536f1
ret 8
Function at 0x45066e
Capabilities:
Create process on windows

Disassembly:
push ebp
mov ebp, esp
sub esp, 0x60
push ebx
push 0x38
xor ebx, ebx
lea eax, [ebp - 0x5c]
push ebx
push eax
call fcn.004526c0
mov eax, dword [ebp + 8]
mov dword [ebp - 0x50], eax
mov eax, dword [ebp + 0xc]
mov dword [ebp - 0x4c], eax
xor eax, eax
add esp, 0xc
cmp dword [ebp + 0x10], eax
mov dword [ebp - 4], ebx
setne al
mov dword [ebp - 8], 0xcccccccc
mov dword [ebp - 0x60], 0x3c
mov dword [ebp - 0x48], ebx
mov dword [ebp - 0x58], ebx
mov dword [ebp - 0x54], ebx
mov dword [ebp - 0x5c], 0x40
mov dword [ebp - 0x44], eax
lea eax, [ebp - 0x60]
push eax
call dword [sym.imp.SHELL32.dll_ShellExecuteExW]
mov ecx, dword [ebp - 4]
test eax, eax
cmovne ecx, dword [ebp - 0x28]
mov dword [ebp - 4], ecx
test ecx, ecx
je 0x45076b
jmp 0x450735
cmp eax, 1
jne 0x45074d
jmp 0x450722
cmp dword [ebp - 0x20], 0xf
je 0x450700
cmp dword [ebp - 0x20], 0x113
jne 0x450714
mov ecx, dword [ebp + 0x14]
push 1
call fcn.00445a63
jmp 0x450714
lea eax, [ebp - 0x24]
push eax
call dword [sym.imp.USER32.dll_TranslateMessage]
lea eax, [ebp - 0x24]
push eax
call dword [sym.imp.USER32.dll_DispatchMessageW]
push ebx
push dword [ebp - 4]
call dword [sym.imp.KERNEL32.dll_WaitForSingleObject]
test eax, eax
je 0x450735
push 1
push ebx
push ebx
push ebx
lea eax, [ebp - 0x24]
push eax
call dword [sym.imp.USER32.dll_PeekMessageW]
test eax, eax
jne 0x4506e5
push 0x4ff
push 0xffffffffffffffff
push ebx
lea eax, [ebp - 4]
push eax
push 1
call dword [sym.imp.USER32.dll_MsgWaitForMultipleObjects]
test eax, eax
jne 0x4506de
lea eax, [ebp - 8]
push eax
push dword [ebp - 4]
call dword [sym.imp.KERNEL32.dll_GetExitCodeProcess]
mov eax, dword [ebp - 8]
push dword [ebp - 4]
mov dword [0x4ef824], eax
call dword [sym.imp.KERNEL32.dll_CloseHandle]
mov eax, dword [ebp - 8]
pop ebx
leave
ret 0x10

Function at 0x450a57
Capabilities:
Delete directory

Disassembly:
push 8
mov eax, 0x4ac681
call fcn.0045370f
push 8
sub esp, 0x30
mov ecx, esp
mov dword [ebp - 0x14], esp
xor ebx, ebx
inc ebx
push ebx
lea eax, [ebp - 0xd]
push eax
push dword [ebp + 8]
xor edi, edi
call fcn.004115c6
and dword [ebp - 4], edi
or dword [ebp - 4], 0xffffffff
call fcn.00482620
add esp, 0x34
test al, al
je 0x450ab3
push 0x8001
call dword [sym.imp.KERNEL32.dll_SetErrorMode]
push dword [ebp + 8]
call dword [sym.imp.KERNEL32.dll_RemoveDirectoryW]
test eax, eax
push 0
cmovne edi, ebx
call dword [sym.imp.KERNEL32.dll_SetErrorMode]
mov eax, edi
call fcn.004536dd
ret 4
Function at 0x450abd
Capabilities:
Delete file
Set file attributes

Disassembly:
push 8
mov eax, 0x4ac6a4
call fcn.0045370f
push 4
sub esp, 0x30
mov ecx, esp
mov dword [ebp - 0x14], esp
xor esi, esi
inc esi
push esi
lea eax, [ebp - 0xd]
push eax
push dword [ebp + 8]
call fcn.004115c6
and dword [ebp - 4], 0
or dword [ebp - 4], 0xffffffff
call fcn.00482620
add esp, 0x34
test al, al
jne 0x450afb
mov eax, esi
jmp 0x450b3b
push dword [ebp + 8]
xor edi, edi
call fcn.0044fb00
test eax, eax
jne 0x450b39
mov esi, dword [sym.imp.KERNEL32.dll_SetErrorMode]
push 0x8001
call esi
push 0x80
push dword [ebp + 8]
call dword [sym.imp.KERNEL32.dll_SetFileAttributesW]
push dword [ebp + 8]
call dword [sym.imp.KERNEL32.dll_DeleteFileW]
push 1
test eax, eax
pop eax
push 0
cmovne edi, eax
call esi
mov eax, edi
call fcn.004536dd
ret 4
Function at 0x46616e
Capabilities:
Link many functions at runtime
Print debug messages

Disassembly:
push ebp
mov ebp, esp
sub esp, 0x24
mov eax, dword [0x4e98d0]
xor eax, ebp
mov dword [ebp - 4], eax
mov eax, dword [ebp + 8]
push ebx
mov ebx, dword [sym.imp.KERNEL32.dll_EncodePointer]
push esi
push edi
mov dword [ebp - 0x1c], eax
mov eax, dword [ebp + 0xc]
xor edi, edi
push edi
mov dword [ebp - 0x20], eax
call ebx
mov esi, eax
mov dword [ebp - 0x18], esi
call fcn.00461368
mov dword [ebp - 0x14], eax
cmp dword [0x4f0700], edi
jne 0x46625f
push 0x800
push edi
push 0x4bea88
call dword [sym.imp.KERNEL32.dll_LoadLibraryExW]
mov esi, eax
test esi, esi
jne 0x4661ec
call dword [sym.imp.KERNEL32.dll_GetLastError]
cmp eax, 0x57
jne 0x46633f
push 0x4bea88
call dword [sym.imp.KERNEL32.dll_LoadLibraryW]
mov esi, eax
test esi, esi
je 0x46633f
push 0x4beaa0
push esi
call dword [sym.imp.KERNEL32.dll_GetProcAddress]
test eax, eax
je 0x46633f
push eax
call ebx
push str.GetActiveWindow
push esi
mov dword [0x4f0700], eax
call dword [sym.imp.KERNEL32.dll_GetProcAddress]
push eax
call ebx
push str.GetLastActivePopup
push esi
mov dword [0x4f0704], eax
call dword [sym.imp.KERNEL32.dll_GetProcAddress]
push eax
call ebx
push str.GetUserObjectInformationW
push esi
mov dword [0x4f0708], eax
call dword [sym.imp.KERNEL32.dll_GetProcAddress]
push eax
call ebx
mov dword [0x4f0710], eax
test eax, eax
je 0x46625c
push str.GetProcessWindowStation
push esi
call dword [sym.imp.KERNEL32.dll_GetProcAddress]
push eax
call ebx
mov dword [0x4f070c], eax
mov esi, dword [ebp - 0x18]
call dword [sym.imp.KERNEL32.dll_IsDebuggerPresent]
test eax, eax
je 0x466284
mov eax, dword [ebp - 0x1c]
test eax, eax
je 0x466277
push eax
call dword [sym.imp.KERNEL32.dll_OutputDebugStringW]
cmp dword [ebp - 0x14], edi
je 0x466299
push 4
pop eax
jmp 0x466341
cmp dword [ebp - 0x14], edi
je 0x466299
push dword [0x4f0700]
call dword [sym.imp.KERNEL32.dll_DecodePointer]
push 3
jmp 0x46627e
mov eax, dword [0x4f070c]
mov ebx, dword [sym.imp.KERNEL32.dll_DecodePointer]
cmp eax, esi
je 0x4662f7
cmp dword [0x4f0710], esi
je 0x4662f7
push eax
call ebx
push dword [0x4f0710]
mov dword [ebp - 0x14], eax
call ebx
mov ecx, dword [ebp - 0x14]
mov dword [ebp - 0x18], eax
test ecx, ecx
je 0x4662f7
test eax, eax
je 0x4662f7
call ecx
test eax, eax
je 0x4662ec
lea ecx, [ebp - 0x24]
push ecx
push 0xc
lea ecx, [ebp - 0x10]
push ecx
push 1
push eax
call dword [ebp - 0x18]
test eax, eax
je 0x4662ec
test byte [ebp - 8], 1
jne 0x4662f7
mov esi, dword [ebp + 0x10]
or esi, 0x200000
jmp 0x466327
mov eax, dword [0x4f0704]
cmp eax, esi
je 0x466324
push eax
call ebx
test eax, eax
je 0x466324
call eax
mov edi, eax
test edi, edi
je 0x466324
mov eax, dword [0x4f0708]
cmp eax, esi
je 0x466324
push eax
call ebx
test eax, eax
je 0x466324
push edi
call eax
mov edi, eax
mov esi, dword [ebp + 0x10]
push dword [0x4f0700]
call ebx
test eax, eax
je 0x46633f
push esi
push dword [ebp - 0x20]
push dword [ebp - 0x1c]
push edi
call eax
jmp 0x466341
xor eax, eax
mov ecx, dword [ebp - 4]
pop edi
pop esi
xor ecx, ebp
pop ebx
call fcn.004526a3
leave
ret
Function at 0x475b38
Capabilities:
Get geographical location

Disassembly:
push ebp
mov ebp, esp
push ecx
push esi
push edi
call fcn.00458349
mov esi, dword [ebp + 8]
push 2
mov edi, eax
lea eax, [ebp - 4]
push eax
mov ecx, esi
and ecx, 0x3ff
push 0x20000001
or ecx, 0x400
push ecx
call dword [sym.imp.KERNEL32.dll_GetLocaleInfoW]
test eax, eax
jne 0x475b70
xor eax, eax
jmp 0x475b9c
cmp esi, dword [ebp - 4]
je 0x475b99
cmp dword [ebp + 0xc], 0
je 0x475b99
push dword [edi + 0x9c]
call fcn.00475746
push dword [edi + 0x9c]
mov esi, eax
call fcn.00453664
pop ecx
pop ecx
cmp esi, eax
je 0x475b6c
xor eax, eax
inc eax
pop edi
pop esi
leave
ret
Function at 0x47e207
Capabilities:
Read file on windows

Disassembly:
push 0x10c
mov eax, 0x4ac867
call fcn.00453742
mov esi, ecx
mov eax, dword [ebp + 0xc]
mov ecx, dword [esi + 4]
mov edx, dword [ebp + 8]
xor edi, edi
xor ebx, ebx
inc edi
cmp eax, 0xffffffff
cmove eax, edi
mov dword [ebp - 0x118], ebx
test ecx, ecx
je 0x47e28c
lea edi, [ebp - 0x118]
push edi
push eax
push edx
call fcn.00492703
test al, al
jne 0x47e2de
push ebx
lea eax, [esi + 0xc]
push eax
lea ecx, [ebp - 0x70]
mov dword [ebp - 0x70], 0x4b7b38
mov dword [ebp - 0x48], 0x4b7b40
call fcn.0041122d
push 1
lea eax, [ebp - 0x70]
push eax
lea ecx, [ebp - 0x114]
mov dword [ebp - 4], ebx
call fcn.0044243e
push 0x4dea64
lea eax, [ebp - 0x114]
push eax
call fcn.00453682
push ebx
lea ecx, [ebp - 0x118]
push ecx
push eax
push edx
push dword [esi + 8]
call dword [sym.imp.KERNEL32.dll_ReadFile]
test eax, eax
jne 0x47e2de
push ebx
lea eax, [esi + 0xc]
push eax
lea ecx, [ebp - 0x40]
mov dword [ebp - 0x40], 0x4b7b38
mov dword [ebp - 0x18], 0x4b7b40
call fcn.0041122d
push edi
lea eax, [ebp - 0x40]
push eax
lea ecx, [ebp - 0xc0]
mov dword [ebp - 4], edi
call fcn.00442244
push 0x4de9f0
lea eax, [ebp - 0xc0]
jmp 0x47e286
mov eax, dword [ebp - 0x118]
call fcn.004536f1
ret 8
Function at 0x47e5c8
Capabilities:
Get common file path

Disassembly:
push 0x78
mov eax, 0x4ac967
call fcn.00453742
mov esi, dword [ebp + 8]
xor ebx, ebx
push ebx
lea eax, [ebp - 0x71]
push eax
lea ecx, [ebp - 0x70]
mov dword [ebp - 0x84], ebx
mov dword [ebp - 0x70], 0x4b7b00
mov dword [ebp - 0x48], 0x4b7b08
call fcn.00403e30
mov edi, 0x104
lea eax, [ebp - 0x80]
push edi
lea ecx, [ebp - 0x70]
push eax
mov dword [ebp - 4], ebx
call fcn.004841a1
cmp dword [ebp + 0xc], 1
jne 0x47e680
mov ecx, dword [eax]
mov byte [ebp - 4], 1
mov byte [eax + 4], 1
call fcn.00415f0c
push edi
push dword [eax]
call dword [sym.imp.KERNEL32.dll_GetWindowsDirectoryW]
mov ebx, eax
neg ebx
lea ecx, [ebp - 0x80]
sbb bl, bl
mov byte [ebp - 4], 0
call fcn.00411bac
inc bl
je 0x47e659
lea ecx, [ebp - 0x2c]
call fcn.00442631
push 0x4e368c
lea eax, [ebp - 0x2c]
push eax
call fcn.00453682
push 0
lea eax, [ebp - 0x71]
push eax
push str.sysnative
lea ecx, [ebp - 0x40]
mov dword [ebp - 0x40], 0x4c8e80
mov dword [ebp - 0x18], 0x4c8e20
call fcn.00411330
mov byte [ebp - 4], 2
jmp 0x47e6d9
cmp dword [ebp + 0xc], 2
jne 0x47e6f3
mov ecx, dword [eax]
mov byte [ebp - 4], 3
mov byte [eax + 4], 1
call fcn.00415f0c
push edi
push dword [eax]
call dword [sym.imp.KERNEL32.dll_GetWindowsDirectoryW]
mov ebx, eax
neg ebx
lea ecx, [ebp - 0x80]
sbb bl, bl
mov byte [ebp - 4], 0
call fcn.00411bac
inc bl
jne 0x47e643
push 0
lea eax, [ebp - 0x71]
push eax
push str.syswow64
lea ecx, [ebp - 0x40]
mov dword [ebp - 0x40], 0x4c8e80
mov dword [ebp - 0x18], 0x4c8e20
call fcn.00411330
mov byte [ebp - 4], 4
lea eax, [ebp - 0x40]
push eax
lea ecx, [ebp - 0x70]
call fcn.0042c29a
lea ecx, [ebp - 0x40]
mov byte [ebp - 4], 0
call fcn.00401b80
jmp 0x47e725
mov ecx, dword [eax]
mov byte [ebp - 4], 5
mov byte [eax + 4], 1
call fcn.00415f0c
push edi
push dword [eax]
call dword [sym.imp.KERNEL32.dll_GetSystemDirectoryW]
mov ebx, eax
neg ebx
lea ecx, [ebp - 0x80]
sbb bl, bl
mov byte [ebp - 4], 0
call fcn.00411bac
inc bl
jne 0x47e643
push 0x4b4e80
lea ecx, [ebp - 0x70]
call fcn.0047fb40
push 0
push eax
mov ecx, esi
mov dword [esi], 0x4b7b00
mov dword [esi + 0x28], 0x4b7b08
call fcn.0041122d
lea ecx, [ebp - 0x70]
call fcn.00401b80
mov eax, esi
call fcn.004536f1
ret

Function at 0x47e9e6
Capabilities:
Write file on windows

Disassembly:
push 0x88
mov eax, 0x4aca38
call fcn.00453742
mov esi, ecx
mov eax, dword [ebp + 0xc]
mov edx, dword [ebp + 8]
xor ebx, ebx
push 0
inc ebx
cmp eax, 0xffffffff
lea ecx, [ebp - 0x94]
push ecx
cmove eax, ebx
push eax
push edx
push dword [esi + 8]
call dword [sym.imp.KERNEL32.dll_WriteFile]
test eax, eax
jne 0x47ea5e
push eax
lea eax, [esi + 0xc]
push eax
lea ecx, [ebp - 0x40]
mov dword [ebp - 0x40], 0x4b7b38
mov dword [ebp - 0x18], 0x4b7b40
call fcn.0041122d
and dword [ebp - 4], 0
push ebx
lea eax, [ebp - 0x40]
push eax
lea ecx, [ebp - 0x90]
call fcn.00442244
push 0x4de9f0
lea eax, [ebp - 0x90]
push eax
call fcn.00453682
mov eax, dword [ebp - 0x94]
call fcn.004536f1
ret 8