joyce8/EMBER2024-capa huggingface dataset:
Function at 0x10106749
Capabilities:
Allocate thread local storage

Disassembly:
mov edi, edi
push ebp
mov ebp, esp
push esi
push 0x10126108
push 0x10126100
push str.FlsAlloc
push 0x1f
call fcn.101065b4
mov esi, eax
add esp, 0x10
test esi, esi
je 0x1010677d
push dword [ebp + 8]
mov ecx, esi
call dword [0x1011c304]
call esi
jmp 0x10106783
call dword [sym.imp.KERNEL32.dll_TlsAlloc]
pop esi
pop ebp
ret 4

Function at 0x101067c7
Capabilities:
Get thread local storage value

Disassembly:
mov edi, edi
push ebp
mov ebp, esp
push esi
push 0x10126118
push 0x10126110
push str.FlsGetValue
push 0x21
call fcn.101065b4
mov esi, eax
add esp, 0x10
test esi, esi
je 0x101067fe
push dword [ebp + 8]
mov ecx, esi
call dword [0x1011c304]
call esi
pop esi
pop ebp
ret 4
pop esi
pop ebp
jmp dword [sym.imp.KERNEL32.dll_TlsGetValue]

Function at 0x10106806
Capabilities:
Set thread local storage value

Disassembly:
mov edi, edi
push ebp
mov ebp, esp
push esi
push 0x10126120
push 0x10126118
push str.FlsSetValue
push 0x22
call fcn.101065b4
mov esi, eax
add esp, 0x10
test esi, esi
je 0x10106840
push dword [ebp + 0xc]
mov ecx, esi
push dword [ebp + 8]
call dword [0x1011c304]
call esi
pop esi
pop ebp
ret 8
pop esi
pop ebp
jmp dword [sym.imp.KERNEL32.dll_TlsSetValue]

Function at 0x101068de
Capabilities:
Get common file path

Disassembly:
mov edi, edi
push ebp
mov ebp, esp
push esi
push str.GetTempPath2W
push 0x10125ff4
push str.GetTempPath2W
push 5
call fcn.101065b4
mov esi, eax
add esp, 0x10
test esi, esi
je 0x10106918
push dword [ebp + 0xc]
mov ecx, esi
push dword [ebp + 8]
call dword [0x1011c304]
call esi
pop esi
pop ebp
ret 8
pop esi
pop ebp
jmp dword [sym.imp.KERNEL32.dll_GetTempPathW]
Function at 0x1010931e
Capabilities:
Query environment variable

Disassembly:
mov edi, edi
push ebp
mov ebp, esp
push ecx
push ecx
push esi
call dword [sym.imp.KERNEL32.dll_GetEnvironmentStringsW]
mov esi, eax
test esi, esi
je 0x101093bb
push ebx
push esi
call fcn.101092e7
xor ebx, ebx
sub eax, esi
push ebx
push ebx
push ebx
push ebx
sar eax, 1
push eax
push esi
push ebx
push ebx
mov dword [ebp - 8], eax
call fcn.101076e9
add esp, 0x24
mov dword [ebp - 4], eax
test eax, eax
jne 0x10109368
push esi
call dword [sym.imp.KERNEL32.dll_FreeEnvironmentStringsW]
xor eax, eax
jmp 0x101093ba
push edi
push eax
call fcn.10100ddf
mov edi, eax
pop ecx
push ebx
test edi, edi
jne 0x10109388
call fcn.10100e2d
pop ecx
push esi
call dword [sym.imp.KERNEL32.dll_FreeEnvironmentStringsW]
xor eax, eax
jmp 0x101093b9
push ebx
push dword [ebp - 4]
push edi
push dword [ebp - 8]
push esi
push ebx
push ebx
call fcn.101076e9
add esp, 0x20
test eax, eax
jne 0x101093a7
push edi
call fcn.10100e2d
jmp 0x101093af
push ebx
call fcn.10100e2d
mov ebx, edi
pop ecx
push esi
call dword [sym.imp.KERNEL32.dll_FreeEnvironmentStringsW]
mov eax, ebx
pop edi
pop ebx
pop esi
leave
ret

Function at 0x101093be
Capabilities:
Query environment variable

Disassembly:
mov edi, edi
push esi
call dword [sym.imp.KERNEL32.dll_GetEnvironmentStringsW]
mov esi, eax
test esi, esi
jne 0x101093cf
pop esi
ret
push ebx
push edi
push esi
call fcn.101092e7
mov ebx, eax
sub ebx, esi
and ebx, 0xfffffffe
push ebx
call fcn.10100ddf
mov edi, eax
pop ecx
pop ecx
test edi, edi
je 0x101093f7
push ebx
push esi
push edi
call fcn.100d59d0
add esp, 0xc
push 0
call fcn.10100e2d
pop ecx
push esi
call dword [sym.imp.KERNEL32.dll_FreeEnvironmentStringsW]
mov eax, edi
pop edi
pop ebx
pop esi
ret

Function at 0x10109b51
Capabilities:
Set environment variable

Disassembly:
mov edi, edi
push ebp
mov ebp, esp
pop ebp
jmp fcn.1010966c
Function at 0x10110270
Capabilities:
Get geographical location

Disassembly:
mov edi, edi
push ebp
mov ebp, esp
push ecx
push esi
push edi
call fcn.1010146c
mov esi, dword [ebp + 8]
mov edi, eax
push 2
lea eax, [ebp - 4]
mov ecx, esi
push eax
and ecx, 0x3ff
push 0x20000001
or ecx, 0x400
push ecx
call dword [sym.imp.KERNEL32.dll_GetLocaleInfoW]
test eax, eax
je 0x101102df
cmp esi, dword [ebp - 4]
je 0x101102da
cmp dword [ebp + 0xc], 0
je 0x101102da
mov esi, dword [edi + 0x50]
lea ecx, [esi + 2]
mov ax, word [esi]
add esi, 2
test ax, ax
jne 0x101102b7
push dword [edi + 0x50]
sub esi, ecx
sar esi, 1
call fcn.1010fdc2
pop ecx
xor ecx, ecx
cmp eax, esi
setne cl
mov eax, ecx
jmp 0x101102e1
xor eax, eax
inc eax
jmp 0x101102e1
xor eax, eax
pop edi
pop esi
leave
ret
Function at 0x10110346
Capabilities:
Get geographical location

Disassembly:
mov edi, edi
push ebp
mov ebp, esp
sub esp, 0x18
mov eax, dword [0x10138040]
xor eax, ebp
mov dword [ebp - 4], eax
mov eax, dword [ebp + 0xc]
push ebx
mov ebx, dword [ebp + 0x10]
push esi
mov esi, dword [ebp + 8]
push edi
mov dword [ebp - 0x18], eax
call fcn.1010146c
add eax, 0x50
lea edi, [ebp - 0x10]
mov dword [ebp - 0x14], eax
xor eax, eax
stosd dword es:[edi], eax
stosd dword es:[edi], eax
stosd dword es:[edi], eax
call fcn.1010146c
lea ecx, [ebp - 0x10]
xor edx, edx
mov dword [eax + 0x34c], ecx
lea ecx, [esi + 0x80]
mov eax, dword [ebp - 0x14]
mov dword [eax], esi
lea edi, [eax + 4]
mov dword [edi], ecx
test ecx, ecx
je 0x101103bd
cmp word [ecx], dx
je 0x101103bd
mov eax, dword [0x10126b54]
push edi
dec eax
push eax
push 0x10126a40
call fcn.101102e5
mov eax, dword [ebp - 0x14]
add esp, 0xc
xor edx, edx
mov dword [ebp - 0x10], edx
mov eax, dword [eax]
test eax, eax
je 0x10110430
cmp word [eax], dx
je 0x10110430
mov eax, dword [edi]
test eax, eax
je 0x101103e1
cmp word [eax], dx
je 0x101103e1
lea eax, [ebp - 0x10]
push eax
call fcn.1010fcc8
jmp 0x101103ea
lea eax, [ebp - 0x10]
push eax
call fcn.1010fd63
cmp dword [ebp - 0x10], 0
pop ecx
jne 0x1011045a
mov eax, dword [0x10126a3c]
push dword [ebp - 0x14]
dec eax
push eax
push 0x10126730
call fcn.101102e5
add esp, 0xc
test al, al
je 0x1011045a
mov eax, dword [edi]
xor edi, edi
test eax, eax
je 0x10110425
cmp word [eax], di
je 0x10110425
lea eax, [ebp - 0x10]
push eax
call fcn.1010fcc8
pop ecx
jmp 0x1011045c
lea eax, [ebp - 0x10]
push eax
call fcn.1010fd63
jmp 0x10110422
mov eax, dword [edi]
test eax, eax
je 0x10110447
cmp word [eax], dx
je 0x10110447
lea eax, [ebp - 0x10]
push eax
call fcn.1010fc7d
pop ecx
jmp 0x1011045a
mov dword [ebp - 0x10], 0x104
call dword [sym.imp.KERNEL32.dll_GetUserDefaultLCID]
mov dword [ebp - 8], eax
mov dword [ebp - 0xc], eax
xor edi, edi
cmp dword [ebp - 0x10], 0
je 0x10110525
lea eax, [ebp - 0x10]
push eax
lea eax, [esi + 0x100]
neg esi
sbb esi, esi
and esi, eax
push esi
call fcn.1011016a
mov esi, eax
pop ecx
pop ecx
test esi, esi
je 0x10110525
movzx ecx, si
push ecx
call dword [sym.imp.KERNEL32.dll_IsValidCodePage]
test eax, eax
je 0x10110525
push 1
push dword [ebp - 0xc]
call dword [sym.imp.KERNEL32.dll_IsValidLocale]
test eax, eax
je 0x10110525
mov eax, dword [ebp - 0x18]
test eax, eax
je 0x101104b2
mov dword [eax], esi
mov eax, dword [ebp - 0x14]
push edi
push 0x55
add eax, 0x250
push eax
push dword [ebp - 0xc]
call fcn.10106a24
test ebx, ebx
je 0x10110520
push edi
push 0x55
lea eax, [ebx + 0x120]
push eax
push dword [ebp - 0xc]
call fcn.10106a24
push 0x40
push ebx
push 0x1001
push dword [ebp - 0xc]
call dword [sym.imp.KERNEL32.dll_GetLocaleInfoW]
test eax, eax
je 0x10110525
push 0x40
lea eax, [ebx + 0x80]
push eax
push 0x1002
push dword [ebp - 8]
call dword [sym.imp.KERNEL32.dll_GetLocaleInfoW]
test eax, eax
je 0x10110525
push 0xa
push 0x10
lea ecx, [ebx + 0x100]
push ecx
push esi
call fcn.100ebc94
add esp, 0x10
xor eax, eax
inc eax
jmp 0x10110527
xor eax, eax
mov ecx, dword [ebp - 4]
pop edi
pop esi
xor ecx, ebp
pop ebx
call fcn.10087e2f
leave
ret
Function at 0x1011301f
Capabilities:
Clear file content

Disassembly:
mov edi, edi
push ebp
mov ebp, esp
sub esp, 0x2c
push ebx
mov ebx, dword [ebp + 8]
lea ecx, [ebp - 0x2c]
push esi
push edi
push dword [ebp + 0x10]
mov edi, dword [ebp + 0x14]
push dword [ebp + 0xc]
push ebx
call fcn.10112f9b
mov eax, dword [ebp - 0x2c]
and eax, dword [ebp - 0x28]
cmp eax, 0xffffffff
je 0x1011318e
mov eax, dword [ebp - 0x24]
and eax, dword [ebp - 0x20]
cmp eax, 0xffffffff
je 0x1011318e
mov ecx, dword [ebp - 0x18]
mov eax, dword [ebp - 0x1c]
mov dword [ebp - 8], ecx
mov dword [ebp - 4], eax
test ecx, ecx
jl 0x10113143
jg 0x1011307b
test eax, eax
je 0x10113139
push 1
push 0x1000
call fcn.10105ae4
mov esi, eax
pop ecx
pop ecx
test esi, esi
jne 0x1011309e
push 0xc
pop ebx
mov byte [edi + 0x1c], 1
mov dword [edi + 0x18], ebx
jmp 0x10113130
push 0x8000
push ebx
call fcn.10112ecc
pop ecx
pop ecx
mov ecx, dword [ebp - 0x1c]
mov dword [ebp - 0xc], eax
mov eax, dword [ebp - 0x18]
test eax, eax
jl 0x101130c7
jg 0x101130c2
cmp ecx, 0x1000
jb 0x101130c7
mov ecx, 0x1000
push edi
push ecx
push esi
push ebx
call fcn.1010ab4a
add esp, 0x10
cmp eax, 0xffffffff
je 0x1011310c
mov ecx, dword [ebp - 4]
cdq
sub ecx, eax
mov eax, dword [ebp - 8]
mov dword [ebp - 4], ecx
sbb eax, edx
mov dword [ebp - 8], eax
test eax, eax
jg 0x101130c2
jl 0x101130f3
test ecx, ecx
jne 0x101130b4
push dword [ebp - 0xc]
push ebx
call fcn.10112ecc
push esi
call fcn.10100e2d
add esp, 0xc
xor ebx, ebx
jmp 0x1011319c
cmp byte [edi + 0x24], 0
je 0x10113123
cmp dword [edi + 0x20], 5
jne 0x10113123
mov byte [edi + 0x1c], 1
mov dword [edi + 0x18], 0xd
cmp byte [edi + 0x1c], 0
je 0x1011312e
mov ebx, dword [edi + 0x18]
jmp 0x10113130
xor ebx, ebx
push esi
call fcn.10100e2d
pop ecx
jmp 0x1011319c
test ecx, ecx
jg 0x10113105
jl 0x10113143
test eax, eax
jae 0x10113105
push 0
push dword [ebp + 0x10]
push dword [ebp + 0xc]
push ebx
call fcn.1010b7f4
and eax, edx
add esp, 0x10
cmp eax, 0xffffffff
jne 0x10113163
cmp byte [edi + 0x1c], 0
je 0x10113105
jmp 0x10113194
push ebx
call fcn.1010e17e
pop ecx
push eax
call dword [sym.imp.KERNEL32.dll_SetEndOfFile]
test eax, eax
jne 0x10113105
call dword [sym.imp.KERNEL32.dll_GetLastError]
push 0xd
mov byte [edi + 0x24], 1
mov dword [edi + 0x20], eax
pop ebx
mov byte [edi + 0x1c], 1
mov dword [edi + 0x18], ebx
jmp 0x1011319c
cmp byte [edi + 0x1c], 0
je 0x10113199
mov ebx, dword [edi + 0x18]
jmp 0x1011319c
push 0x16
pop ebx
push 0
push dword [ebp - 0x28]
push dword [ebp - 0x2c]
push dword [ebp - 0x14]
call fcn.1010b7f4
add esp, 0x10
mov eax, ebx
pop edi
pop esi
pop ebx
leave
ret
Function at 0x10115880
Capabilities:
Parse pe header

Disassembly:
push ebp
mov ebp, esp
mov eax, dword [ebp + 8]
mov ecx, 0x5a4d
cmp word [eax], cx
jne 0x101158ad
mov ecx, dword [eax + 0x3c]
add ecx, eax
cmp dword [ecx], 0x4550
jne 0x101158ad
mov edx, 0x10b
xor eax, eax
cmp word [ecx + 0x18], dx
sete al
pop ebp
ret
xor eax, eax
pop ebp
ret
Function at 0x10145e66
Capabilities:
Access peb ldr_data

Disassembly:
push ebp
mov ebp, esp
push ebx
push edi
push esi
sub esp, 0x40
mov eax, dword [ebp + 0xc]
mov ecx, dword [ebp + 8]
mov edx, 0xffffffff
cmp ecx, 0
sete bl
cmp eax, 0
sete bh
and bl, bh
test bl, 1
mov dword [ebp - 0x10], eax
mov dword [ebp - 0x14], ecx
mov dword [ebp - 0x18], edx
jne 0x10146029
jmp 0x10145ef7
mov dword [0x1016f804], 0xe77
mov eax, dword [ebp - 0x1c]
add eax, 0x10
mov ecx, dword [ebp - 0x1c]
add ecx, 0x24
mov edx, dword [ebp - 0x1c]
mov esi, dword [edx + 0x28]
mov dword [ebp - 0x20], esi
mov dword [ebp - 0x24], ecx
mov dword [ebp - 0x28], eax
mov eax, dword [ebp - 0x28]
mov ecx, dword [eax]
mov edx, dword [ebp - 0x10]
cmp ecx, edx
sete bl
mov bh, byte [ebp - 0x29]
and bh, bl
test bh, 1
mov dword [ebp - 0x30], ecx
jne 0x10145ee7
jmp 0x10145f65
mov eax, dword [ebp - 0x1c]
add eax, 0xfffffff8
mov dword [ebp - 0x18], eax
jmp 0x10146029
mov dword [0x1016f808], 0x25ed
mov dword [0x1016f804], 0x14fc
mov ecx, dword fs:[0x18]
mov dword [0x1016f804], 0xffffeafc
mov eax, dword [ecx + 0x30]
mov dword [0x1016f808], 0xffffd3cf
mov eax, dword [eax + 0xc]
add eax, 0x14
mov ecx, dword [ebp - 0x10]
cmp ecx, 0
setne dl
mov esi, eax
mov dword [ebp - 0x34], eax
mov byte [ebp - 0x29], dl
mov dword [ebp - 0x38], esi
mov eax, dword [ebp - 0x38]
xor ecx, ecx
mov eax, dword [eax]
mov edx, dword [ebp - 0x34]
cmp eax, edx
mov dword [ebp - 0x1c], eax
mov dword [ebp - 0x18], ecx
je 0x10146029
jmp 0x10145ea1
xor eax, eax
mov ecx, dword [ebp - 0x24]
mov dx, word [ecx]
mov dword [0x1016f804], 0x26b6
shr dx, 1
movzx esi, dx
cmp dx, 0
mov edi, dword [ebp - 0x1c]
mov dword [ebp - 0x38], edi
mov dword [ebp - 0x3c], esi
mov dword [ebp - 0x40], eax
je 0x10145f48
mov eax, dword [ebp - 0x40]
mov ecx, dword [ebp - 0x20]
mov dx, word [ecx + eax*2]
mov si, dx
add si, 0xffbf
mov di, dx
add di, 0x20
cmp si, 0x1a
mov dword [ebp - 0x44], eax
mov word [ebp - 0x46], dx
mov word [ebp - 0x48], di
jb 0x10145fc5
mov ax, word [ebp - 0x46]
mov word [ebp - 0x48], ax
mov ax, word [ebp - 0x48]
mov ecx, dword [ebp - 0x14]
mov edx, dword [ebp - 0x44]
cmp word [ecx + edx*2], ax
sete bl
cmp ax, 0
sete bh
mov al, bl
xor al, 1
or bh, al
test bh, 1
mov byte [ebp - 0x49], bl
jne 0x10146007
mov dword [0x1016f804], 0x667
mov eax, dword [ebp - 0x44]
add eax, 1
mov ecx, dword [ebp - 0x3c]
cmp eax, ecx
mov dword [ebp - 0x40], eax
jb 0x10145f91
mov al, byte [ebp - 0x49]
test al, 1
mov ecx, dword [ebp - 0x1c]
mov dword [ebp - 0x38], ecx
jne 0x10146019
jmp 0x10145f48
mov dword [0x1016f808], 0xffffc994
mov eax, dword [ebp - 0x30]
mov dword [ebp - 0x18], eax
mov eax, dword [ebp - 0x18]
add esp, 0x40
pop esi
pop edi
pop ebx
pop ebp
ret
Function at 0x1014643a
Capabilities:
Encrypt data using rc4 ksa

Disassembly:
push ebp
mov ebp, esp
push ebx
push edi
push esi
sub esp, 0x18
mov eax, dword [ebp + 0x10]
mov ecx, dword [ebp + 0xc]
mov edx, dword [ebp + 8]
mov dword [0x1016f810], 0
mov byte [0x1016f814], 0
mov dword [0x1016f804], 0x1f87
mov dword [ebp - 0x10], eax
mov dword [ebp - 0x14], ecx
mov dword [ebp - 0x18], edx
xor eax, eax
mov dword [0x1016f80c], 0
mov dword [ebp - 0x1c], eax
jmp 0x101464ae
xor eax, eax
mov dword [0x1016f804], 0xd51
mov dword [0x1016f80c], 0
mov dword [ebp - 0x20], eax
jmp 0x101464d6
mov dword [0x1016f804], 0x1e31
add esp, 0x18
pop esi
pop edi
pop ebx
pop ebp
ret
mov eax, dword [ebp - 0x1c]
mov ecx, eax
mov dl, cl
mov ecx, dword [ebp - 0x18]
mov byte [ecx + eax], dl
mov eax, dword [0x1016f80c]
add eax, 1
mov dword [0x1016f80c], eax
cmp eax, 0x100
mov dword [ebp - 0x1c], eax
jl 0x101464ae
jmp 0x10146481
mov eax, dword [ebp - 0x20]
mov ecx, 0x100
mov dword [0x1016f818], 0
mov dword [0x1016f804], 0x17de
mov edx, dword [0x1016f810]
mov esi, dword [ebp - 0x18]
movzx edi, byte [esi + eax]
add edi, edx
mov dword [ebp - 0x24], eax
xor edx, edx
mov ebx, dword [ebp - 0x10]
div ebx
mov esi, dword [ebp - 0x14]
movzx edx, byte [esi + edx]
add edi, edx
mov dword [0x1016f818], edi
mov dword [0x1016f808], 0x51e
mov dword [0x1016f804], 0xffffe312
mov eax, edi
cdq
idiv ecx
mov dword [0x1016f810], edx
mov ecx, dword [ebp - 0x18]
mov edi, dword [ebp - 0x24]
mov cl, byte [ecx + edi]
mov byte [0x1016f814], cl
mov dword [0x1016f804], 0x1980
mov ecx, dword [ebp - 0x18]
mov cl, byte [ecx + edx]
mov edx, dword [ebp - 0x18]
mov byte [edx + edi], cl
mov ecx, dword [0x1016f804]
add ecx, 0x1ff7
mov dword [0x1016f808], ecx
mov cl, byte [0x1016f814]
mov edx, dword [0x1016f810]
mov esi, dword [ebp - 0x18]
mov byte [esi + edx], cl
mov dword [0x1016f804], 0x5e6
mov edx, dword [0x1016f808]
add edx, 0xfffffd1a
mov dword [0x1016f808], edx
mov edx, dword [0x1016f80c]
add edx, 1
mov dword [0x1016f80c], edx
cmp edx, 0x100
mov dword [ebp - 0x20], edx
jl 0x101464d6
jmp 0x1014649c
Function at 0x10146a2f
Capabilities:
Resolve function by parsing pe exports

Disassembly:
push ebp
mov ebp, esp
push ebx
push edi
push esi
sub esp, 0x48
mov eax, dword [ebp + 8]
mov dword [0x1016f808], 0x26de
mov dword [ebp - 0x10], eax
call fcn.10146034
xor ecx, ecx
mov edx, eax
mov esi, dword [eax + 0x3c]
mov edi, edx
add edi, esi
mov dword [0x1016f808], 0xe73
mov esi, dword [eax + esi]
cmp esi, 0x4550
mov dword [ebp - 0x14], eax
mov dword [ebp - 0x18], ecx
mov dword [ebp - 0x1c], edx
mov dword [ebp - 0x20], edi
je 0x10146a7f
mov eax, dword [ebp - 0x18]
mov dword [ebp - 0x20], eax
mov eax, dword [ebp - 0x20]
mov eax, dword [eax + 0x78]
mov dword [0x1016f804], 0x16bd
mov ecx, dword [ebp - 0x1c]
mov edx, dword [ebp - 0x14]
add ecx, dword [edx + eax + 0x20]
mov esi, dword [edx + eax + 0x18]
cmp esi, 0
mov edi, dword [ebp - 0x18]
mov dword [ebp - 0x24], eax
mov dword [ebp - 0x28], ecx
mov dword [ebp - 0x2c], esi
mov dword [ebp - 0x30], edi
je 0x10146b9a
jmp 0x10146b14
xor eax, eax
mov ecx, dword [ebp - 0x34]
add ecx, 2
mov edx, dword [ebp - 0x38]
add edx, 1
mov esi, dword [ebp - 0x2c]
cmp edx, esi
mov dword [ebp - 0x3c], edx
mov dword [ebp - 0x40], ecx
mov dword [ebp - 0x30], eax
jb 0x10146b26
jmp 0x10146b9a
mov al, byte [ebp - 0x41]
test al, 1
jne 0x10146aec
jmp 0x10146aba
mov eax, dword [ebp - 0x34]
movzx ecx, word [eax]
mov edx, dword [ebp - 0x1c]
mov esi, dword [ebp - 0x24]
add edx, dword [edx + esi + 0x1c]
mov edi, dword [ebp - 0x1c]
add edi, dword [edx + ecx*4]
mov dword [0x1016f804], 0x22a3
mov dword [ebp - 0x30], edi
jmp 0x10146b9a
xor eax, eax
mov ecx, dword [ebp - 0x1c]
mov edx, dword [ebp - 0x24]
add ecx, dword [ecx + edx + 0x24]
mov dword [ebp - 0x40], ecx
mov dword [ebp - 0x3c], eax
mov eax, dword [ebp - 0x3c]
mov ecx, dword [ebp - 0x40]
xor edx, edx
mov esi, dword [ebp - 0x28]
mov edi, dword [esi + eax*4]
mov dword [ebp - 0x38], eax
mov dword [ebp - 0x34], ecx
mov dword [ebp - 0x48], edi
mov dword [ebp - 0x4c], edx
mov eax, dword [ebp - 0x4c]
mov ecx, eax
mov edx, dword [ebp - 0x48]
add ecx, edx
mov esi, dword [ebp - 0x1c]
mov bl, byte [esi + ecx]
mov ecx, dword [ebp - 0x10]
mov bh, byte [ecx + eax]
cmp bl, bh
sete cl
cmp bl, 0
mov dword [ebp - 0x50], eax
mov byte [ebp - 0x51], bh
mov byte [ebp - 0x41], cl
je 0x10146ae3
mov eax, dword [ebp - 0x50]
add eax, 1
mov cl, byte [ebp - 0x51]
cmp cl, 0
setne dl
mov ch, byte [ebp - 0x41]
and ch, dl
cmp eax, 0x20
setb dl
and ch, dl
test ch, 1
mov dword [ebp - 0x4c], eax
jne 0x10146b40
jmp 0x10146ae3
mov eax, dword [ebp - 0x30]
add esp, 0x48
pop esi
pop edi
pop ebx
pop ebp
ret
Function at 0x10146bea
Capabilities:
Get number of processors

Disassembly:
push ebp
mov ebp, esp
sub esp, 0x28
mov dword [ebp - 4], 0
mov eax, dword fs:[0x30]
mov dword [ebp - 4], eax
mov ecx, dword [ebp - 4]
mov ecx, dword [ecx + 0x10]
mov ecx, dword [ecx + 0x3c]
mov dword [ebp - 8], eax
mov dword [ebp - 0xc], ecx
xor eax, eax
mov dword [0x1016f804], 0x1927
mov dword [ebp - 0x10], eax
jmp 0x10146c38
mov eax, dword [ebp - 0xc]
mov ecx, dword [ebp - 0x14]
cmp word [eax + ecx*2 - 0x12], 0x64
je 0x10146ccc
jmp 0x10146cfc
mov eax, dword [ebp - 0x10]
mov ecx, dword [ebp - 0xc]
cmp word [ecx + eax*2], 0
mov edx, eax
mov dword [ebp - 0x18], eax
mov dword [ebp - 0x1c], edx
je 0x10146c6f
mov dword [0x1016f804], 0x9f6
mov eax, dword [ebp - 0x18]
add eax, 1
cmp eax, 0x104
mov ecx, eax
mov dword [ebp - 0x10], ecx
mov dword [ebp - 0x1c], eax
jl 0x10146c38
mov eax, dword [ebp - 0x1c]
mov ecx, dword [ebp - 0xc]
cmp word [ecx + eax*2 - 0x1a], 0x6c
mov dword [ebp - 0x14], eax
jne 0x10146cfc
mov dword [0x1016f804], 0x21a9
mov eax, dword [ebp - 0x14]
add eax, 0xfffffff4
shl eax, 1
mov ecx, dword [ebp - 0xc]
add ecx, eax
mov dword [ebp - 0x20], ecx
mov eax, dword [ebp - 0x20]
cmp word [eax], 0x6f
jne 0x10146cfc
mov eax, dword [ebp - 0xc]
mov ecx, dword [ebp - 0x14]
cmp word [eax + ecx*2 - 0x16], 0x61
jne 0x10146cfc
mov eax, dword [ebp - 0xc]
mov ecx, dword [ebp - 0x14]
cmp word [eax + ecx*2 - 0x14], 0x64
je 0x10146c20
jmp 0x10146cfc
mov eax, dword [ebp - 0x14]
add eax, 0xfffffff8
mov dword [ebp - 0x24], eax
mov eax, dword [ebp - 0xc]
mov ecx, dword [ebp - 0x24]
cmp word [eax + ecx*2], 0x6c
jne 0x10146cfc
mov eax, 1
mov ecx, dword [ebp - 0xc]
mov edx, dword [ebp - 0x14]
cmp word [ecx + edx*2 - 0xe], 0x6c
mov dword [ebp - 0x28], eax
je 0x10146d03
xor eax, eax
mov dword [ebp - 0x28], eax
jmp 0x10146d03
mov eax, dword [ebp - 0x28]
add esp, 0x28
pop ebp
ret
Function at 0x10146d0b
Capabilities:
Parse pe header

Disassembly:
push ebp
mov ebp, esp
push esi
sub esp, 0x50
mov eax, dword [ebp + 0xc]
mov ecx, dword [ebp + 8]
xor edx, edx
mov dword [ebp - 0x28], eax
mov dword [ebp - 0x2c], ecx
mov dword [ebp - 0x30], edx
jmp 0x10146d5b
lea eax, [ebp - 0x24]
mov dword [0x1016f804], 0x1372
mov dword [ebp - 0x34], eax
call fcn.10147420
mov dword [esp], eax
mov eax, dword [ebp - 0x34]
mov dword [esp + 4], eax
call fcn.101461a6
cmp eax, 0
mov dword [ebp - 0x38], eax
jne 0x10146d87
xor eax, eax
add esp, 0x50
pop esi
pop ebp
ret
mov eax, dword [ebp - 0x30]
mov ecx, eax
add ecx, 1
mov dl, byte [eax + 0x101484ab]
mov dh, byte [eax + 0x1014847c]
sub dh, dl
mov byte [ebp + eax - 0x24], dh
cmp ecx, 0xe
mov dword [ebp - 0x30], ecx
je 0x10146d25
jmp 0x10146d5b
mov eax, dword [ebp - 0x38]
mov ecx, esp
mov dword [ecx + 0xc], 0x40
mov dword [ecx + 8], 0x1000
mov dword [ecx + 4], 0x6000
mov dword [ecx], 0
call eax
sub esp, 0x10
mov ecx, dword [0x1016f804]
add ecx, 0xffffdbc9
mov dword [0x1016f804], ecx
mov dword [esp], eax
mov ecx, dword [ebp - 0x28]
mov dword [esp + 4], ecx
mov dword [ebp - 0x3c], eax
call fcn.1014633a
xor eax, eax
mov ecx, dword [0x1016f804]
add ecx, 0xffffe005
mov dword [0x1016f808], ecx
mov ecx, dword [ebp - 0x3c]
mov word [ecx], 0x5a4d
mov dword [ecx + 0x3c], 0xd0
mov dword [ecx + 0xd0], 0x4550
add ecx, 0xffc00000
mov edx, dword [ebp - 0x2c]
mov dword [edx + 4], ecx
mov dword [0x1016f804], 0x19c4
mov ecx, dword [ebp - 0x3c]
mov dword [edx + 0x1c], ecx
add ecx, 0x1ee1
mov esi, dword [ebp - 0x3c]
cmp esi, 0
mov dword [ebp - 0x40], ecx
mov dword [ebp - 0x44], eax
je 0x10146e36
mov eax, dword [ebp - 0x40]
mov dword [ebp - 0x44], eax
mov eax, dword [ebp - 0x44]
add esp, 0x50
pop esi
pop ebp
ret
Function at 0x10146f59
Capabilities:
Encrypt data using rc4 prga

Disassembly:
push ebp
mov ebp, esp
push ebx
push edi
push esi
sub esp, 0x30
mov eax, dword [ebp + 0x14]
mov ecx, dword [ebp + 0x10]
mov edx, dword [ebp + 0xc]
mov esi, dword [ebp + 8]
xor edi, edi
mov dword [0x1016f80c], 0
mov dword [0x1016f810], 0
mov dword [0x1016f81c], 0
mov ebx, dword [0x1016f808]
add ebx, 0xfffff338
mov dword [0x1016f804], ebx
cmp eax, 0
mov ebx, edi
mov dword [ebp - 0x10], eax
mov eax, edi
mov dword [ebp - 0x14], eax
mov dword [ebp - 0x18], ecx
mov dword [ebp - 0x1c], edx
mov dword [ebp - 0x20], esi
mov dword [ebp - 0x24], ebx
mov dword [ebp - 0x28], edi
je 0x101470dc
mov eax, dword [ebp - 0x28]
mov ecx, dword [ebp - 0x14]
mov edx, dword [ebp - 0x24]
mov esi, 0x100
mov dword [0x1016f804], 0x20d1
mov dword [0x1016f808], 0x7e7
add ecx, 1
mov dword [ebp - 0x2c], eax
mov eax, ecx
mov dword [ebp - 0x30], edx
cdq
idiv esi
mov dword [0x1016f80c], edx
mov ecx, dword [ebp - 0x20]
movzx edi, byte [ecx + edx]
mov ebx, dword [ebp - 0x30]
add edi, ebx
mov eax, edi
mov dword [ebp - 0x34], edx
cdq
idiv esi
mov dword [0x1016f810], edx
mov esi, dword [ebp - 0x34]
mov cl, byte [ecx + esi]
mov byte [0x1016f814], cl
mov edi, dword [ebp - 0x20]
mov cl, byte [edi + edx]
mov byte [edi + esi], cl
mov cl, byte [0x1016f814]
mov edx, dword [0x1016f810]
mov byte [edi + edx], cl
mov dword [0x1016f808], 0x2664
mov edx, dword [0x1016f80c]
movzx edx, byte [edi + edx]
mov ebx, dword [0x1016f810]
movzx ebx, byte [edi + ebx]
add ebx, edx
and ebx, 0xff
mov dword [0x1016f81c], ebx
mov dword [0x1016f804], 0x1fb1
mov cl, byte [edi + ebx]
mov edx, dword [ebp - 0x18]
mov ebx, dword [ebp - 0x2c]
mov ch, byte [edx + ebx]
mov byte [0x1016f821], ch
mov byte [0x1016f822], cl
xor ch, cl
mov byte [0x1016f820], ch
mov dword [0x1016f804], 0x251f
mov edx, dword [ebp - 0x1c]
mov byte [edx + ebx], ch
mov dword [0x1016f808], 0x13d3
add ebx, 1
mov edx, dword [ebp - 0x10]
cmp ebx, edx
mov dword [ebp - 0x38], ebx
je 0x101470dc
mov eax, dword [0x1016f80c]
mov dword [ebp - 0x3c], eax
mov eax, dword [0x1016f810]
mov ecx, dword [ebp - 0x3c]
mov edx, dword [ebp - 0x38]
mov dword [ebp - 0x24], eax
mov dword [ebp - 0x14], ecx
mov dword [ebp - 0x28], edx
jmp 0x10146fc4
add esp, 0x30
pop esi
pop edi
pop ebx
pop ebp
ret