joyce8/EMBER2024-capa huggingface dataset:
Function at 0x542e98
Capabilities:
Hash data using sha256

Disassembly:
mov dword [eax + 0x48], 0
mov dword [eax + 0x4c], 0
mov dword [eax + 0x40], 0
mov dword [eax + 0x44], 0
mov dword [eax], 0xf3bcc908
mov dword [eax + 4], 0x6a09e667
mov dword [eax + 8], 0x84caa73b
mov dword [eax + 0xc], 0xbb67ae85
mov dword [eax + 0x10], 0xfe94f82b
mov dword [eax + 0x14], 0x3c6ef372
mov dword [eax + 0x18], 0x5f1d36f1
mov dword [eax + 0x1c], 0xa54ff53a
mov dword [eax + 0x20], 0xade682d1
mov dword [eax + 0x24], 0x510e527f
mov dword [eax + 0x28], 0x2b3e6c1f
mov dword [eax + 0x2c], 0x9b05688c
mov dword [eax + 0x30], 0xfb41bd6b
mov dword [eax + 0x34], 0x1f83d9ab
mov dword [eax + 0x38], 0x137e2179
mov dword [eax + 0x3c], 0x5be0cd19
ret

Function at 0x5433fc
Capabilities:
Encode data using xor

Disassembly:
push ebx
push esi
push edi
push ebp
add esp, 0xfffffff4
mov dword [esp], eax
lea esi, [esp + 8]
mov edi, 0x568d50
mov eax, dword [esp]
mov cl, byte [eax + 0x40]
xor eax, eax
mov al, cl
mov ebx, eax
add ebx, 0x10
mov ebp, dword [esp]
mov byte [ebp + ebx], dl
xor ebx, ebx
mov bl, cl
mov ebp, dword [esp]
mov bl, byte [ebp + ebx]
xor bl, dl
push ebx
add eax, 0x20
mov ebx, dword [esp + 4]
add ebx, eax
pop eax
mov byte [ebx], al
xor eax, eax
mov al, cl
mov ebx, dword [esp]
lea eax, [ebx + eax + 0x30]
push eax
mov eax, dword [esp + 4]
xor dl, byte [eax + 0x41]
and dl, 0xff
xor eax, eax
mov al, dl
mov al, byte [edi + eax]
pop edx
xor byte [edx], al
xor eax, eax
mov al, cl
mov edx, dword [esp]
mov al, byte [edx + eax + 0x30]
mov edx, dword [esp]
mov byte [edx + 0x41], al
lea eax, [ecx + 1]
and al, 0xf
mov edx, dword [esp]
mov byte [edx + 0x40], al
mov ecx, eax
test cl, cl
jne 0x54350c
xor edx, edx
mov byte [esp + 4], 0
mov eax, dword [esp]
mov dword [esi], eax
mov cl, 8
xor eax, eax
mov al, dl
mov al, byte [edi + eax]
mov edx, dword [esi]
xor byte [edx], al
mov eax, dword [esi]
mov dl, byte [eax]
inc dword [esi]
xor eax, eax
mov al, dl
mov al, byte [edi + eax]
mov edx, dword [esi]
xor byte [edx], al
mov eax, dword [esi]
mov dl, byte [eax]
inc dword [esi]
xor eax, eax
mov al, dl
mov al, byte [edi + eax]
mov edx, dword [esi]
xor byte [edx], al
mov eax, dword [esi]
mov dl, byte [eax]
inc dword [esi]
xor eax, eax
mov al, dl
mov al, byte [edi + eax]
mov edx, dword [esi]
xor byte [edx], al
mov eax, dword [esi]
mov dl, byte [eax]
inc dword [esi]
xor eax, eax
mov al, dl
mov al, byte [edi + eax]
mov edx, dword [esi]
xor byte [edx], al
mov eax, dword [esi]
mov dl, byte [eax]
inc dword [esi]
xor eax, eax
mov al, dl
mov al, byte [edi + eax]
mov edx, dword [esi]
xor byte [edx], al
mov eax, dword [esi]
mov dl, byte [eax]
inc dword [esi]
dec cl
jne 0x543493
add dl, byte [esp + 4]
inc byte [esp + 4]
cmp byte [esp + 4], 0x12
jne 0x54348c
add esp, 0xc
pop ebp
pop edi
pop esi
pop ebx
ret

Function at 0x5436a8
Capabilities:
Hash data with md5

Disassembly:
xor edx, edx
mov dword [eax + 0x10], edx
xor edx, edx
mov dword [eax + 0x14], edx
mov dword [eax], 0x67452301
mov dword [eax + 4], 0xefcdab89
mov dword [eax + 8], 0x98badcfe
mov dword [eax + 0xc], 0x10325476
ret
Function at 0x40adc0
Capabilities:
Clear file content

Disassembly:
mov eax, 0x1014
push ebp
mov ebp, esp
call fcn.00404730
push ebx
push esi
push edi
mov ebx, dword [ebp + 8]
mov dword [ebp - 4], 0
mov eax, dword [0x4170bc]
cmp ebx, eax
jae 0x40adfb
mov eax, ebx
and eax, 0x1f
mov edx, ebx
sar edx, 5
mov edx, dword [edx*4 + 0x4170c0]
test byte [edx + eax*8 + 4], 1
jne 0x40ae0d
or eax, 0xffffffff
mov dword [0x415c84], 9
jmp 0x40af32
push 1
push 0
push ebx
call fcn.00409fd0
add esp, 0xc
mov dword [ebp - 0xc], eax
cmp eax, 0xffffffff
je 0x40ae37
push 2
push 0
push ebx
call fcn.00409fd0
mov dword [ebp - 8], eax
add esp, 0xc
cmp eax, 0xffffffff
jne 0x40ae3f
or eax, 0xffffffff
jmp 0x40af32
mov eax, dword [ebp + 0xc]
mov esi, eax
sub esi, dword [ebp - 8]
test esi, esi
jle 0x40aee4
mov ecx, 0x1000
xor eax, eax
lea edx, [ebp - 0x1010]
push edi
mov edi, edx
rep stosb byte es:[edi], al
pop edi
mov eax, edx
push 0x8000
push ebx
call fcn.0040b330
add esp, 8
mov dword [ebp - 0x10], eax
mov eax, esi
cmp eax, 0x1000
jb 0x40ae8a
mov dword [ebp - 0x1014], 0x1000
jmp 0x40ae92
mov eax, esi
mov dword [ebp - 0x1014], eax
mov eax, dword [ebp - 0x1014]
push eax
lea eax, [ebp - 0x1010]
push eax
push ebx
call fcn.004086d0
mov edi, eax
add esp, 0xc
cmp eax, 0xffffffff
jne 0x40aecb
call dword [sym.imp.KERNEL32.dll_GetLastError]
cmp eax, 5
jne 0x40aec5
mov dword [0x415c84], 0xd
or dword [ebp - 4], 0xffffffff
jmp 0x40aed5
mov eax, esi
sub eax, edi
test eax, eax
mov esi, eax
jg 0x40ae75
mov eax, dword [ebp - 0x10]
push eax
push ebx
call fcn.0040b330
add esp, 8
jmp 0x40af20
test esi, esi
jge 0x40af20
push 0
mov eax, dword [ebp + 0xc]
push eax
push ebx
call fcn.00409fd0
add esp, 0xc
push ebx
call fcn.00408b00
pop ecx
push eax
call dword [sym.imp.KERNEL32.dll_SetEndOfFile]
test eax, eax
setne al
and eax, 1
dec eax
cmp eax, 0xffffffff
mov dword [ebp - 4], eax
jne 0x40af20
mov dword [0x415c84], 0xd
push 0
mov eax, dword [ebp - 0xc]
push eax
push ebx
call fcn.00409fd0
add esp, 0xc
mov eax, dword [ebp - 4]
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret

Function at 0x79d8cc
Capabilities:
Encode data using xor

Disassembly:
pushal
call 0x79d8d2
pop ebp
sub ebp, 6
sub ebp, 0x39d8cc
jmp 0x79d930
loop 0x79d9a2
mov byte [esi - 0x10], bh
shl dword [edi - 0x17], 1
add al, 0
add byte [eax], al
inc edx
fstp dword [eax - 0x27334714]
cmp dword [eax], eax
jmp 0x79d939
mov eax, 0x39d8cc
add eax, ebp
add eax, 0x93
mov ecx, 0x628
mov edx, 0x38573390
xor byte [eax], dl
inc eax
dec ecx
jne 0x79d950
jmp 0x79d963
cli
sar al, 1
nop
adc byte [eax + 0x5c90f890], 0xbc
nop
mov dword [0x56fc050], eax
push esp
xor byte [eax + 0x5d1bc090], ah
sbb ebx, dword [ecx]
lodsb al, byte [esi]
nop
nop
nop
adc dword [ecx + 0x68], edx
nop
nop
nop
xchg ebx, eax
pop ebp
sub byte [eax + edx*4 - 0x47d56f70], dl
nop
nop
nop
jb 0x79d929
pop eax
sbb edx, dword [ecx]
pushfd
nop
nop
nop
xchg ebx, eax
push ebp
sar al, 0xc0
cmpsb byte [esi], byte es:[edi]
cdq
nop
clc
ljmp 0xb4bc
Function at 0x4073e2
Capabilities:
Encode data using xor
Hash data with crc32

Disassembly:
push ebp
mov ebp, esp
cmp dword [0x461134], 0
jne 0x407420
xor ecx, ecx
push esi
push 8
mov eax, ecx
pop esi
mov edx, eax
and dl, 1
movzx edx, dl
neg edx
sbb edx, edx
and edx, 0xedb88320
shr eax, 1
xor eax, edx
dec esi
jne 0x4073f6
mov dword [ecx*4 + 0x461130], eax
inc ecx
cmp ecx, 0x100
jl 0x4073f1
pop esi
cmp dword [ebp + 0x10], 0
mov eax, dword [ebp + 8]
not eax
jbe 0x40744d
mov ecx, dword [ebp + 0xc]
movzx edx, byte [ecx]
dec dword [ebp + 0x10]
xor edx, eax
and edx, 0xff
shr eax, 8
xor eax, dword [edx*4 + 0x461130]
inc ecx
cmp dword [ebp + 0x10], 0
ja 0x40742e
not eax
pop ebp
ret 0xc

Function at 0x430000
Capabilities:
Encode data using xor
Packed with generic packer

Disassembly:
pushal
nop
nop
nop
nop
nop
call 0x43000c
pop eax
nop
nop
nop
nop
nop
add eax, 0x403daa
nop
sub eax, 0x403d50
nop
nop
mov ebx, dword [eax]
nop
nop
nop
nop
nop
nop
mov ecx, dword [eax + 4]
nop
nop
nop
mov edx, dword [eax + 8]
xor dword [ebx], edx
nop
nop
nop
nop
nop
add ebx, 4
nop
nop
nop
nop
cmp ebx, ecx
nop
nop
nop
nop
jl 0x430030
nop
nop
nop
add eax, 0xc
nop
nop
nop
cmp dword [eax], 0
nop
nop
nop
nop
nop
jne 0x43001e
nop
nop
nop
popal
nop
nop
nop
jmp fcn.00401219

Function at 0x403d61
Capabilities:
Encode data using xor

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

Function at 0x403d61
Capabilities:
Encode data using xor

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

Disassembly:
push ebp
mov ebp, esp
sub esp, 0x20
pushal
call 0x41a54e
pop dword [ebp - 0x10]
mov eax, 0x41a54e
sub dword [ebp - 0x10], eax
mov dword [ebp - 0x20], 0xde069839
sub dword [ebp - 0x20], 0x8fb452ee
mov dword [ebp - 0x1c], 0x5dc8f115
sub dword [ebp - 0x1c], 0x2b95a4d0
mov dword [ebp - 0x18], 0x1d751742
sub dword [ebp - 0x18], 0xd128d314
mov dword [ebp - 0x14], 0x41a720bf
add dword [ebp - 0x14], 0xbe58df41
lea eax, [ebp - 0x20]
push eax
mov eax, 0x87f9931a
sub eax, 0x87ae11c6
add eax, dword [ebp - 0x10]
call dword [eax]
mov dword [ebp - 0x20], 0xf9625a12
add dword [ebp - 0x20], 0x7b100f44
mov dword [ebp - 0x1c], 0x4eebca73
sub dword [ebp - 0x1c], 0xd7f68fe
mov dword [ebp - 0x18], 0x2c280f47
add dword [ebp - 0x18], 0x37475d25
mov dword [ebp - 0x14], 0x6371a292
sub dword [ebp - 0x14], 0x6371a292
lea ebx, [ebp - 0x20]
push ebx
push eax
mov eax, sym.imp.kernel32.dll_GetProcAddress
add eax, dword [ebp - 0x10]
call dword [eax]
push 0x40
push 0x1000
push 0x65b72
push 0
call eax
mov ecx, 0x21d44714
add ecx, 0xde2c0bc7
xor edx, edx
add edx, eax
mov edi, 0x580200
add edi, dword [ebp - 0x10]
mov esi, 0x44140906
add esi, 0xad81897
sub dword [ebp - 8], 0xfdc98588
mov ebx, dword [edi]
add ebx, esi
xor dword [ebp - 4], 0x8e1dae32
mov dword [edx], ebx
sub dword [ebp - 0xc], eax
add edx, 4
add edi, 4
loop 0x41a662
add eax, 0x144d9d7a
sub eax, 0x144c5f3b
xor ebx, ebx
add ebx, eax
add eax, 0x6732793f
add eax, 0x98cd86c6
mov ecx, 0x400000
add ecx, dword [ebp - 0x10]
call ebx
leave
ret
Function at 0x401ee2
Capabilities:
Terminate process

Disassembly:
cmp ecx, dword [0x411280]
jne 0x401eec
repz ret
jmp fcn.00404369

Function at 0x4025e7
Capabilities:
Accept command line arguments
Parse pe header

Disassembly:
push 0x14
push 0x40f530
call fcn.00403770
mov eax, 0x5a4d
cmp word [0x400000], ax
jne 0x4024e7
mov eax, dword [0x40003c]
cmp dword [eax + 0x400000], 0x4550
jne 0x4024e7
mov ecx, 0x10b
cmp word [eax + 0x400018], cx
jne 0x4024e7
cmp dword [eax + 0x400074], 0xe
jbe 0x4024e7
xor ecx, ecx
cmp dword [eax + 0x4000e8], ecx
setne cl
mov dword [ebp - 0x1c], ecx
jmp 0x4024eb
and dword [ebp - 0x1c], 0
push 1
call fcn.00405630
pop ecx
test eax, eax
jne 0x4024ff
push 0x1c
call fcn.00405630
pop ecx
call fcn.00405287
test eax, eax
jne 0x402510
push 0x10
call fcn.00405630
pop ecx
call fcn.00405952
and dword [ebp - 4], 0
call fcn.004032ff
test eax, eax
jge 0x40252a
push 0x1b
call fcn.00405630
pop ecx
call dword [sym.imp.kernel32.dll_GetCommandLineA]
mov dword [0x412ba0], eax
call fcn.00405630
mov dword [0x41203c], eax
call fcn.00405630
test eax, eax
jge 0x402550
push 8
call fcn.00405630
pop ecx
call fcn.00405fde
test eax, eax
jge 0x402561
push 9
call fcn.00405630
pop ecx
push 1
call fcn.00405630
pop ecx
test eax, eax
je 0x402574
push eax
call fcn.00405630
pop ecx
mov eax, dword [0x412018]
mov dword [0x41201c], eax
push eax
push dword [0x412010]
push dword [0x41200c]
call main
add esp, 0xc
mov dword [ebp - 0x20], eax
cmp dword [ebp - 0x1c], 0
jne 0x4025a2
push eax
call fcn.00405630
call fcn.00402400
jmp 0x4025d7
mov dword [ebp - 4], 0xfffffffe
mov eax, dword [ebp - 0x20]
call fcn.004037b5
ret
call fcn.00405630
jmp 0x402495

Function at 0x405630
Capabilities:
Encode data using xor

Disassembly:
push ebp
mov ebp, esp
sub esp, 0x60
pushal
call 0x40563f
pop dword [ebp - 0x50]
mov eax, 0xe38bf78e
sub eax, 0xe34ba14f
sub dword [ebp - 0x50], eax
push 0x40
push 0x1000
push 0x393a6
push 0
mov eax, 0xc3f50b0a
sub eax, 0xc3b42a32
add eax, dword [ebp - 0x50]
call dword [eax]
mov ecx, 0x9ed5e60c
sub ecx, 0x9ed59df6
mov ebx, eax
mov edx, 0xe448d10d
add edx, 0x1bf86ab7
add edx, dword [ebp - 0x50]
mov edi, 0xc278e1c3
add edi, 0xf2ff349b
mov dword [ebp - 0x40], 0xacf93e93
mov esi, dword [edx]
xor dword [ebp - 0x24], edi
xor esi, edi
xor dword [ebp - 0x14], 0x7aec009c
mov dword [ebx], esi
add dword [ebp - 0x24], edx
add ebx, 0xff1dd096
add ebx, 0xe22f6e
add edx, 4
loop 0x40569e
add eax, 0x1132b
mov ebx, eax
add eax, 0x7f05f459
add eax, 0x80fa0bac
mov ecx, 0x6ac29c6d
add ecx, 0x957d6393
add ecx, dword [ebp - 0x50]
call ebx
leave
ret
Function at 0x402f74
Capabilities:
Query or enumerate registry value

Disassembly:
push ebp
mov ebp, esp
add esp, 0xfffffff4
movzx eax, word [0x458020]
mov dword [ebp - 8], eax
lea eax, [ebp - 4]
push eax
push 1
push 0
push 0x40300c
push 0x80000002
call sub.advapi32.dll_RegOpenKeyExA
test eax, eax
jne 0x402fec
xor eax, eax
push ebp
push 0x402fe5
push dword fs:[eax]
mov dword fs:[eax], esp
mov dword [ebp - 0xc], 4
lea eax, [ebp - 0xc]
push eax
lea eax, [ebp - 8]
push eax
push 0
push 0
push 0x403028
mov eax, dword [ebp - 4]
push eax
call sub.advapi32.dll_RegQueryValueExA
xor eax, eax
pop edx
pop ecx
pop ecx
mov dword fs:[eax], edx
push 0x402fec
mov eax, dword [ebp - 4]
push eax
call sub.advapi32.dll_RegCloseKey
ret
mov ax, word [0x458020]
and ax, 0xffc0
mov dx, word [ebp - 8]
and dx, 0x3f
or ax, dx
mov word [0x458020], ax
mov esp, ebp
pop ebp
ret

Function at 0x403cd0
Capabilities:
Write file on windows

Disassembly:
push ecx
cmp byte [0x45a048], 0
je 0x403d31
cmp word [0x45a21c], 0xd7b2
jne 0x403cf9
cmp dword [0x45a224], 0
jbe 0x403cf9
mov eax, 0x45a218
call dword [0x45a234]
push 0
lea eax, [esp + 4]
push eax
push 0x1e
push 0x45806c
push 0xfffffffffffffff5
call sub.KERNEL32.DLL_GetStdHandle_1
push eax
call sub.KERNEL32.DLL_WriteFile_1
push 0
lea eax, [esp + 4]
push eax
push 2
push 0x403d58
push 0xfffffffffffffff5
call sub.KERNEL32.DLL_GetStdHandle_1
push eax
call sub.KERNEL32.DLL_WriteFile_1
pop edx
ret
cmp byte [0x458030], 0
jne 0x403d4d
push 0
push 0x458064
push 0x45806c
push 0
call sub.user32.dll_MessageBoxA_1
pop edx
ret
Function at 0x405108
Capabilities:
Get geographical location
Query or enumerate registry value

Disassembly:
push ebp
mov ebp, esp
add esp, 0xfffffee0
push ebx
push esi
mov dword [ebp - 4], eax
push 0x105
lea eax, [ebp - 0x11d]
push eax
push 0
call sub.KERNEL32.DLL_GetModuleFileNameA_1
mov byte [ebp - 0x12], 0
lea eax, [ebp - 8]
push eax
push 0xf0019
push 0
push 0x405338
push 0x80000001
call sub.advapi32.dll_RegOpenKeyExA
test eax, eax
je 0x40518b
lea eax, [ebp - 8]
push eax
push 0xf0019
push 0
push 0x405338
push 0x80000002
call sub.advapi32.dll_RegOpenKeyExA
test eax, eax
je 0x40518b
lea eax, [ebp - 8]
push eax
push 0xf0019
push 0
push 0x405354
push 0x80000001
call sub.advapi32.dll_RegOpenKeyExA
test eax, eax
jne 0x405214
xor eax, eax
push ebp
push 0x40520d
push dword fs:[eax]
mov dword fs:[eax], esp
mov dword [ebp - 0x18], 5
lea eax, [ebp - 0x11d]
mov edx, 0x105
call fcn.00404f50
lea eax, [ebp - 0x18]
push eax
lea eax, [ebp - 0x12]
push eax
push 0
push 0
lea eax, [ebp - 0x11d]
push eax
mov eax, dword [ebp - 8]
push eax
call sub.advapi32.dll_RegQueryValueExA
test eax, eax
je 0x4051f2
lea eax, [ebp - 0x18]
push eax
lea eax, [ebp - 0x12]
push eax
push 0
push 0
push 0x405374
mov eax, dword [ebp - 8]
push eax
call sub.advapi32.dll_RegQueryValueExA
test eax, eax
je 0x4051f2
mov byte [ebp - 0x12], 0
mov byte [ebp - 0xe], 0
xor eax, eax
pop edx
pop ecx
pop ecx
mov dword fs:[eax], edx
push 0x405214
mov eax, dword [ebp - 8]
push eax
call sub.advapi32.dll_RegCloseKey
ret
push 0x105
mov eax, dword [ebp - 4]
push eax
lea eax, [ebp - 0x11d]
push eax
call sub.KERNEL32.DLL_lstrcpynA
push 5
lea eax, [ebp - 0xd]
push eax
push 3
call sub.KERNEL32.DLL_GetThreadLocale_1
push eax
call sub.KERNEL32.DLL_GetLocaleInfoA_1
xor esi, esi
cmp byte [ebp - 0x11d], 0
je 0x40532e
cmp byte [ebp - 0xd], 0
jne 0x40525b
cmp byte [ebp - 0x12], 0
je 0x40532e
lea eax, [ebp - 0x11d]
push eax
call sub.KERNEL32.DLL_lstrlenA
mov ebx, eax
lea eax, [ebp - 0x11d]
add ebx, eax
jmp 0x405274
dec ebx
cmp byte [ebx], 0x2e
je 0x405283
lea eax, [ebp - 0x11d]
cmp ebx, eax
jne 0x405273
lea eax, [ebp - 0x11d]
cmp ebx, eax
je 0x40532e
inc ebx
cmp byte [ebp - 0x12], 0
je 0x4052c0
mov edx, ebx
sub edx, eax
mov eax, 0x105
sub eax, edx
push eax
lea eax, [ebp - 0x12]
push eax
push ebx
call sub.KERNEL32.DLL_lstrcpynA
push 2
push 0
lea eax, [ebp - 0x11d]
push eax
call sub.KERNEL32.DLL_LoadLibraryExA
mov esi, eax
test esi, esi
jne 0x40532e
cmp byte [ebp - 0xd], 0
je 0x40532e
lea eax, [ebp - 0x11d]
mov edx, ebx
sub edx, eax
mov eax, 0x105
sub eax, edx
push eax
lea eax, [ebp - 0xd]
push eax
push ebx
call sub.KERNEL32.DLL_lstrcpynA
push 2
push 0
lea eax, [ebp - 0x11d]
push eax
call sub.KERNEL32.DLL_LoadLibraryExA
mov esi, eax
test esi, esi
jne 0x40532e
mov byte [ebp - 0xb], 0
lea eax, [ebp - 0x11d]
mov edx, ebx
sub edx, eax
mov eax, 0x105
sub eax, edx
push eax
lea eax, [ebp - 0xd]
push eax
push ebx
call sub.KERNEL32.DLL_lstrcpynA
push 2
push 0
lea eax, [ebp - 0x11d]
push eax
call sub.KERNEL32.DLL_LoadLibraryExA
mov esi, eax
mov eax, esi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret
Function at 0x405a00
Capabilities:
Get geographical location

Disassembly:
push ebp
mov ebp, esp
add esp, 0xfffffff0
push ebx
xor edx, edx
mov dword [ebp - 0x10], edx
xor edx, edx
push ebp
push 0x405a66
push dword fs:[edx]
mov dword fs:[edx], esp
push 7
lea edx, [ebp - 0xb]
push edx
push 0x1004
push eax
call sub.KERNEL32.DLL_GetLocaleInfoA_1
lea eax, [ebp - 0x10]
lea edx, [ebp - 0xb]
mov ecx, 7
call fcn.004040bc
mov eax, dword [ebp - 0x10]
lea edx, [ebp - 4]
call fcn.00402b38
mov ebx, eax
cmp dword [ebp - 4], 0
je 0x405a50
xor ebx, ebx
xor eax, eax
pop edx
pop ecx
pop ecx
mov dword fs:[eax], edx
push 0x405a6d
lea eax, [ebp - 0x10]
call fcn.00403e4c
ret

Function at 0x40aaf4
Capabilities:
Get geographical location

Disassembly:
push ebp
mov ebp, esp
add esp, 0xffffff00
push ebx
push esi
mov esi, ecx
mov ebx, dword [ebp + 8]
push pe_nt_image_headers32
lea ecx, [ebp - 0x100]
push ecx
push edx
push eax
call sub.KERNEL32.DLL_GetLocaleInfoA
test eax, eax
jle 0x40ab2d
mov ecx, eax
dec ecx
lea edx, [ebp - 0x100]
mov eax, ebx
call fcn.00403f3c
jmp 0x40ab36
mov eax, ebx
mov edx, esi
call fcn.00403ea0
pop esi
pop ebx
mov esp, ebp
pop ebp
ret 4

Function at 0x40ab40
Capabilities:
Get geographical location

Disassembly:
push ebx
push esi
push edi
push ecx
mov ebx, ecx
mov esi, edx
mov edi, eax
push 2
lea eax, [esp + 4]
push eax
push esi
push edi
call sub.KERNEL32.DLL_GetLocaleInfoA
test eax, eax
jle 0x40ab61
mov al, byte [esp]
jmp 0x40ab63
mov eax, ebx
pop edx
pop edi
pop esi
pop ebx
ret

Function at 0x40bb00
Capabilities:
Get file version info

Disassembly:
push ebp
mov ebp, esp
add esp, 0xffffffe8
push ebx
xor edx, edx
mov dword [ebp - 8], edx
mov ebx, eax
xor eax, eax
push ebp
push 0x40bbd6
push dword fs:[eax]
mov dword fs:[eax], esp
mov dword [ebp - 4], 0xffffffff
lea eax, [ebp - 8]
mov edx, ebx
call fcn.00403ee4
lea eax, [ebp - 8]
call fcn.0040435c
lea eax, [ebp - 0xc]
push eax
mov eax, dword [ebp - 8]
call fcn.0040430c
push eax
call sub.version.dll_GetFileVersionInfoSizeA
mov ebx, eax
test ebx, ebx
je 0x40bbc0
mov eax, ebx
call fcn.004026bc
mov dword [ebp - 0x10], eax
xor eax, eax
push ebp
push 0x40bbb9
push dword fs:[eax]
mov dword fs:[eax], esp
mov eax, dword [ebp - 0x10]
push eax
push ebx
mov eax, dword [ebp - 0xc]
push eax
mov eax, dword [ebp - 8]
call fcn.0040430c
push eax
call sub.version.dll_GetFileVersionInfoA
test eax, eax
je 0x40bba3
lea eax, [ebp - 0x18]
push eax
lea eax, [ebp - 0x14]
push eax
push 0x40bbe8
mov eax, dword [ebp - 0x10]
push eax
call sub.version.dll_VerQueryValueA
test eax, eax
je 0x40bba3
mov eax, dword [ebp - 0x14]
mov eax, dword [eax + 8]
mov dword [ebp - 4], eax
xor eax, eax
pop edx
pop ecx
pop ecx
mov dword fs:[eax], edx
push 0x40bbc0
mov eax, dword [ebp - 0x10]
call fcn.004026dc
ret
xor eax, eax
pop edx
pop ecx
pop ecx
mov dword fs:[eax], edx
push 0x40bbdd
lea eax, [ebp - 8]
call fcn.00403e4c
ret
Function at 0x40c0e8
Capabilities:
Get geographical location

Disassembly:
push ebp
mov ebp, esp
add esp, 0xfffffff4
push ebx
xor edx, edx
mov dword [ebp - 0xc], edx
xor edx, edx
push ebp
push 0x40c14c
push dword fs:[edx]
mov dword fs:[edx], esp
push 7
lea edx, [ebp - 7]
push edx
push 0x1004
push eax
call sub.KERNEL32.DLL_GetLocaleInfoA
lea eax, [ebp - 0xc]
lea edx, [ebp - 7]
mov ecx, 7
call fcn.004040bc
mov eax, dword [ebp - 0xc]
push eax
call sub.KERNEL32.DLL_GetACP
mov edx, eax
pop eax
call fcn.00407e98
mov ebx, eax
xor eax, eax
pop edx
pop ecx
pop ecx
mov dword fs:[eax], edx
push 0x40c153
lea eax, [ebp - 0xc]
call fcn.00403e4c
ret

Function at 0x41a3d8
Capabilities:
Allocate or change rwx memory

Disassembly:
push ebp
mov ebp, esp
push ebx
push esi
push edi
mov edi, 0x45a884
cmp dword [edi], 0
jne 0x41a454
push 0x40
push 0x1000
push 0x1000
push 0
call sub.KERNEL32.DLL_VirtualAlloc
mov esi, eax
mov eax, dword [0x45a880]
mov dword [esi], eax
lea edx, [esi + 4]
mov eax, 0x4583ec
mov ecx, 2
call fcn.004028b8
mov edx, 0x41a3b0
lea eax, [esi + 5]
call fcn.0041a3d0
mov dword [esi + 6], eax
lea ebx, [esi + 0xa]
mov byte [ebx], 0xe8
lea edx, [esi + 4]
mov eax, ebx
call fcn.0041a3d0
mov dword [ebx + 1], eax
mov eax, dword [edi]
mov dword [ebx + 5], eax
mov dword [edi], ebx
add ebx, 0xd
mov eax, ebx
sub eax, esi
cmp eax, 0xffc
jl 0x41a429
mov dword [0x45a880], esi
mov eax, dword [edi]
mov ebx, dword [edi]
mov edx, dword [ebx + 5]
mov dword [edi], edx
mov edx, dword [ebp + 8]
mov dword [ebx + 5], edx
mov edx, dword [ebp + 0xc]
mov dword [ebx + 9], edx
pop edi
pop esi
pop ebx
pop ebp
ret 8

Function at 0x41b9d0
Capabilities:
Encode data using xor

Disassembly:
mov ecx, edx
mov edx, eax
xor eax, eax
rol ax, 5
xor al, byte [edx]
inc edx
dec ecx
jne 0x41b9d6
ret

Function at 0x41de6c
Capabilities:
Get system information on windows

Disassembly:
push ebp
mov ebp, esp
add esp, 0xffffffd4
mov dword [ebp - 8], edx
mov dword [ebp - 4], eax
lea eax, [ebp - 0x2c]
push eax
call sub.KERNEL32.DLL_GetSystemInfo
mov edx, dword [ebp - 4]
mov ecx, dword [ebp - 8]
dec ecx
js 0x41debd
lea eax, [ebp - 0x2c]
cmp word [eax + 0x20], 3
je 0x41dea4
mov eax, dword [edx + ecx*4]
bswap eax
shr eax, 8
mov dword [edx + ecx*4], eax
dec ecx
jns 0x41de94
jmp 0x41debd
push ebx
xor ebx, ebx
mov eax, dword [edx + ecx*4]
mov bh, al
mov bl, ah
shr eax, 0x10
shl ebx, 8
mov bl, al
mov dword [edx + ecx*4], ebx
dec ecx
jns 0x41dea5
pop ebx
mov esp, ebp
pop ebp
ret
Function at 0x426a64
Capabilities:
Open clipboard
Write clipboard data

Disassembly:
push ebp
mov ebp, esp
add esp, 0xfffffff8
push ebx
push esi
push edi
mov dword [ebp - 4], edx
mov eax, dword [ebp - 4]
call fcn.004042fc
xor eax, eax
push ebp
push 0x426b92
push dword fs:[eax]
mov dword fs:[eax], esp
push 0
call sub.user32.dll_OpenClipboard
test eax, eax
je 0x426b65
xor eax, eax
push ebp
push 0x426b5e
push dword fs:[eax]
mov dword fs:[eax], esp
mov eax, dword [ebp - 4]
call fcn.0040410c
inc eax
push eax
push 0x2002
call sub.KERNEL32.DLL_GlobalAlloc
mov dword [ebp - 8], eax
xor eax, eax
push ebp
push 0x426b33
push dword fs:[eax]
mov dword fs:[eax], esp
mov eax, dword [ebp - 8]
push eax
call sub.KERNEL32.DLL_GlobalLock
mov ebx, eax
xor eax, eax
push ebp
push 0x426b22
push dword fs:[eax]
mov dword fs:[eax], esp
mov eax, dword [ebp - 4]
call fcn.0040410c
inc eax
push eax
mov eax, dword [ebp - 4]
call fcn.0040430c
mov edx, ebx
pop ecx
call fcn.004028b8
call sub.user32.dll_EmptyClipboard
mov eax, dword [ebp - 8]
push eax
push 1
call sub.user32.dll_SetClipboardData
xor eax, eax
pop edx
pop ecx
pop ecx
mov dword fs:[eax], edx
push 0x426b29
mov eax, dword [ebp - 8]
push eax
call sub.KERNEL32.DLL_GlobalUnlock
ret
mov ecx, dword [0x458e5c]
mov dl, 1
mov eax, dword [0x406d70]
call fcn.0040b36c
call fcn.00403888
xor eax, eax
pop edx
pop ecx
pop ecx
mov dword fs:[eax], edx
push 0x426b99
lea eax, [ebp - 4]
call fcn.00403e4c
ret