joyce8/EMBER2024-capa huggingface dataset:
Function at 0x493587
Capabilities:
Allocate or change rwx memory
Execute shellcode via indirect call

Disassembly:
cmp dword [0x4bccc0], 0
push esi
jne 0x4934fa
call fcn.00493425
test eax, eax
je 0x49353d
mov eax, dword [0x4bccc0]
cmp eax, 1
jne 0x49351b
push 0xd
push 0
call dword [sym.imp.KERNEL32.dll_GetProcessHeap]
push eax
call dword [sym.imp.KERNEL32.dll_HeapAlloc]
test eax, eax
je 0x49353d
pop esi
ret
push eax
call dword [0x4bccc8]
test eax, eax
jne 0x493585
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 0x493541
xor eax, eax
pop esi
ret
mov eax, dword [esi]
push edi
push dword [0x4bccc0]
call dword [0x4bccc8]
mov edi, eax
test edi, edi
je 0x493568
push 0x8000
push 0
push esi
call dword [sym.imp.KERNEL32.dll_VirtualFree]
mov eax, edi
jmp 0x493584
lea edi, [esi + 0xff0]
push esi
push dword [0x4bccc0]
call dword [0x4bccc4]
add esi, 0x10
cmp esi, edi
jb 0x49356e
mov eax, esi
pop edi
pop esi
ret
jmp 0x4934e7

Function at 0x4936d8
Capabilities:
Check os version

Disassembly:
push ebp
lea ebp, [esp - 0x78]
sub esp, 0x98
mov eax, dword [0x4b9658]
xor eax, ebp
mov dword [ebp + 0x74], eax
push esi
mov esi, ecx
call fcn.0049366d
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.00465290
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 0x493727
cmp dword [ebp - 0x1c], 5
jb 0x49373f
jmp 0x49373b
cmp dword [ebp - 0x10], 1
jne 0x49373f
cmp dword [ebp - 0x1c], 4
ja 0x49373b
jne 0x49373f
cmp dword [ebp - 0x18], 0
jbe 0x49373f
mov byte [esi + 0xc], 1
lea ecx, [esi + 0x18]
mov dword [esi + 0x10], 0x800
mov dword [esi + 0x14], 0x4a82c4
call fcn.0040ca60
test eax, eax
jge 0x493760
mov byte [0x4bba60], 1
mov ecx, dword [ebp + 0x74]
mov eax, esi
xor ecx, ebp
pop esi
call fcn.00464d40
add ebp, 0x78
leave
ret
Function at 0x493e00
Capabilities:
Get thread local storage value
Set thread local storage value

Disassembly:
push 0xffffffffffffffff
push 0x49f6e8
mov eax, dword fs:[0]
push eax
push ecx
push ebx
push ebp
push esi
push edi
mov eax, dword [0x4b9658]
xor eax, esp
push eax
lea eax, [esp + 0x18]
mov dword fs:[0], eax
mov eax, dword [0x4bcd64]
test eax, eax
jne 0x493e32
xor esi, esi
jmp 0x493e3b
push eax
call dword [sym.imp.KERNEL32.dll_TlsGetValue]
mov esi, eax
mov dword [esp + 0x14], esi
test esi, esi
mov ebp, dword [sym.imp.KERNEL32.dll_HeapFree]
mov dword [esp + 0x20], 0
je 0x493e7d
cmp dword [esi + 0x14], 0
jne 0x493ebf
cmp dword [esi + 0x10], 0
jne 0x493ec5
push 0x493920
push 0x4bcd5c
call fcn.00493b20
mov eax, dword [0x4bcd64]
add esp, 8
push 0
push eax
call dword [sym.imp.KERNEL32.dll_TlsSetValue]
test esi, esi
mov dword [esp + 0x20], 0xffffffff
je 0x493eab
lea ecx, [esi + 4]
or edx, 0xffffffff
lock xadd dword [ecx], edx
jne 0x493eab
mov eax, dword [esi]
mov edx, dword [eax]
push 0
mov ecx, esi
call edx
push esi
push 0
call dword [sym.imp.KERNEL32.dll_GetProcessHeap]
push eax
call ebp
mov ecx, dword [esp + 0x18]
mov dword fs:[0], ecx
pop ecx
pop edi
pop esi
pop ebp
pop ebx
add esp, 0x10
ret
cmp dword [esi + 0x10], 0
je 0x493f05
mov ebx, dword [esi + 0x10]
mov eax, dword [ebx + 4]
mov dword [esi + 0x10], eax
mov ecx, dword [ebx]
test ecx, ecx
je 0x493ef3
mov edx, dword [ecx]
mov eax, dword [edx + 4]
call eax
mov edi, dword [ebx]
mov edx, dword [edi]
mov eax, dword [edx]
push 0
mov ecx, edi
call eax
push edi
push 0
call dword [sym.imp.KERNEL32.dll_GetProcessHeap]
push eax
call ebp
push ebx
push 0
call dword [sym.imp.KERNEL32.dll_GetProcessHeap]
push eax
call ebp
cmp dword [esi + 0x10], 0
jne 0x493ec5
cmp dword [esi + 0x14], 0
je 0x493e57
mov edi, dword [esi + 0x14]
mov ecx, dword [edi + 0x10]
mov dword [esi + 0x14], ecx
mov ecx, dword [edi + 4]
test ecx, ecx
je 0x493f2a
mov edx, dword [ecx]
mov eax, dword [edi + 0xc]
mov edx, dword [edx + 4]
push eax
call edx
mov ebx, dword [edi + 8]
test ebx, ebx
je 0x493f5b
lea eax, [ebx + 4]
or ecx, 0xffffffff
lock xadd dword [eax], ecx
jne 0x493f5b
mov edx, dword [ebx]
mov eax, dword [edx + 4]
mov ecx, ebx
call eax
lea ecx, [ebx + 8]
or edx, 0xffffffff
lock xadd dword [ecx], edx
jne 0x493f5b
mov eax, dword [ebx]
mov edx, dword [eax + 8]
mov ecx, ebx
call edx
push edi
push 0
call dword [sym.imp.KERNEL32.dll_GetProcessHeap]
push eax
call ebp
cmp dword [esi + 0x14], 0
jne 0x493f0f
jmp 0x493e51
Function at 0x4940d0
Capabilities:
Create thread
Resume thread

Disassembly:
push 0xffffffffffffffff
push 0x49f768
mov eax, dword fs:[0]
push eax
sub esp, 0x10
push ebx
push esi
push edi
mov eax, dword [0x4b9658]
xor eax, esp
push eax
lea eax, [esp + 0x20]
mov dword fs:[0], eax
mov edi, ecx
mov eax, dword [edi]
lea ecx, [eax + 0x1c]
push ecx
push 4
push eax
push 0x493f80
push 0
push 0
call fcn.00466c74
mov ebx, eax
add esp, 0x18
test ebx, ebx
jne 0x49413b
lea ecx, [esp + 0x10]
call fcn.00464de8
mov dword [esp + 0x1c], ebx
mov dword [esp + 0x10], vtable.boost::thread_resource_error.0
lea edx, [esp + 0x10]
push edx
mov dword [esp + 0x2c], ebx
call fcn.00412ad0
mov eax, dword [edi]
add eax, 4
mov ecx, 1
lock xadd dword [eax], ecx
mov esi, dword [edi]
mov eax, dword [esi + 8]
add esi, 8
test eax, eax
je 0x494161
cmp eax, 0xffffffff
je 0x494161
push eax
call dword [sym.imp.KERNEL32.dll_CloseHandle]
mov dword [esi], ebx
mov edx, dword [edi]
mov eax, dword [edx + 8]
push eax
call dword [sym.imp.KERNEL32.dll_ResumeThread]
mov ecx, dword [esp + 0x20]
mov dword fs:[0], ecx
pop ecx
pop edi
pop esi
pop ebx
add esp, 0x1c
ret
Function at 0x495700
Capabilities:
Check if file exists
Get file attributes

Disassembly:
mov eax, dword [esp + 8]
cmp dword [eax + 0x18], 8
jb 0x49570f
mov eax, dword [eax + 4]
jmp 0x495712
add eax, 4
push eax
call dword [sym.imp.KERNEL32.dll_GetFileAttributesW]
cmp eax, 0xffffffff
jne 0x4957aa
push esi
call fcn.00494b80
mov esi, eax
call dword [sym.imp.KERNEL32.dll_GetLastError]
cmp eax, 2
mov ecx, dword [esp + 0x10]
mov dword [ecx + 4], esi
mov dword [ecx], eax
pop esi
je 0x49578f
cmp eax, 3
je 0x49578f
cmp eax, 0x7b
je 0x49578f
cmp eax, 0xf
je 0x49578f
cmp eax, 0x15
je 0x49578f
cmp eax, 0x57
je 0x49578f
cmp eax, 0xa1
je 0x49578f
cmp eax, 0x35
je 0x49578f
cmp eax, 0x20
jne 0x495784
mov eax, dword [0x4bcdc0]
mov dword [ecx], eax
mov edx, dword [0x4bcdc4]
mov eax, dword [esp + 4]
mov dword [ecx + 4], edx
mov dword [eax], 9
ret
mov eax, dword [esp + 4]
mov dword [eax], 0
ret
mov eax, dword [0x4bcdc0]
mov dword [ecx], eax
mov edx, dword [0x4bcdc4]
mov eax, dword [esp + 4]
mov dword [ecx + 4], edx
mov dword [eax], 1
ret
mov edx, dword [0x4bcdc0]
mov ecx, dword [esp + 0xc]
mov dword [ecx], edx
mov edx, dword [0x4bcdc4]
test al, 0x10
mov dword [ecx + 4], edx
lea eax, [esp + 8]
mov dword [esp + 8], 3
jne 0x4957d7
mov dword [esp + 8], 2
mov ecx, dword [eax]
mov eax, dword [esp + 4]
mov dword [eax], ecx
ret
Function at 0x495800
Capabilities:
Check if file exists

Disassembly:
push 0xffffffffffffffff
push 0x49f91b
mov eax, dword fs:[0]
push eax
sub esp, 0x27c
mov eax, dword [0x4b9658]
xor eax, esp
mov dword [esp + 0x278], eax
push ebx
push ebp
push esi
push edi
mov eax, dword [0x4b9658]
xor eax, esp
push eax
lea eax, [esp + 0x290]
mov dword fs:[0], eax
mov ecx, dword [esp + 0x2ac]
mov eax, dword [esp + 0x2a8]
mov edx, dword [esp + 0x2b0]
mov ebp, dword [esp + 0x2a0]
mov ebx, dword [esp + 0x2a4]
mov dword [esp + 0x1c], ecx
mov ecx, dword [esp + 0x2b4]
xor esi, esi
push 0xffffffffffffffff
push esi
mov dword [esp + 0x20], ecx
push eax
lea ecx, [esp + 0x2c]
mov dword [esp + 0x20], edx
mov dword [esp + 0x44], 7
mov dword [esp + 0x40], esi
mov word [esp + 0x30], si
call fcn.00409ad0
mov eax, dword [esp + 0x34]
cmp eax, esi
mov dword [esp + 0x298], esi
je 0x4958c7
lea edi, [eax - 1]
cmp edi, eax
jbe 0x4958ac
call fcn.004651e7
cmp dword [esp + 0x38], 8
mov eax, dword [esp + 0x24]
jae 0x4958bb
lea eax, [esp + 0x24]
cmp word [eax + edi*2], 0x5c
mov edx, 0x4a85c8
je 0x4958cc
mov edx, 0x4a85c0
mov eax, edx
lea edi, [eax + 2]
mov cx, word [eax]
add eax, 2
cmp cx, si
jne 0x4958d1
sub eax, edi
sar eax, 1
push eax
push edx
lea ecx, [esp + 0x28]
call fcn.00409cd0
mov eax, dword [esp + 0x24]
mov edi, 8
cmp dword [esp + 0x38], edi
jae 0x4958fe
lea eax, [esp + 0x24]
lea edx, [esp + 0x3c]
push edx
push eax
call dword [sym.imp.KERNEL32.dll_FindFirstFileW]
cmp eax, 0xffffffff
mov dword [ebx], eax
jne 0x495941
mov edi, dword [sym.imp.KERNEL32.dll_GetLastError]
mov dword [ebx], esi
call edi
cmp eax, 2
je 0x495924
call edi
mov esi, eax
call fcn.00494b80
cmp dword [esp + 0x38], 8
mov dword [ebp], esi
mov dword [ebp + 4], eax
jb 0x4959c3
mov eax, dword [esp + 0x24]
push eax
jmp 0x4959bb
lea eax, [esp + 0x68]
lea edx, [eax + 2]
jmp 0x495950
mov cx, word [eax]
add eax, 2
cmp cx, si
jne 0x495950
sub eax, edx
sar eax, 1
push eax
lea ecx, [esp + 0x6c]
push ecx
mov ecx, dword [esp + 0x24]
call fcn.00409bc0
test byte [esp + 0x3c], 0x10
je 0x49598b
mov edx, dword [esp + 0x14]
mov eax, dword [esp + 0x18]
mov dword [edx], 3
mov dword [eax], 3
jmp 0x49599f
mov ecx, dword [esp + 0x14]
mov edx, dword [esp + 0x18]
mov dword [ecx], 2
mov dword [edx], 2
cmp dword [esp + 0x38], edi
mov eax, dword [0x4bcdc0]
mov dword [ebp], eax
mov ecx, dword [0x4bcdc4]
mov dword [ebp + 4], ecx
jb 0x4959c3
mov edx, dword [esp + 0x24]
push edx
call fcn.00464d79
add esp, 4
mov eax, ebp
mov ecx, dword [esp + 0x290]
mov dword fs:[0], ecx
pop ecx
pop edi
pop esi
pop ebp
pop ebx
mov ecx, dword [esp + 0x278]
xor ecx, esp
call fcn.00464d40
add esp, 0x288
ret
Function at 0x413a26
Capabilities:
Get geographical location

Disassembly:
push ebp
mov ebp, esp
push ecx
and byte [ebp - 4], 0
push edi
xor eax, eax
lea edi, [ebp - 3]
stosb byte es:[edi], al
push 2
lea eax, [ebp - 4]
push eax
push 0x22
call fcn.004167c1
push dword [eax + 0x14]
call dword [sym.imp.KERNEL32.dll_GetLocaleInfoA]
mov al, byte [ebp - 4]
cmp al, 0x30
pop edi
jne 0x413a58
push 2
pop eax
leave
ret
cmp al, 0x31
jne 0x413a61
xor eax, eax
inc eax
leave
ret
sub al, 0x32
neg al
sbb eax, eax
and eax, 0xfffffffd
add eax, 3
leave
ret

Function at 0x41511a
Capabilities:
Terminate process

Disassembly:
push ebp
mov ebp, esp
push esi
xor esi, esi
inc esi
cmp dword [0x42bdb4], esi
push edi
jne 0x41513a
push dword [ebp + 8]
call dword [sym.imp.KERNEL32.dll_GetCurrentProcess]
push eax
call dword [sym.imp.KERNEL32.dll_TerminateProcess]
cmp dword [ebp + 0xc], 0
mov al, byte [ebp + 0x10]
mov dword [0x42bdb0], esi
mov byte [0x42bdac], al
jne 0x4151a0
mov ecx, dword [0x42d494]
test ecx, ecx
je 0x415181
mov eax, dword [0x42d490]
sub eax, 4
cmp eax, ecx
jmp 0x41517a
mov eax, dword [eax]
test eax, eax
je 0x41516c
call eax
mov eax, dword [0x42d490]
sub eax, 4
cmp eax, dword [0x42d494]
mov dword [0x42d490], eax
jae 0x415164
mov eax, 0x42a044
mov esi, 0x42a04c
cmp eax, esi
mov edi, eax
jae 0x4151a0
mov eax, dword [edi]
test eax, eax
je 0x415199
call eax
add edi, 4
cmp edi, esi
jb 0x415191
mov eax, 0x42a050
mov esi, 0x42a058
cmp eax, esi
mov edi, eax
jae 0x4151bf
mov eax, dword [edi]
test eax, eax
je 0x4151b8
call eax
add edi, 4
cmp edi, esi
jb 0x4151b0
cmp dword [ebp + 0x10], 0
pop edi
pop esi
jne 0x4151da
push dword [ebp + 8]
mov dword [0x42bdb4], 1
call fcn.00415085
pop ecx
pop ebp
ret
Function at 0x4152fd
Capabilities:
Accept command line arguments
Parse pe header
Terminate process

Disassembly:
push 0x60
push 0x423648
call fcn.0041b9ac
mov edi, 0x94
mov eax, edi
call fcn.0041ba00
mov dword [ebp - 0x18], esp
mov esi, esp
mov dword [esi], edi
push esi
call dword [sym.imp.KERNEL32.dll_GetVersionExA]
mov ecx, dword [esi + 0x10]
mov dword [0x42bd74], ecx
mov eax, dword [esi + 4]
mov dword [0x42bd80], eax
mov edx, dword [esi + 8]
mov dword [0x42bd84], edx
mov esi, dword [esi + 0xc]
and esi, 0x7fff
mov dword [0x42bd78], esi
cmp ecx, 2
je 0x41535d
or esi, 0x8000
mov dword [0x42bd78], esi
shl eax, 8
add eax, edx
mov dword [0x42bd7c], eax
xor esi, esi
push esi
mov edi, dword [sym.imp.KERNEL32.dll_GetModuleHandleA]
call edi
cmp word [eax], 0x5a4d
jne 0x415398
mov ecx, dword [eax + 0x3c]
add ecx, eax
cmp dword [ecx], 0x4550
jne 0x415398
movzx eax, word [ecx + 0x18]
cmp eax, 0x10b
je 0x4153b0
cmp eax, 0x20b
je 0x41539d
mov dword [ebp - 0x1c], esi
jmp 0x4153c4
cmp dword [ecx + 0x84], 0xe
jbe 0x415398
xor eax, eax
cmp dword [ecx + 0xf8], esi
jmp 0x4153be
cmp dword [ecx + 0x74], 0xe
jbe 0x415398
xor eax, eax
cmp dword [ecx + 0xe8], esi
setne al
mov dword [ebp - 0x1c], eax
push esi
call fcn.0041b95a
pop ecx
test eax, eax
jne 0x4153f0
cmp dword [0x42bdc0], 1
jne 0x4153dd
call fcn.0041b18b
push 0x1c
call fcn.0041b014
push 0xff
call fcn.00415085
pop ecx
pop ecx
call fcn.0041af54
mov dword [ebp - 4], esi
call fcn.0041b795
test eax, eax
jge 0x415409
push 0x1b
call fcn.004152d8
pop ecx
call dword [sym.imp.KERNEL32.dll_GetCommandLineA]
mov dword [0x42d488], eax
call fcn.0041b673
mov dword [0x42bdb8], eax
call fcn.0041b5d1
test eax, eax
jge 0x41542f
push 8
call fcn.004152d8
pop ecx
call fcn.0041b39e
test eax, eax
jge 0x415440
push 9
call fcn.004152d8
pop ecx
call fcn.004150b5
mov dword [ebp - 0x20], eax
cmp eax, esi
je 0x415453
push eax
call fcn.004152d8
pop ecx
mov dword [ebp - 0x38], esi
lea eax, [ebp - 0x64]
push eax
call dword [sym.imp.KERNEL32.dll_GetStartupInfoA]
call fcn.0041b335
mov dword [ebp - 0x68], eax
test byte [ebp - 0x38], 1
je 0x415474
movzx eax, word [ebp - 0x34]
jmp 0x415477
push 0xa
pop eax
push eax
push dword [ebp - 0x68]
push esi
push esi
call edi
push eax
call fcn.00402a5f
mov edi, eax
mov dword [ebp - 0x6c], edi
cmp dword [ebp - 0x1c], esi
jne 0x415495
push edi
call fcn.004151dc
call fcn.004151fe
jmp 0x4154c7
or dword [ebp - 4], 0xffffffff
mov eax, edi
lea esp, [ebp - 0x7c]
call fcn.0041b9e7
ret
Function at 0x41b014
Capabilities:
Write file on windows

Disassembly:
push ebp
mov ebp, esp
sub esp, 0x10c
mov eax, dword [0x42af5c]
xor eax, dword [ebp + 4]
mov ecx, dword [ebp + 8]
push ebx
push esi
mov dword [ebp - 4], eax
xor edx, edx
push edi
xor eax, eax
cmp ecx, dword [eax*8 + 0x42b3e0]
je 0x41b041
inc eax
cmp eax, 0x12
jb 0x41b032
mov esi, eax
shl esi, 3
cmp ecx, dword [esi + 0x42b3e0]
jne 0x41b175
mov eax, dword [0x42bdc0]
cmp eax, 1
je 0x41b150
cmp eax, edx
jne 0x41b071
cmp dword [0x42adc4], 1
je 0x41b150
cmp ecx, 0xfc
je 0x41b175
push 0x104
lea eax, [ebp - 0x10c]
push eax
push edx
mov byte [ebp - 8], dl
call dword [sym.imp.KERNEL32.dll_GetModuleFileNameA]
test eax, eax
jne 0x41b0aa
lea eax, [ebp - 0x10c]
push str._program_name_unknown_
push eax
call fcn.00414f30
pop ecx
pop ecx
lea eax, [ebp - 0x10c]
push eax
lea edi, [ebp - 0x10c]
call fcn.00414050
inc eax
cmp eax, 0x3c
pop ecx
jbe 0x41b0ec
lea eax, [ebp - 0x10c]
push eax
call fcn.00414050
mov edi, eax
lea eax, [ebp - 0x10c]
sub eax, 0x3b
push 3
add edi, eax
push 0x4242c8
push edi
call fcn.0041cf00
add esp, 0x10
push edi
call fcn.00414050
push dword [esi + 0x42b3e4]
mov ebx, eax
call fcn.00414050
lea eax, [ebx + eax + 0x1c]
pop ecx
add eax, 3
pop ecx
and eax, 0xfffffffc
call fcn.0041ba00
mov ebx, esp
push str.Runtime_Error__n_nProgram:
push ebx
call fcn.00414f30
push edi
push ebx
call fcn.00414f40
push 0x4242a8
push ebx
call fcn.00414f40
push dword [esi + 0x42b3e4]
push ebx
call fcn.00414f40
push 0x12010
push str.Microsoft_Visual_C_Runtime_Library
push ebx
call fcn.0041fa0c
add esp, 0x2c
jmp 0x41b175
push edx
lea eax, [ebp + 8]
push eax
lea esi, [esi + 0x42b3e4]
push dword [esi]
call fcn.00414050
pop ecx
push eax
push dword [esi]
push 0xfffffffffffffff4
call dword [sym.imp.KERNEL32.dll_GetStdHandle]
push eax
call dword [sym.imp.KERNEL32.dll_WriteFile]
lea esp, [ebp - 0x118]
mov ecx, dword [ebp - 4]
xor ecx, dword [ebp + 4]
call fcn.004167f8
pop edi
pop esi
pop ebx
leave
ret
Function at 0x41dedd
Capabilities:
Write file on windows

Disassembly:
push ebp
mov ebp, esp
sub esp, 0x41c
mov eax, dword [0x42af5c]
xor eax, dword [ebp + 4]
mov ecx, dword [ebp + 8]
cmp ecx, dword [0x42c104]
push ebx
push esi
mov dword [ebp - 4], eax
push edi
jae 0x41e06d
mov eax, ecx
sar eax, 5
lea ebx, [eax*4 + 0x42c120]
mov eax, dword [ebx]
mov esi, ecx
and esi, 0x1f
shl esi, 3
mov al, byte [eax + esi + 4]
test al, 1
mov dword [ebp - 0x18], ebx
je 0x41e06d
xor edi, edi
cmp dword [ebp + 0x10], edi
mov dword [ebp - 0xc], edi
mov dword [ebp - 0x14], edi
jne 0x41df3c
xor eax, eax
jmp 0x41e081
test al, 0x20
je 0x41df4d
push 2
push edi
push edi
push ecx
call fcn.0041ffa2
add esp, 0x10
mov eax, dword [ebx]
add eax, esi
test byte [eax + 4], 0x80
je 0x41e009
cmp dword [ebp + 0x10], edi
mov eax, dword [ebp + 0xc]
mov dword [ebp - 8], eax
mov dword [ebp + 8], edi
jbe 0x41e041
mov ecx, dword [ebp - 8]
sub ecx, dword [ebp + 0xc]
lea eax, [ebp - 0x41c]
cmp ecx, dword [ebp + 0x10]
jae 0x41dfa3
mov edx, dword [ebp - 8]
inc dword [ebp - 8]
mov dl, byte [edx]
inc ecx
cmp dl, 0xa
jne 0x41df94
inc dword [ebp - 0x14]
mov byte [eax], 0xd
inc eax
inc edi
mov ebx, dword [ebp - 0x18]
mov byte [eax], dl
inc eax
inc edi
cmp edi, 0x400
jl 0x41df79
mov edi, eax
lea eax, [ebp - 0x41c]
sub edi, eax
push 0
lea eax, [ebp - 0x10]
push eax
push edi
lea eax, [ebp - 0x41c]
push eax
mov eax, dword [ebx]
push dword [eax + esi]
call dword [sym.imp.KERNEL32.dll_WriteFile]
test eax, eax
je 0x41dfe3
mov eax, dword [ebp - 0x10]
add dword [ebp - 0xc], eax
cmp eax, edi
jl 0x41dfec
mov eax, dword [ebp - 8]
sub eax, dword [ebp + 0xc]
xor edi, edi
cmp eax, dword [ebp + 0x10]
jb 0x41df6d
jmp 0x41dfee
call dword [sym.imp.KERNEL32.dll_GetLastError]
mov dword [ebp + 8], eax
xor edi, edi
mov eax, dword [ebp - 0xc]
cmp eax, edi
jne 0x41e068
cmp dword [ebp + 8], edi
je 0x41e041
push 5
pop eax
cmp dword [ebp + 8], eax
jne 0x41e036
mov dword [0x42bd6c], eax
jmp 0x41e074
push edi
lea ecx, [ebp - 0x10]
push ecx
push dword [ebp + 0x10]
push dword [ebp + 0xc]
push dword [eax]
call dword [sym.imp.KERNEL32.dll_WriteFile]
test eax, eax
je 0x41e02b
mov eax, dword [ebp - 0x10]
mov dword [ebp + 8], edi
mov dword [ebp - 0xc], eax
jmp 0x41dfee
call dword [sym.imp.KERNEL32.dll_GetLastError]
mov dword [ebp + 8], eax
jmp 0x41dfee
push dword [ebp + 8]
call fcn.0041ff43
pop ecx
jmp 0x41e07e
mov eax, dword [ebx]
test byte [eax + esi + 4], 0x40
je 0x41e056
mov eax, dword [ebp + 0xc]
cmp byte [eax], 0x1a
je 0x41df35
mov dword [0x42bd68], 0x1c
mov dword [0x42bd6c], edi
jmp 0x41e07e
sub eax, dword [ebp - 0x14]
jmp 0x41e081
and dword [0x42bd6c], 0
mov dword [0x42bd68], 9
or eax, 0xffffffff
mov ecx, dword [ebp - 4]
xor ecx, dword [ebp + 4]
pop edi
pop esi
pop ebx
call fcn.004167f8
leave
ret
Function at 0x41ec7d
Capabilities:
Get system information on windows

Disassembly:
push ebp
mov ebp, esp
sub esp, 0x48
push ebx
push esi
push edi
push 4
pop eax
call fcn.0041ba00
mov ebx, esp
push 0x1c
lea eax, [ebp - 0x24]
push eax
push ebx
call dword [sym.imp.KERNEL32.dll_VirtualQuery]
test eax, eax
je 0x41ed12
mov edi, dword [ebp - 0x20]
lea eax, [ebp - 0x48]
push eax
call dword [sym.imp.KERNEL32.dll_GetSystemInfo]
mov eax, dword [ebp - 0x44]
lea esi, [eax - 1]
not esi
and esi, ebx
sub esi, eax
mov dword [ebp - 4], eax
mov eax, dword [0x42bd74]
mov ecx, eax
dec ecx
neg ecx
sbb ecx, ecx
and ecx, 0xffff1000
add ecx, 0x11000
add ecx, edi
cmp esi, ecx
jb 0x41ed12
cmp eax, 1
je 0x41ed2a
mov ebx, edi
mov edi, 0x1000
push 0x1c
lea eax, [ebp - 0x24]
push eax
push ebx
call dword [sym.imp.KERNEL32.dll_VirtualQuery]
test eax, eax
je 0x41ed12
add ebx, dword [ebp - 0x18]
test dword [ebp - 0x14], edi
je 0x41ece7
test byte [ebp - 0xf], 1
mov ebx, dword [ebp - 0x24]
je 0x41ed0e
xor eax, eax
inc eax
jmp 0x41ed46
cmp esi, ebx
jae 0x41ed16
xor eax, eax
jmp 0x41ed46
push 4
push edi
push dword [ebp - 4]
push ebx
call dword [sym.imp.KERNEL32.dll_VirtualAlloc]
mov eax, dword [0x42bd74]
jmp 0x41ed2c
mov ebx, esi
dec eax
neg eax
sbb eax, eax
and eax, 0x103
lea ecx, [ebp - 8]
push ecx
inc eax
push eax
push dword [ebp - 4]
push ebx
call dword [sym.imp.KERNEL32.dll_VirtualProtect]
lea esp, [ebp - 0x54]
pop edi
pop esi
pop ebx
leave
ret

Function at 0x41fa0c
Capabilities:
Link many functions at runtime

Disassembly:
push ebp
mov ebp, esp
sub esp, 0x10
push ebx
xor ebx, ebx
cmp dword [0x42c0c4], ebx
push esi
push edi
jne 0x41fa8c
push str.user32.dll
call dword [sym.imp.KERNEL32.dll_LoadLibraryA]
mov edi, eax
cmp edi, ebx
je 0x41fac7
mov esi, dword [sym.imp.KERNEL32.dll_GetProcAddress]
push 0x425368
push edi
call esi
test eax, eax
mov dword [0x42c0c4], eax
je 0x41fac7
push str.GetActiveWindow
push edi
call esi
push str.GetLastActivePopup
push edi
mov dword [0x42c0c8], eax
call esi
cmp dword [0x42bd74], 2
mov dword [0x42c0cc], eax
jne 0x41fa8c
push str.GetUserObjectInformationA
push edi
call esi
test eax, eax
mov dword [0x42c0d4], eax
je 0x41fa8c
push str.GetProcessWindowStation
push edi
call esi
mov dword [0x42c0d0], eax
mov eax, dword [0x42c0d0]
test eax, eax
je 0x41fad1
call eax
test eax, eax
je 0x41fab8
lea ecx, [ebp - 4]
push ecx
push 0xc
lea ecx, [ebp - 0x10]
push ecx
push 1
push eax
call dword [0x42c0d4]
test eax, eax
je 0x41fab8
test byte [ebp - 8], 1
jne 0x41fad1
cmp dword [0x42bd80], 4
jb 0x41facb
or byte [ebp + 0x12], 0x20
jmp 0x41faf0
xor eax, eax
jmp 0x41fb00
or byte [ebp + 0x12], 4
jmp 0x41faf0
mov eax, dword [0x42c0c8]
test eax, eax
je 0x41faf0
call eax
mov ebx, eax
test ebx, ebx
je 0x41faf0
mov eax, dword [0x42c0cc]
test eax, eax
je 0x41faf0
push ebx
call eax
mov ebx, eax
push dword [ebp + 0x10]
push dword [ebp + 0xc]
push dword [ebp + 8]
push ebx
call dword [0x42c0c4]
pop edi
pop esi
pop ebx
leave
ret
Function at 0x41fcd3
Capabilities:
Get geographical location

Disassembly:
push 0x18
push 0x425380
call fcn.0041b9ac
xor edi, edi
xor ebx, ebx
inc ebx
cmp dword [0x42c0d8], edi
jne 0x41fd17
push edi
push edi
push ebx
push edi
call dword [sym.imp.KERNEL32.dll_GetLocaleInfoW]
test eax, eax
je 0x41fd02
mov dword [0x42c0d8], ebx
jmp 0x41fd17
call dword [sym.imp.KERNEL32.dll_GetLastError]
cmp eax, 0x78
jne 0x41fd17
mov dword [0x42c0d8], 2
mov eax, dword [0x42c0d8]
cmp eax, ebx
jne 0x41fd37
push dword [ebp + 0x14]
push dword [ebp + 0x10]
push dword [ebp + 0xc]
push dword [ebp + 8]
call dword [sym.imp.KERNEL32.dll_GetLocaleInfoW]
jmp 0x41fdfa
cmp eax, 2
je 0x41fd40
cmp eax, edi
jne 0x41fd68
mov dword [ebp - 0x1c], edi
mov dword [ebp - 0x20], edi
cmp dword [ebp + 0x18], edi
jne 0x41fd53
mov eax, dword [0x42bf70]
mov dword [ebp + 0x18], eax
push edi
push edi
push dword [ebp + 0xc]
push dword [ebp + 8]
call dword [sym.imp.KERNEL32.dll_GetLocaleInfoA]
mov dword [ebp - 0x24], eax
cmp eax, edi
jne 0x41fd6f
xor eax, eax
jmp 0x41fdfa
mov dword [ebp - 4], edi
add eax, 3
and eax, 0xfffffffc
call fcn.0041ba00
mov dword [ebp - 0x18], esp
mov esi, esp
mov dword [ebp - 0x28], esi
or dword [ebp - 4], 0xffffffff
jmp 0x41fda2
cmp esi, edi
jne 0x41fdb8
push dword [ebp - 0x24]
call fcn.00415d8b
pop ecx
mov esi, eax
cmp esi, edi
je 0x41fd68
mov dword [ebp - 0x20], ebx
push dword [ebp - 0x24]
push esi
push dword [ebp + 0xc]
push dword [ebp + 8]
call dword [sym.imp.KERNEL32.dll_GetLocaleInfoA]
test eax, eax
je 0x41fdeb
cmp dword [ebp + 0x14], edi
jne 0x41fdd5
push edi
push edi
jmp 0x41fddb
push dword [ebp + 0x14]
push dword [ebp + 0x10]
push 0xffffffffffffffff
push esi
push ebx
push dword [ebp + 0x18]
call dword [sym.imp.KERNEL32.dll_MultiByteToWideChar]
mov dword [ebp - 0x1c], eax
cmp dword [ebp - 0x20], edi
je 0x41fdf7
push esi
call fcn.00415598
pop ecx
mov eax, dword [ebp - 0x1c]
lea esp, [ebp - 0x34]
call fcn.0041b9e7
ret