joyce8/EMBER2024-capa huggingface dataset:
Function at 0x47a430
Capabilities:
Write clipboard data

Disassembly:
sub esp, 8
push esi
mov esi, ecx
mov ecx, 0x4cc4fc
call fcn.00404ab0
test eax, eax
jne 0x47a45d
push 0x4a48a0
push 0x4a4ca0
mov ecx, 0x4cc518
call fcn.00430bd0
pop esi
add esp, 8
ret
push ebx
push ebp
push edi
call dword [sym.imp.USER32.dll_EmptyClipboard]
mov eax, dword [esp + 0x1c]
add eax, esi
mov ebp, esi
add esi, 4
mov dword [esp + 0x10], eax
cmp esi, eax
jbe 0x47a4c4
xor esi, esi
cmp dword [0x4cc514], esi
je 0x47a4b0
cmp dword [0x4cc504], esi
je 0x47a49e
mov edx, dword [0x4cc4fc]
push edx
call dword [sym.imp.KERNEL32.dll_GlobalUnlock]
mov dword [0x4cc504], esi
call dword [sym.imp.USER32.dll_CloseClipboard]
mov dword [0x4cc514], esi
mov dword [0x4cc4fc], esi
pop edi
pop ebp
pop ebx
mov eax, 1
pop esi
add esp, 8
ret
mov eax, dword [esp + 0x10]
mov ebp, dword [ebp]
mov dword [esp + 0x14], ebp
test ebp, ebp
je 0x47a479
mov ecx, esi
add esi, 4
cmp esi, eax
ja 0x47a479
mov ebx, dword [ecx]
mov ebp, esi
add esi, ebx
cmp esi, eax
ja 0x47a479
xor ecx, ecx
test ebx, ebx
sete cl
add ecx, ebx
push ecx
push 0x42
call dword [sym.imp.KERNEL32.dll_GlobalAlloc]
mov edi, eax
test edi, edi
je 0x47a53b
test ebx, ebx
je 0x47a521
push edi
call dword [sym.imp.KERNEL32.dll_GlobalLock]
test eax, eax
je 0x47a591
push ebx
push ebp
push eax
call fcn.00498a60
add esp, 0xc
push edi
call dword [sym.imp.KERNEL32.dll_GlobalUnlock]
mov ebp, esi
mov edx, dword [esp + 0x14]
push edi
push edx
call dword [sym.imp.USER32.dll_SetClipboardData]
lea esi, [ebp + 4]
cmp esi, dword [esp + 0x10]
jbe 0x47a4c0
jmp 0x47a479
cmp dword [0x4cc514], 0
je 0x47a575
cmp dword [0x4cc504], 0
je 0x47a563
mov eax, dword [0x4cc4fc]
push eax
call dword [sym.imp.KERNEL32.dll_GlobalUnlock]
mov dword [0x4cc504], 0
call dword [sym.imp.USER32.dll_CloseClipboard]
xor eax, eax
mov dword [0x4cc514], eax
mov dword [0x4cc4fc], eax
push 0x4a48a0
push 0x4a76d0
mov ecx, 0x4cc518
call fcn.00430bd0
pop edi
pop ebp
pop ebx
pop esi
add esp, 8
ret
push edi
call dword [sym.imp.KERNEL32.dll_GlobalFree]
xor esi, esi
cmp dword [0x4cc514], esi
je 0x47a5cf
cmp dword [0x4cc504], esi
je 0x47a5bd
mov ecx, dword [0x4cc4fc]
push ecx
call dword [sym.imp.KERNEL32.dll_GlobalUnlock]
mov dword [0x4cc504], esi
call dword [sym.imp.USER32.dll_CloseClipboard]
mov dword [0x4cc514], esi
mov dword [0x4cc4fc], esi
push 0x4a48a0
push 0x4a4c6c
mov ecx, 0x4cc518
call fcn.00430bd0
pop edi
pop ebp
pop ebx
pop esi
add esp, 8
ret
Function at 0x47a9c0
Capabilities:
Query environment variable

Disassembly:
push ecx
push ebx
push esi
mov esi, ecx
movzx eax, byte [esi + 0x17]
push edi
cmp eax, 3
ja case.default.0x47a9d3
jmp dword [eax*4 + 0x47ab94]
mov eax, esi
call fcn.004011c0
cmp dword [0x4cb6c4], 0
jne 0x47aa9f
cmp dword [esi + 0xc], 0
jne 0x47aa9f
mov edi, dword [esp + 0x14]
cmp dword [0x4cda64], esi
jne 0x47aa08
test edi, edi
jne 0x47aa65
mov ecx, dword [esi + 0x18]
push 0
lea eax, [esp + 0x10]
push eax
push ecx
call dword [sym.imp.KERNEL32.dll_GetEnvironmentVariableW]
test eax, eax
je 0x47aa61
mov dword [0x4cda64], 0
test edi, edi
je 0x47aa59
mov eax, dword [0x4cb6a0]
test eax, eax
je 0x47aa4a
mov edx, dword [esi + 0x18]
push edx
push 0x4c1b00
push eax
push 0x4cc518
xor ecx, ecx
call fcn.00431140
mov ecx, dword [esi + 0x18]
call fcn.004787a0
pop edi
pop esi
pop ebx
pop ecx
ret 4
dec eax
pop edi
pop esi
pop ebx
pop ecx
ret 4
test edi, edi
je 0x47aa90
cmp byte [esi + 0x17], 0
jne 0x47aa70
mov eax, dword [esi + 0xc]
jmp 0x47aa72
mov eax, esi
test byte [eax + 0x15], 4
je 0x47aa7f
mov eax, esi
call fcn.00431250
xor eax, eax
mov word [edi], ax
mov dword [0x4cda64], eax
pop edi
pop esi
pop ebx
pop ecx
ret 4
mov dword [0x4cda64], esi
xor eax, eax
pop edi
pop esi
pop ebx
pop ecx
ret 4
mov eax, dword [esi + 0xc]
mov edi, dword [esp + 0x14]
mov ebx, eax
shr ebx, 1
test edi, edi
je 0x47ab20
test eax, eax
jne 0x47aad7
movzx eax, byte [esi + 0x17]
neg eax
sbb eax, eax
and eax, esi
test byte [eax + 0x15], 4
je 0x47aac9
mov eax, esi
call fcn.00431250
xor ecx, ecx
mov word [edi], cx
xor eax, eax
pop edi
pop esi
pop ebx
pop ecx
ret 4
mov ecx, dword [esi + 8]
cmp edi, ecx
je 0x47ab20
cmp eax, 0x186a0
jae 0x47ab0f
movzx eax, word [ecx]
test ax, ax
je 0x47ab01
lea ecx, [ecx]
add ecx, 2
mov word [edi], ax
movzx eax, word [ecx]
add edi, 2
test ax, ax
jne 0x47aaf0
xor edx, edx
mov word [edi], dx
mov eax, ebx
pop edi
pop esi
pop ebx
pop ecx
ret 4
push eax
push ecx
push edi
call fcn.00498a60
add esp, 0xc
xor eax, eax
mov word [edi + ebx*2], ax
mov eax, ebx
pop edi
pop esi
pop ebx
pop ecx
ret 4
mov ecx, dword [esp + 0x14]
push ecx
mov ecx, dword [esi + 0xc]
call fcn.0047a9c0
pop edi
pop esi
pop ebx
pop ecx
ret 4
mov esi, dword [esp + 0x14]
push esi
mov ecx, 0x4cc4fc
call fcn.00404510
cmp eax, 0xffffffff
jne 0x47ab53
xor eax, eax
test esi, esi
je 0x47ab8b
xor edx, edx
mov word [esi + eax*2], dx
pop edi
pop esi
pop ebx
pop ecx
ret 4
mov eax, dword [esp + 0x14]
test eax, eax
je 0x47ab71
xor ecx, ecx
mov word [eax], cx
xor eax, eax
pop edi
pop esi
pop ebx
pop ecx
ret 4
mov edx, dword [esi + 0x18]
mov eax, dword [esp + 0x14]
mov ecx, dword [esi + 0x10]
push edx
push eax
call ecx
add esp, 8
pop edi
pop esi
pop ebx
pop ecx
ret 4
Function at 0x4971b6
Capabilities:
Terminate process

Disassembly:
cmp ecx, dword [0x4c6b10]
jne 0x4971c0
repz ret
jmp fcn.0049bc1d

Function at 0x499f00
Capabilities:
Link many functions at runtime

Disassembly:
mov edi, edi
push ebp
mov ebp, esp
sub esp, 0x24
mov eax, dword [0x4c6b10]
xor eax, ebp
mov dword [ebp - 4], eax
mov eax, dword [ebp + 8]
push ebx
mov dword [ebp - 0x20], eax
mov eax, dword [ebp + 0xc]
push esi
push edi
mov dword [ebp - 0x1c], eax
call fcn.00494532
and dword [ebp - 0x14], 0
cmp dword [0x4c9cbc], 0
mov dword [ebp - 0x18], eax
jne 0x499fb3
push 0x4a403c
call dword [sym.imp.KERNEL32.dll_LoadLibraryW]
mov ebx, eax
test ebx, ebx
je 0x49a05b
mov edi, dword [sym.imp.KERNEL32.dll_GetProcAddress]
push 0x4a4030
push ebx
call edi
test eax, eax
je 0x49a05b
mov esi, dword [fcn.00490bb0]
push eax
call esi
push 0x4a4020
push ebx
mov dword [0x4c9cbc], eax
call edi
push eax
call esi
push 0x4a400c
push ebx
mov dword [0x4c9cc0], eax
call edi
push eax
call esi
push 0x4a3ff0
push ebx
mov dword [0x4c9cc4], eax
call edi
push eax
call esi
mov dword [0x4c9ccc], eax
test eax, eax
je 0x499fb3
push 0x4a3fd8
push ebx
call edi
push eax
call esi
mov dword [0x4c9cc8], eax
mov eax, dword [0x4c9cc8]
mov ecx, dword [ebp - 0x18]
mov esi, dword [fcn.00490bb4]
cmp eax, ecx
je 0x49a00c
cmp dword [0x4c9ccc], ecx
je 0x49a00c
push eax
call esi
push dword [0x4c9ccc]
mov edi, eax
call esi
mov ebx, eax
test edi, edi
je 0x49a00c
test ebx, ebx
je 0x49a00c
call edi
test eax, eax
je 0x49a003
lea ecx, [ebp - 0x24]
push ecx
push 0xc
lea ecx, [ebp - 0x10]
push ecx
push 1
push eax
call ebx
test eax, eax
je 0x49a003
test byte [ebp - 8], 1
jne 0x49a00c
or dword [ebp + 0x10], 0x200000
jmp 0x49a03f
mov eax, dword [0x4c9cc0]
cmp eax, dword [ebp - 0x18]
je 0x49a03f
push eax
call esi
test eax, eax
je 0x49a03f
call eax
mov dword [ebp - 0x14], eax
test eax, eax
je 0x49a03f
mov eax, dword [0x4c9cc4]
cmp eax, dword [ebp - 0x18]
je 0x49a03f
push eax
call esi
test eax, eax
je 0x49a03f
push dword [ebp - 0x14]
call eax
mov dword [ebp - 0x14], eax
push dword [0x4c9cbc]
call esi
test eax, eax
je 0x49a05b
push dword [ebp + 0x10]
push dword [ebp - 0x1c]
push dword [ebp - 0x20]
push dword [ebp - 0x14]
call eax
jmp 0x49a05d
xor eax, eax
mov ecx, dword [ebp - 4]
pop edi
pop esi
xor ecx, ebp
pop ebx
call fcn.004971b6
leave
ret
Function at 0x4d3c35
Capabilities:
Execute anti-debugging instructions

Disassembly:
xchg dh, dl
not bl
pop dword [esp + 0x14]
lea esp, [esp + 7]
add esp, 0x11
xchg ebp, edx
jmp 0x4d3c59
xchg dword [esp + 0xd], ebp
xchg al, bh
jmp 0x4d3c15
xchg word [esp + 3], dx
add esp, 5
sub bx, 0x43c1
pushal
mov byte [esp + 0x12], bh
popal
jmp 0x4d3c8d
dec esi
mov ch, bh
mov al, dh
bsr di, ax
lea eax, reloc.MSVCRT.dll_malloc
sub esp, 8
jmp 0x4d3c3d
mov edx, eax
push word [esp + 5]
pushal
xchg word [esp + 2], si
lea ebp, reloc.MSVCRT.dll_malloc
xchg edi, ebp
jmp 0x4d3cb3
cpuid
inc edi
rcl esi, 0x11
add esp, 3
pushfd
xchg byte [esp + 2], ah
jmp 0x4d3c6d
cmc
mov esi, dword [esp + 2]
adc ch, 0x4a
lea esp, [esp]
mov ax, bx
jmp 0x4d3cc9
mov byte [esp + 0x14], ah
bsr di, si
mov bh, byte [esp + 0x10]
pop ecx
lea esp, [esp + 0xb]
add esp, 0xc
jmp 0x4d3c9d
mov ax, 0x53b7
rdtsc
bsf bp, ax
add esp, 9
jmp 0x4d3f40
add esp, 0xc
push word [esp + 5]
sub esp, 2
clc
cmc
clc
jmp 0x4d3f28
mov byte [esp + 0x17], cl
pop edi
call 0x4d3fcd
xor eax, 0xbb4829b9
push edi
adc eax, 0x9a6f089a
js 0x4d3fba
push edx
mov bp, word [esp + 2]
sub esp, 0x1f
pop word [esp + 0x14]
rdtsc
lea eax, [edx*4]
bsf dx, ax
jmp 0x4d3f14
mov esi, 0xa1f4526d
call 0x4d3f5c
mov ah, ch
setge cl
bsf cx, bx
pop word [esp + 8]
jmp 0x4d3fa9
neg ax
stc
bts dx, si
mov byte [esp], ah
mov ecx, esp
xchg al, bh
jmp 0x4d3fde
fstp dword [ebx - 0x35]
scasb al, byte es:[edi]
pop ebp
mov al, 0x31
mov esp, 0x27c43552
sbb dword [ecx + 0x6b8b7819], ecx
test al, 0xf6
fmul qword [ecx - 0x73]
add al, 0x9d
add byte [eax], al
add byte [eax], al
push word [esp + 1]
jmp 0x4d3f72
clc
cld
lea eax, reloc.MSVCRT.dll_malloc
xchg bh, dl
bsr edx, edi
mov ah, byte [esp + 0xc]
jmp 0x4d4e87
mov al, 0xd7
and cl, bl
out 0x67, al
not dword [edx - reloc.MSVCRT.dll_malloc]
push cs
imul ebx, dword [eax + reloc.MSVCRT.dll_malloc], 0x6c14ff0c
out 0x74, al
adc ebp, esi
or al, 0x9e
sbb ecx, dword [ebx - 0x143e212]
leave
push 0xf5d228b
test byte [ebx + 0xfffffde], dh
test dword [edx - 1], ebp
invalid
rdtsc
cld
call fcn.004d424f
lahf
sbb ecx, dword [ebx - 0x806e212]
jl 0x4d4eaa
jne 0x4d4e1e
and eax, ebx
dec ecx
fnstcw word [eax - 0x159c62b5]
js 0x4d4ec4
ljmp 0x9fa:0x9f0f8705
cli
or ecx, edi
das
mov al, byte [0x42a05136]
push ebx
fisttp qword [ebp + 0x14]
out 0xe, eax
mov dword [reloc.MSVCRT.dll_malloc], eax
aad 0xaf
inc ebx
sal dword [esi + reloc.MSVCRT.dll_malloc], cl
lcall 0x21b1, 0x23e50cfd
inc eax
mov bl, 0x16
mov eax, dword [reloc.MSVCRT.dll_malloc]
or al, 0xe5
and esi, dword [ecx + reloc.MSVCRT.dll_malloc]
and esi, dword [edx + reloc.MSVCRT.dll_malloc]
daa
mov bh, 0x27
inc edx
mov cl, 0xa
aas
test al, 0x3e
pop ecx
test al, 1
push ebx
lds edx, [ebp + 0x3c]
iretd
Function at 0x4d463a
Capabilities:
Execute anti-debugging instructions

Disassembly:
rdtsc
lea esp, [esp + 0x1a]
sub esp, 5
jmp 0x4d468a
bswap eax
mov dx, 0x90ca
bsf si, cx
rcr ecx, 4
pop dword [esp + 0xb]
pushfd
jmp 0x4d46c1
pop si
mov esi, 0x92b2f84f
sub esp, 0x1c
bswap ebx
rcr dh, cl
mov di, word [esp + 0x16]
jmp 0x4d466f
mov cx, 0xcb9f
push word [esp + 0x1a]
not esi
xchg cx, dx
xchg byte [esp + 0x17], al
rcr bh, 1
jmp 0x4d474e
pop dword [esp + 0xe]
xchg word [esp + 0x17], bp
shr ah, cl
mov esi, 0xfd33446a
bts eax, esi
btc ebp, esi
jmp 0x4d469f
pop dword [esp + 0x15]
lea esp, [esp]
lea edx, [ebx*4]
jmp 0x4d4729
mov bl, ah
mov byte [esp + 0x11], dl
std
bswap edi
push dword [esp + 0x17]
add ax, ax
jmp 0x4d4701
xchg byte [esp + 0x15], cl
pop word [esp + 0xb]
dec bp
pop word [esp + 0x13]
mov dh, byte [esp + 6]
rdtsc
jmp 0x4d477f
bsr eax, esi
mov eax, 0x3b2d1069
btc dx, bp
btr si, di
bsr bx, di
mov word [esp + 0x16], ax
jmp 0x4d4717
mov di, word [esp + 0xe]
mov dx, word [esp + 4]
setae bl
jmp 0x4d47ad
xchg dword [esp + 0x17], ebp
mov word [esp + 0xf], ax
shr dh, cl
inc edi
push word [esp + 1]
pop word [esp + 5]
jmp 0x4d4769
rcl bh, cl
mov al, 0x48
clc
mov dword [esp + 2], edi
pop ebx
add bx, bx
jmp 0x4d4805
mov byte [esp + 0x10], dh
lea edi, [ebp*4]
neg edx
mov ebp, eax
cpuid
jmp 0x4d4797
pushfd
mov ecx, eax
sub esp, 4
pop eax
cpuid
mov dword [esp + 9], ebx
jmp 0x4d47ed
pop dword [esp + 7]
xchg word [esp + 5], ax
push dword [esp + 0xf]
mov dword [esp + 0x10], eax
jmp 0x4d484a
neg bh
mov ecx, ebx
lea edx, [edx + esi]
inc edx
rdtsc
pop ecx
jmp 0x4d47da
lea esi, [edx + esi]
cld
cmc
mov dh, dl
cpuid
xchg word [esp + 0x15], bp
call fcn.004d4812
lds eax, [edi - 0x29]
mov dl, 0x41
mov eax, dword [reloc.MSVCRT.dll_malloc]
clc
adc dword [ebp - 0x3c], edx
ja 0x4d47d5
mov bh, al
clc
xor edi, ebx
push esi
mov ecx, dword [esp + 0x18]
rdtsc
push ecx
jmp 0x4d4828

Function at 0x4d48e5
Capabilities:
Execute anti-debugging instructions

Disassembly:
mov dh, byte [esp + 7]
sub esp, 0x1f
jmp 0x4d48f2
pop esi
bsr ebx, eax
mov ebx, edx
mov cl, byte [esp + 0x27]
mov edi, ebp
pop dx
jmp 0x4d4934
bswap ebx
push word [esp + 9]
mov ebp, dword [esp + 0x12]
pop dword [esp + 5]
add esp, 0xd
xchg byte [esp + 0x18], dl
jmp 0x4d4916

Function at 0x4d4dfa
Capabilities:
Access peb ldr_data
Parse pe header

Disassembly:
push eax
jmp 0x4d403d
mov eax, dword [eax + 0x1c]
mov eax, dword [eax]
mov eax, dword [eax + 8]
jmp 0x4d4d56
lea esp, [esp + 0x68]
mov eax, dword fs:[0x30]
mov eax, dword [eax + 0xc]
jmp 0x4d4d6c
lea esp, [esp]
mov word [esp + 4], ax
mov word [esp + 3], bp
mov dword [esp + 0x68], edi
jmp 0x4d4d87

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 0x900790
Capabilities:
Accept command line arguments

Disassembly:
push ebx
push esi
push edi
add esp, 0xfffffef8
mov esi, edx
mov ebx, eax
test ebx, ebx
jne 0x9007bf
push 0x105
lea eax, [esp + 4]
push eax
push 0
call sub.kernel32.dll_GetModuleFileNameA
mov ecx, eax
mov edx, esp
mov eax, esi
call fcn.009014cc
jmp 0x9007dd
call sub.kernel32.dll_GetCommandLineA
mov edi, eax
mov edx, esi
mov eax, edi
call fcn.00900718
mov edi, eax
test ebx, ebx
je 0x9007dd
cmp dword [esi], 0
je 0x9007dd
dec ebx
jmp 0x9007c6
add esp, 0x108
pop edi
pop esi
pop ebx
ret

Function at 0x90088c
Capabilities:
Generate random numbers using the delphi lcg

Disassembly:
imul edx, dword [0x91403c], 0x8088405
inc edx
mov dword [0x91403c], edx
mul edx
mov eax, edx
ret

Function at 0x9009a8
Capabilities:
Query or enumerate registry value

Disassembly:
push ebp
mov ebp, esp
add esp, 0xfffffff4
movzx eax, word [section.sect_9]
mov dword [ebp - 8], eax
lea eax, [ebp - 4]
push eax
push 1
push 0
push 0x900a40
push 0x80000002
call sub.advapi32.dll_RegOpenKeyExA
test eax, eax
jne 0x900a20
xor eax, eax
push ebp
push 0x900a19
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 0x900a5c
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 0x900a20
mov eax, dword [ebp - 4]
push eax
call sub.advapi32.dll_RegCloseKey
ret
mov ax, word [section.sect_9]
and ax, 0xffc0
mov dx, word [ebp - 8]
and dx, 0x3f
or ax, dx
mov word [section.sect_9], ax
mov esp, ebp
pop ebp
ret
Function at 0x902758
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
mov byte [ebp - 0x12], 0
lea eax, [ebp - 8]
push eax
push 0xf003f
push 0
push 0x902914
push 0x80000001
call sub.advapi32.dll_RegOpenKeyExA
test eax, eax
je 0x9027b9
lea eax, [ebp - 8]
push eax
push 0xf003f
push 0
push 0x902930
push 0x80000001
call sub.advapi32.dll_RegOpenKeyExA
test eax, eax
jne 0x90282b
xor eax, eax
push ebp
push 0x902824
push dword fs:[eax]
mov dword fs:[eax], esp
mov dword [ebp - 0x18], 5
lea eax, [ebp - 0x18]
push eax
lea eax, [ebp - 0x12]
push eax
push 0
push 0
lea eax, [ebp - 0x11d]
call fcn.009025b0
push eax
mov eax, dword [ebp - 8]
push eax
call sub.advapi32.dll_RegQueryValueExA
test eax, eax
je 0x90280d
lea eax, [ebp - 0x18]
push eax
lea eax, [ebp - 0x12]
push eax
push 0
push 0
push 0x902950
mov eax, dword [ebp - 8]
push eax
call sub.advapi32.dll_RegQueryValueExA
xor eax, eax
pop edx
pop ecx
pop ecx
mov dword fs:[eax], edx
push 0x90282b
mov eax, dword [ebp - 8]
push eax
call sub.advapi32.dll_RegCloseKey
ret
mov eax, dword [ebp - 4]
push eax
lea eax, [ebp - 0x11d]
push eax
call sub.kernel32.dll_lstrcpyA
push 5
lea eax, [ebp - 0xd]
push eax
push 3
call sub.kernel32.dll_GetThreadLocale
push eax
call sub.kernel32.dll_GetLocaleInfoA
xor esi, esi
cmp byte [ebp - 0x11d], 0
je 0x90290c
cmp byte [ebp - 0xd], 0
jne 0x90286d
cmp byte [ebp - 0x12], 0
je 0x90290c
lea eax, [ebp - 0x11d]
push eax
call sub.kernel32.dll_lstrlenA
mov ebx, eax
lea eax, [ebp - 0x11d]
add ebx, eax
jmp 0x902886
dec ebx
cmp byte [ebx], 0x2e
je 0x902895
lea eax, [ebp - 0x11d]
cmp ebx, eax
jne 0x902885
lea eax, [ebp - 0x11d]
cmp ebx, eax
je 0x90290c
inc ebx
cmp byte [ebp - 0x12], 0
je 0x9028c2
lea eax, [ebp - 0x12]
push eax
push ebx
call sub.kernel32.dll_lstrcpyA
push 2
push 0
lea eax, [ebp - 0x11d]
push eax
call sub.kernel32.dll_LoadLibraryExA
mov esi, eax
test esi, esi
jne 0x90290c
cmp byte [ebp - 0xd], 0
je 0x90290c
lea eax, [ebp - 0xd]
push eax
push ebx
call sub.kernel32.dll_lstrcpyA
push 2
push 0
lea eax, [ebp - 0x11d]
push eax
call sub.kernel32.dll_LoadLibraryExA
mov esi, eax
test esi, esi
jne 0x90290c
mov byte [ebp - 0xb], 0
lea eax, [ebp - 0xd]
push eax
push ebx
call sub.kernel32.dll_lstrcpyA
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 0x904eb0
Capabilities:
Get common file path

Disassembly:
push ebx
add esp, 0xfffffefc
mov ebx, eax
push esp
push 0x104
call sub.kernel32.dll_GetCurrentDirectoryA
mov ecx, eax
mov edx, esp
mov eax, ebx
call fcn.009014cc
add esp, 0x104
pop ebx
ret
Function at 0x905914
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_1
test eax, eax
jle 0x90594d
mov ecx, eax
dec ecx
lea edx, [ebp - 0x100]
mov eax, ebx
call fcn.009014cc
jmp 0x905956
mov eax, ebx
mov edx, esi
call fcn.00901438
pop esi
pop ebx
mov esp, ebp
pop ebp
ret 4

Function at 0x905960
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_1
test eax, eax
jle 0x905981
mov al, byte [esp]
jmp 0x905983
mov eax, ebx
pop edx
pop edi
pop esi
pop ebx
ret

Function at 0x90aee0
Capabilities:
Get hostname

Disassembly:
push ebx
add esp, 0xffffffec
mov ebx, eax
mov dword [esp], 0x10
push esp
lea eax, [esp + 8]
push eax
call sub.kernel32.dll_GetComputerNameA
test eax, eax
je 0x90af0c
lea edx, [esp + 4]
mov eax, ebx
mov ecx, dword [esp]
call fcn.009014cc
jmp 0x90af13
mov eax, ebx
call fcn.009013e4
add esp, 0x14
pop ebx
ret

Function at 0x90b040
Capabilities:
Get common file path

Disassembly:
push ebp
mov ebp, esp
add esp, 0xfffffef4
push ebx
xor edx, edx
mov dword [ebp - 0x108], edx
mov dword [ebp - 0x10c], edx
mov ebx, eax
xor eax, eax
push ebp
push 0x90b0de
push dword fs:[eax]
mov dword fs:[eax], esp
push 0x104
lea eax, [ebp - 0x104]
push eax
call sub.kernel32.dll_GetWindowsDirectoryA
lea eax, [ebp - 0x104]
call fcn.00904ed8
test eax, eax
jbe 0x90b0b9
lea edx, [ebp - 0x10c]
lea eax, [ebp - 0x104]
call fcn.00905044
mov eax, dword [ebp - 0x10c]
lea edx, [ebp - 0x108]
call fcn.00904d70
mov eax, dword [ebp - 0x108]
mov edx, ebx
call fcn.0090aff4
jmp 0x90b0c0
mov eax, ebx
call fcn.009013e4
xor eax, eax
pop edx
pop ecx
pop ecx
mov dword fs:[eax], edx
push 0x90b0e5
lea eax, [ebp - 0x10c]
mov edx, 2
call fcn.00901408
ret

Function at 0x90b160
Capabilities:
Encrypt data using rc4 ksa

Disassembly:
push ebx
push esi
push edi
add esp, 0xfffffff4
mov dword [esp + 4], edx
mov dword [esp], eax
xor esi, esi
lea eax, [ecx + 8]
mov edx, esi
mov byte [eax], dl
inc esi
inc eax
cmp esi, 0x100
jne 0x90b172
xor edi, edi
mov dword [esp + 8], 3
xor esi, esi
lea ebx, [ecx + 8]
mov eax, esi
cdq
idiv dword [esp + 4]
mov eax, dword [esp]
movzx eax, byte [eax + edx]
xor edx, edx
mov dl, byte [ebx]
add edi, edx
add eax, edi
mov edi, eax
mov al, byte [ebx]
mov edx, edi
and edx, 0xff
mov dl, byte [ecx + edx + 8]
mov byte [ebx], dl
mov edx, edi
and edx, 0xff
mov byte [ecx + edx + 8], al
inc esi
inc ebx
cmp esi, 0x100
jne 0x90b18f
dec dword [esp + 8]
jne 0x90b18a
xor eax, eax
mov dword [ecx], eax
mov dword [ecx + 4], edi
add esp, 0xc
pop edi
pop esi
pop ebx
ret
Function at 0x90b1e4
Capabilities:
Encode data using xor
Encrypt data using rc4 prga

Disassembly:
push ebx
push esi
push edi
push ebp
add esp, 0xfffffff8
mov esi, eax
mov edi, dword [esi]
mov eax, dword [esi + 4]
mov dword [esp], eax
dec ecx
test ecx, ecx
jl 0x90b25b
inc ecx
mov dword [esp + 4], ecx
inc edi
mov eax, edi
and eax, 0xff
xor ecx, ecx
mov cl, byte [esi + eax + 8]
xor eax, eax
mov al, cl
movzx eax, byte [esi + eax + 8]
add eax, ecx
xor ebx, ebx
mov bl, al
push dword [esi + ebx + 8]
mov ebx, edi
and ebx, 0xff
lea ebp, [esi + ebx + 8]
pop ebx
mov byte [ebp], bl
xor ebx, ebx
mov bl, al
lea ebx, [esi + ebx + 8]
push ebx
pop ebx
mov byte [ebx], cl
mov ecx, eax
shr ecx, 8
add cl, al
xor eax, eax
mov al, cl
movzx eax, byte [esi + eax + 8]
add dword [esp], eax
mov al, byte [esp]
xor byte [edx], al
inc edx
dec dword [esp + 4]
jne 0x90b1ff
mov dword [esi], edi
mov eax, dword [esp]
mov dword [esi + 4], eax
pop ecx
pop edx
pop ebp
pop edi
pop esi
pop ebx
ret

Function at 0x90b290
Capabilities:
Encode data using xor

Disassembly:
push esi
push edi
mov esi, eax
mov edi, edx
push ecx
shr ecx, 2
je 0x90b2aa
cld
mov eax, dword [edi]
xor dword [esi], eax
add esi, 4
add edi, 4
dec ecx
jne 0x90b29d
pop ecx
and ecx, 3
je 0x90b2b9
mov al, byte [edi]
xor byte [esi], al
inc esi
inc edi
dec ecx
jne 0x90b2b0
pop edi
pop esi
ret

Function at 0x90b2c4
Capabilities:
Encrypt data using aes
Reference aes constants

Disassembly:
add esp, 0xfffffff8
mov dword [esp], eax
xor eax, eax
mov al, byte [esp]
mov al, byte [eax + 0x9112f8]
mov byte [esp + 4], al
xor eax, eax
mov al, byte [esp + 1]
mov al, byte [eax + 0x9112f8]
mov byte [esp + 5], al
xor eax, eax
mov al, byte [esp + 2]
mov al, byte [eax + 0x9112f8]
mov byte [esp + 6], al
xor eax, eax
mov al, byte [esp + 3]
mov al, byte [eax + 0x9112f8]
mov byte [esp + 7], al
mov eax, dword [esp + 4]
pop ecx
pop edx
ret
Function at 0x90b35c
Capabilities:
Encrypt data using aes
Reference aes constants

Disassembly:
push ebp
mov ebp, esp
add esp, 0xffffffe8
push ebx
push esi
push edi
mov byte [ebp - 0x15], cl
mov ebx, edx
mov dword [ebp - 0x14], eax
xor eax, eax
lea edx, [ebp - 0x10]
cmp byte [ebp - 0x15], 0
jne 0x90b3ea
lea ecx, [eax]
and ecx, 0x80000003
jns 0x90b387
dec ecx
or ecx, 0xfffffffc
inc ecx
movzx ecx, byte [ebx + ecx*4]
mov ecx, dword [ecx*4 + 0x911530]
lea esi, [eax + 1]
and esi, 0x80000003
jns 0x90b3a2
dec esi
or esi, 0xfffffffc
inc esi
movzx esi, byte [ebx + esi*4 + 1]
xor ecx, dword [esi*4 + 0x911930]
lea esi, [eax + 2]
and esi, 0x80000003
jns 0x90b3be
dec esi
or esi, 0xfffffffc
inc esi
movzx esi, byte [ebx + esi*4 + 2]
xor ecx, dword [esi*4 + 0x911d30]
lea esi, [eax + 3]
and esi, 0x80000003
jns 0x90b3da
dec esi
or esi, 0xfffffffc
inc esi
movzx esi, byte [ebx + esi*4 + 3]
xor ecx, dword [esi*4 + 0x912130]
mov dword [edx], ecx
jmp 0x90b45f
lea ecx, [eax]
and ecx, 0x80000003
jns 0x90b3f9
dec ecx
or ecx, 0xfffffffc
inc ecx
movzx ecx, byte [ebx + ecx*4]
mov cl, byte [ecx + 0x9112f8]
mov byte [edx], cl
lea ecx, [eax + 1]
and ecx, 0x80000003
jns 0x90b415
dec ecx
or ecx, 0xfffffffc
inc ecx
movzx ecx, byte [ebx + ecx*4 + 1]
mov cl, byte [ecx + 0x9112f8]
mov byte [edx + 1], cl
lea ecx, [eax + 2]
and ecx, 0x80000003
jns 0x90b433
dec ecx
or ecx, 0xfffffffc
inc ecx
movzx ecx, byte [ebx + ecx*4 + 2]
mov cl, byte [ecx + 0x9112f8]
mov byte [edx + 2], cl
lea ecx, [eax + 3]
and ecx, 0x80000003
jns 0x90b451
dec ecx
or ecx, 0xfffffffc
inc ecx
movzx ecx, byte [ebx + ecx*4 + 3]
mov cl, byte [ecx + 0x9112f8]
mov byte [edx + 3], cl
inc eax
add edx, 4
cmp eax, 4
jne 0x90b372
mov edx, dword [ebp - 0x14]
lea eax, [ebp - 0x10]
mov ecx, 0x10
call fcn.0090b290
mov edi, ebx
lea esi, [ebp - 0x10]
mov ecx, 4
rep movsd dword es:[edi], dword [esi]
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret