joyce8/EMBER2024-capa huggingface dataset:
Function at 0x439d10
Capabilities:
Encode data using xor
Hash data using murmur2

Disassembly:
push ebp
mov ebp, esp
push ebx
push edi
push esi
sub esp, 0x18
mov dword [ebp - 0x10], ecx
mov esi, dword [ebp + 0xc]
movzx ebx, byte [esi + 0xb]
mov eax, dword [esi]
mov ecx, dword [esi + 4]
test bl, bl
mov dword [ebp - 0x14], ecx
lea ecx, [eax + ecx]
lea edx, [esi + ebx]
cmovs edx, ecx
cmovs esi, eax
sub edx, esi
cmp edx, 4
mov dword [ebp - 0x20], ebx
jb 0x439d7d
mov ecx, esi
mov eax, edx
nop word [eax + eax]
imul edi, dword [ecx], 0x5bd1e995
mov ebx, edi
shr ebx, 0x18
xor ebx, edi
imul edi, ebx, 0x5bd1e995
imul eax, eax, 0x5bd1e995
xor eax, edi
add ecx, 4
add edx, 0xfffffffc
cmp edx, 3
ja 0x439d50
cmp edx, 1
jne 0x439d86
jmp 0x439da2
mov eax, edx
mov ecx, esi
cmp edx, 1
je 0x439da2
cmp edx, 2
je 0x439d99
cmp edx, 3
jne 0x439dad
movzx edx, byte [ecx + 2]
shl edx, 0x10
xor eax, edx
movzx edx, byte [ecx + 1]
shl edx, 8
xor eax, edx
movzx ecx, byte [ecx]
xor ecx, eax
imul eax, ecx, 0x5bd1e995
mov ecx, dword [ebp - 0x10]
mov ebx, dword [ecx + 4]
xor ecx, ecx
test ebx, ebx
je 0x439f0e
mov edx, eax
shr edx, 0xd
xor edx, eax
imul eax, edx, 0x5bd1e995
mov edi, eax
shr edi, 0xf
xor edi, eax
mov edx, ebx
shr edx, 1
and edx, 0x55555555
mov eax, ebx
sub eax, edx
mov edx, eax
and edx, 0x33333333
shr eax, 2
and eax, 0x33333333
add eax, edx
mov edx, eax
shr edx, 4
add edx, eax
and edx, 0xf0f0f0f
imul eax, edx, 0x1010101
shr eax, 0x18
mov dword [ebp - 0x24], eax
cmp eax, 1
ja 0x439e16
lea edx, [ebx - 1]
and edx, edi
jmp 0x439e22
mov edx, edi
cmp edi, ebx
jb 0x439e22
mov eax, edi
xor edx, edx
div ebx
mov eax, dword [ebp - 0x10]
mov eax, dword [eax]
mov eax, dword [eax + edx*4]
test eax, eax
je 0x439f0e
mov dword [ebp - 0x18], ebx
mov ebx, dword [eax]
test ebx, ebx
je 0x439f0e
mov dword [ebp - 0x10], edx
mov eax, dword [ebp - 0x18]
dec eax
mov dword [ebp - 0x1c], eax
mov ecx, dword [ebp - 0x20]
test cl, cl
mov eax, dword [ebp - 0x14]
cmovns eax, ecx
mov dword [ebp - 0x14], eax
jmp 0x439e75
and eax, dword [ebp - 0x1c]
cmp eax, edx
jne 0x439f0c
mov ebx, dword [ebx]
test ebx, ebx
je 0x439f0c
mov eax, dword [ebx + 4]
cmp eax, edi
jne 0x439ed0
movzx eax, byte [ebx + 0x13]
mov ecx, eax
test al, al
jns 0x439e89
mov ecx, dword [ebx + 0xc]
cmp ecx, dword [ebp - 0x14]
jne 0x439e6b
lea ecx, [ebx + 8]
test al, al
jns 0x439e97
mov ecx, dword [ecx]
js 0x439eee
cmp dword [ebp - 0x14], 0
je 0x439f08
xor ecx, ecx
nop word cs:[eax + eax]
movzx edx, byte [ebx + ecx + 8]
cmp dl, byte [esi + ecx]
jne 0x439e6b
inc ecx
cmp eax, ecx
jne 0x439eb0
jmp 0x439f08
cmp dword [ebp - 0x24], 1
mov edx, dword [ebp - 0x10]
jbe 0x439e60
mov ecx, dword [ebp - 0x18]
cmp eax, ecx
jb 0x439e63
xor edx, edx
div ecx
mov eax, edx
mov edx, dword [ebp - 0x10]
jmp 0x439e63
mov eax, dword [ebp - 0x14]
test eax, eax
je 0x439f08
push eax
push esi
push ecx
call fcn.0046567d
add esp, 0xc
test eax, eax
jne 0x439e6b
mov ecx, ebx
jmp 0x439f0e
xor ecx, ecx
mov eax, dword [ebp + 8]
mov dword [eax], ecx
add esp, 0x18
pop esi
pop edi
pop ebx
pop ebp
ret 8
Function at 0x43a760
Capabilities:
Contain obfuscated stackstrings

Disassembly:
push ebp
mov ebp, esp
push ebx
push edi
push esi
and esp, 0xfffffff8
sub esp, 0x20
mov eax, dword [0x4a6010]
xor eax, ebp
mov dword [esp + 0x18], eax
mov edi, dword [ecx + 0x38]
test edi, edi
jne 0x43a825
mov esi, ecx
mov dword [esp + 0xc], 0xffffffff
mov dword [esp + 0x10], 0xffffffff
mov dword [esp + 0x14], 0x9ffffff
lea edx, [esp + 0xc]
cmp edx, str.discarded
ja 0x43a7b7
lea eax, [esp + 0x15]
cmp eax, str.discarded
ja 0x43a83c
mov dword [esp + 0x10], 0x65647261
mov dword [esp + 0xc], 0x63736964
mov word [esp + 0x14], 0x64
mov edi, esp
mov ecx, esi
push edx
push edi
call fcn.0043a6d0
push 0x48
call fcn.004633c6
add esp, 4
mov ebx, eax
mov ecx, eax
push edi
push dword [esi + 0x28]
lea eax, [esp + 0x14]
push eax
call fcn.0043afc0
mov edi, dword [esi + 0x38]
mov dword [esi + 0x38], ebx
test edi, edi
je 0x43a80f
mov ecx, edi
call fcn.0043b0b0
push edi
call fcn.004633f6
add esp, 4
cmp byte [esp + 0x17], 0
jns 0x43a822
push dword [esp + 0xc]
call fcn.004633f6
add esp, 4
mov edi, dword [esi + 0x38]
mov ecx, dword [esp + 0x18]
xor ecx, ebp
call fcn.00464393
mov eax, edi
lea esp, [ebp - 0xc]
pop esi
pop edi
pop ebx
pop ebp
ret 4
push str.char_traits::copy_overlapped_range
push str.__s2_____s1____s2_____s1__n
push 0xee
push str....._buildtools_third_partylibc_trunkinclude__stringchar_traits.h
push str._s:_d:_assertion__s_failed:__s
call fcn.00416390
int3

Function at 0x43b770
Capabilities:
Get system information on windows

Disassembly:
push ebp
mov ebp, esp
push ebx
push edi
push esi
sub esp, 0x124
mov eax, dword [0x4a6010]
xor eax, ebp
mov dword [ebp - 0x10], eax
lea eax, [ebp - 0x128]
push 0x118
push 0
push eax
call fcn.00467280
add esp, 0xc
mov dword [ebp - 0x12c], 0x11c
lea edi, [ebp - 0x12c]
push edi
call dword [sym.imp.KERNEL32.dll_GetVersionExW]
mov dword [ebp - 0x130], 0
lea eax, [ebp - 0x130]
push eax
push 0
push 0
push dword [ebp - 0x124]
push dword [ebp - 0x128]
call dword [sym.imp.KERNEL32.dll_GetProductInfo]
push 0x54
call fcn.004633c6
add esp, 4
mov esi, eax
mov ebx, dword [ebp - 0x130]
mov eax, dword [0x4ab90c]
mov ecx, dword [0x4a9ca0]
mov edx, dword fs:[0x2c]
mov ecx, dword [edx + ecx*4]
cmp eax, dword [ecx + 4]
jg 0x43b82e
mov ecx, esi
push ebx
push 0x4ab8e8
push edi
call fcn.0043b8e0
mov ecx, dword [ebp - 0x10]
xor ecx, ebp
call fcn.00464393
mov eax, esi
add esp, 0x124
pop esi
pop edi
pop ebx
pop ebp
ret
push 0x4ab90c
call fcn.00463467
add esp, 4
cmp dword [0x4ab90c], 0xffffffff
jne 0x43b809
xorps xmm0, xmm0
movups xmmword [0x4ab8f8], xmm0
movups xmmword [0x4ab8e8], xmm0
mov dword [0x4ab908], 0
push 0x4ab8e8
call dword [sym.imp.KERNEL32.dll_GetNativeSystemInfo]
push 0x4ab90c
call fcn.004634dd
add esp, 4
jmp 0x43b809
Function at 0x43c300
Capabilities:
Query or enumerate registry value

Disassembly:
push ebp
mov ebp, esp
push edi
push esi
sub esp, 0x10
mov eax, dword [ebp + 8]
mov edx, dword [0x4a6010]
xor edx, ebp
mov dword [ebp - 0xc], edx
mov dword [ebp - 0x10], 4
mov dword [ebp - 0x14], 4
mov dword [ebp - 0x18], 0
lea edx, [ebp - 0x14]
lea esi, [ebp - 0x18]
lea edi, [ebp - 0x10]
push edx
push esi
push edi
push 0
push eax
push dword [ecx]
call dword [sym.imp.ADVAPI32.dll_RegQueryValueExW]
mov esi, eax
test eax, eax
jne 0x43c368
mov eax, dword [ebp - 0x10]
add eax, 0xfffffffd
mov esi, 0x3f4
cmp eax, 1
ja 0x43c368
cmp dword [ebp - 0x14], 4
jne 0x43c368
mov eax, dword [ebp + 0xc]
mov ecx, dword [ebp - 0x18]
mov dword [eax], ecx
xor esi, esi
mov ecx, dword [ebp - 0xc]
xor ecx, ebp
call fcn.00464393
mov eax, esi
add esp, 0x10
pop esi
pop edi
pop ebp
ret 8

Function at 0x43c380
Capabilities:
Query environment variable
Query or enumerate registry value

Disassembly:
push ebp
mov ebp, esp
push ebx
push edi
push esi
mov eax, 0x100c
call fcn.004647b0
mov esi, ecx
mov edi, dword [ebp + 8]
mov eax, dword [0x4a6010]
xor eax, ebp
mov dword [ebp - 0x10], eax
lea ebx, [ebp - 0x810]
push 0x800
push 0xff
push ebx
call fcn.00467280
add esp, 0xc
mov dword [ebp - 0x1014], 1
mov dword [ebp - 0x1018], 0x800
lea eax, [ebp - 0x1018]
lea ecx, [ebp - 0x1014]
push eax
push ebx
push ecx
push 0
push edi
push dword [esi]
call dword [sym.imp.ADVAPI32.dll_RegQueryValueExW]
mov edi, eax
test eax, eax
jne 0x43c456
mov esi, dword [ebp + 0xc]
mov eax, dword [ebp - 0x1014]
cmp eax, 2
je 0x43c409
mov edi, 0x3f4
cmp eax, 1
jne 0x43c456
mov ecx, esi
push ebx
jmp 0x43c44f
lea edi, [ebp - 0x1010]
push 0x800
push 0xff
push edi
call fcn.00467280
add esp, 0xc
push 0x400
push edi
push ebx
call dword [sym.imp.KERNEL32.dll_ExpandEnvironmentStringsW]
mov dword [ebp - 0x1018], eax
add eax, 0xfffffbff
mov edi, 0xea
cmp eax, 0xfffffc00
jb 0x43c456
mov ecx, esi
lea eax, [ebp - 0x1010]
push eax
call fcn.00433bea
xor edi, edi
mov ecx, dword [ebp - 0x10]
xor ecx, ebp
call fcn.00464393
mov eax, edi
add esp, 0x100c
pop esi
pop edi
pop ebx
pop ebp
ret 8
Function at 0x43c790
Capabilities:
Check for time delay via queryperformancecounter
Execute anti-debugging instructions

Disassembly:
push ebp
mov ebp, esp
push ebx
push edi
push esi
and esp, 0xfffffff8
sub esp, 0x48
mov eax, dword [0x4a6010]
xor eax, ebp
mov dword [esp + 0x40], eax
movsd xmm1, qword [0x4ab918]
xorpd xmm0, xmm0
ucomisd xmm1, xmm0
jne 0x43c90c
jp 0x43c90c
mov esi, dword [sym.imp.KERNEL32.dll_GetCurrentThread]
call esi
push eax
call dword [sym.imp.KERNEL32.dll_GetThreadPriority]
mov dword [esp + 0xc], eax
call esi
push 2
push eax
call dword [sym.imp.KERNEL32.dll_SetThreadPriority]
mov eax, dword [0x4ab928]
mov ecx, dword [0x4a9ca0]
mov edx, dword fs:[0x2c]
mov ecx, dword [edx + ecx*4]
cmp eax, dword [ecx + 4]
jg 0x43c931
mov eax, dword [0x4ab938]
mov ecx, dword [0x4a9ca0]
mov edx, dword fs:[0x2c]
mov ecx, dword [edx + ecx*4]
cmp eax, dword [ecx + 4]
jg 0x43c96a
rdtsc
mov dword [esp + 8], eax
mov dword [esp + 4], edx
mov dword [esp + 0x3c], 0
mov dword [esp + 0x38], 0
lea ebx, [esp + 0x38]
push ebx
call dword [sym.imp.KERNEL32.dll_QueryPerformanceCounter]
mov esi, dword [esp + 0x38]
mov edi, dword [esp + 0x3c]
call dword [sym.imp.KERNEL32.dll_GetCurrentThread]
push dword [esp + 0xc]
push eax
call dword [sym.imp.KERNEL32.dll_SetThreadPriority]
mov dword [esp + 0x3c], 0
mov dword [esp + 0x38], 0
push ebx
call dword [sym.imp.KERNEL32.dll_QueryPerformanceFrequency]
sub esi, dword [0x4ab930]
sbb edi, dword [0x4ab934]
movd xmm0, edi
movd xmm1, esi
punpckldq xmm1, xmm0
movq qword [esp + 0x28], xmm1
fild qword [esp + 0x28]
fstp qword [esp + 0x20]
movsd xmm0, qword [esp + 0x20]
fild qword [esp + 0x38]
fstp qword [esp + 0x30]
divsd xmm0, qword [esp + 0x30]
pxor xmm1, xmm1
movsd xmm2, qword [0x49c5b8]
ucomisd xmm2, xmm0
ja 0x43c90c
mov eax, dword [esp + 8]
sub eax, dword [0x4ab920]
mov ecx, dword [esp + 4]
sbb ecx, dword [0x4ab924]
movd xmm1, ecx
movd xmm2, eax
punpckldq xmm2, xmm1
punpckldq xmm2, xmmword [0x49c590]
subpd xmm2, xmmword [0x49c5a0]
movapd xmm1, xmm2
unpckhpd xmm1, xmm2
addsd xmm1, xmm2
divsd xmm1, xmm0
movsd qword [0x4ab918], xmm1
movsd qword [esp + 0x18], xmm1
fld qword [esp + 0x18]
fstp xword [esp + 0xc]
mov ecx, dword [esp + 0x40]
xor ecx, ebp
call fcn.00464393
fld xword [esp + 0xc]
lea esp, [ebp - 0xc]
pop esi
pop edi
pop ebx
pop ebp
ret
push 0x4ab928
call fcn.00463467
add esp, 4
cmp dword [0x4ab928], 0xffffffff
jne 0x43c802
rdtsc
mov dword [0x4ab920], eax
mov dword [0x4ab924], edx
push 0x4ab928
call fcn.004634dd
add esp, 4
jmp 0x43c802
push 0x4ab938
call fcn.00463467
add esp, 4
cmp dword [0x4ab938], 0xffffffff
jne 0x43c823
mov dword [esp + 0x3c], 0
mov dword [esp + 0x38], 0
lea eax, [esp + 0x38]
push eax
call dword [sym.imp.KERNEL32.dll_QueryPerformanceCounter]
mov eax, dword [esp + 0x38]
mov ecx, dword [esp + 0x3c]
mov dword [0x4ab934], ecx
mov dword [0x4ab930], eax
push 0x4ab938
call fcn.004634dd
add esp, 4
jmp 0x43c823
Function at 0x43d1f0
Capabilities:
Generate random numbers via rtlgenrandom

Disassembly:
push ebp
mov ebp, esp
mov ecx, dword [ebp + 0xc]
mov eax, dword [ebp + 8]
movzx edx, byte [0x4ab948]
test dl, 1
jne 0x43d216
test ecx, ecx
je 0x43d214
push ecx
push eax
call sub.ADVAPI32.dll_SystemFunction036
test al, al
je 0x43d221
pop ebp
ret
call fcn.0044e800
pop ebp
jmp fcn.00450570
int3

Function at 0x43e320
Capabilities:
Get thread local storage value

Disassembly:
push ebp
mov ebp, esp
push ebx
push edi
push esi
mov eax, 0x140c
call fcn.004647b0
mov eax, dword [0x4a6010]
xor eax, ebp
mov dword [ebp - 0x10], eax
mov eax, dword [0x4a8b8c]
cmp eax, 0xffffffff
je 0x43e47f
push eax
call dword [sym.imp.KERNEL32.dll_TlsGetValue]
mov ebx, eax
test bl, 3
je 0x43e47f
and ebx, 0xfffffffc
lea eax, [ebp - 0x810]
push 0x800
push ebx
push eax
call fcn.00466d00
add esp, 0xc
mov ecx, dword [0x4a8b8c]
lea eax, [ebp - 0x80f]
push eax
mov dword [ebp - 0x1414], ecx
push ecx
call fcn.004566f0
add esp, 8
test ebx, ebx
je 0x43e39b
push ebx
call fcn.0046342c
add esp, 4
mov eax, dword [0x4ac55c]
mov ecx, dword [0x4a9ca0]
mov edx, dword fs:[0x2c]
mov ecx, dword [edx + ecx*4]
cmp eax, dword [ecx + 4]
jg 0x43e494
mov esi, dword [0x4ac558]
push esi
call dword [sym.imp.KERNEL32.dll_TryAcquireSRWLockExclusive]
test al, al
jne 0x43e3d4
mov ecx, esi
call fcn.0043cd60
lea eax, [ebp - 0x1410]
push 0xc00
push 0x4ab958
push eax
call fcn.00466d00
add esp, 0xc
push esi
call dword [sym.imp.KERNEL32.dll_ReleaseSRWLockExclusive]
mov al, 1
mov ecx, 0x101
jmp 0x43e409
mov ecx, dword [ebp - 0x1418]
dec ecx
je 0x43e46a
test al, 1
je 0x43e46f
mov dword [ebp - 0x1418], ecx
xor edi, edi
lea ebx, [ebp - 0x1408]
xor eax, eax
jmp 0x43e42c
inc edi
add ebx, 0xc
cmp edi, 0x100
je 0x43e400
mov esi, dword [ebp + edi*8 - 0x810]
test esi, esi
je 0x43e420
cmp dword [ebx - 8], 0
je 0x43e420
mov ecx, dword [ebp + edi*8 - 0x80c]
cmp ecx, dword [ebx]
jne 0x43e420
mov ecx, dword [ebx - 4]
test ecx, ecx
je 0x43e420
mov dword [ebp + edi*8 - 0x810], 0
call dword [section..00cfg]
push esi
call ecx
add esp, 4
mov al, 1
jmp 0x43e420
call fcn.00443ed0
push 2
push dword [ebp - 0x1414]
call fcn.004566f0
add esp, 8
mov ecx, dword [ebp - 0x10]
xor ecx, ebp
call fcn.00464393
add esp, 0x140c
pop esi
pop edi
pop ebx
pop ebp
ret
push 0x4ac55c
call fcn.00463467
add esp, 4
cmp dword [0x4ac55c], 0xffffffff
jne 0x43e3bc
push 4
call fcn.004633c6
add esp, 4
mov esi, eax
mov ecx, eax
call fcn.0043cd50
mov dword [0x4ac558], esi
push 0x4ac55c
call fcn.004634dd
add esp, 4
jmp 0x43e3bc
Function at 0x43e4e0
Capabilities:
Get thread local storage value

Disassembly:
push ebp
mov ebp, esp
push ebx
push edi
push esi
mov esi, ecx
mov eax, dword [0x4a8b8c]
cmp eax, 0xffffffff
je 0x43e4fd
push eax
call dword [sym.imp.KERNEL32.dll_TlsGetValue]
test al, 3
jne 0x43e502
call fcn.0043e600
mov eax, dword [0x4ac55c]
mov ecx, dword [0x4a9ca0]
mov edx, dword fs:[0x2c]
mov ecx, dword [edx + ecx*4]
cmp eax, dword [ecx + 4]
jg 0x43e5b4
mov edi, dword [0x4ac558]
push edi
call dword [sym.imp.KERNEL32.dll_TryAcquireSRWLockExclusive]
test al, al
jne 0x43e53b
mov ecx, edi
call fcn.0043cd60
mov ecx, dword [0x4ab954]
inc ecx
xor edx, edx
nop word cs:[eax + eax]
lea eax, [ecx + edx]
movzx ebx, al
lea eax, [ebx + ebx*2]
cmp dword [eax*4 + 0x4ab958], 0
je 0x43e56e
inc edx
cmp edx, 0x100
jne 0x43e550
jmp 0x43e59e
lea eax, [eax*4 + 0x4ab958]
mov dword [eax], 1
lea eax, [ebx*4]
mov ecx, dword [ebp + 8]
mov dword [eax + eax*2 + 0x4ab95c], ecx
mov dword [0x4ab954], ebx
mov dword [esi], ebx
mov eax, dword [eax + eax*2 + 0x4ab960]
mov dword [esi + 4], eax
push edi
call dword [sym.imp.KERNEL32.dll_ReleaseSRWLockExclusive]
cmp dword [esi], 0x100
jae 0x43e5f9
pop esi
pop edi
pop ebx
pop ebp
ret 4
push 0x4ac55c
call fcn.00463467
add esp, 4
cmp dword [0x4ac55c], 0xffffffff
jne 0x43e523
push 4
call fcn.004633c6
add esp, 4
mov edi, eax
mov ecx, eax
call fcn.0043cd50
mov dword [0x4ac558], edi
push 0x4ac55c
call fcn.004634dd
add esp, 4
jmp 0x43e523
int3

Function at 0x43e600
Capabilities:
Get thread local storage value

Disassembly:
push ebp
mov ebp, esp
push edi
push esi
sub esp, 0x808
mov eax, dword [0x4a6010]
xor eax, ebp
mov dword [ebp - 0xc], eax
mov dword [ebp - 0x810], 0xffffffff
mov ecx, dword [0x4a8b8c]
mov dword [ebp - 0x810], ecx
cmp ecx, 0xffffffff
jne 0x43e6a4
lea esi, [ebp - 0x810]
push esi
call fcn.004566c0
add esp, 4
test al, al
je 0x43e725
mov ecx, dword [ebp - 0x810]
cmp ecx, 0xffffffff
jne 0x43e680
push esi
call fcn.004566c0
add esp, 4
test al, al
je 0x43e728
cmp dword [ebp - 0x810], 0xffffffff
je 0x43e728
push 0xffffffffffffffff
call fcn.004566e0
add esp, 4
mov ecx, dword [ebp - 0x810]
mov eax, 0xffffffff
lock cmpxchg dword [0x4a8b8c], ecx
je 0x43e6a4
push ecx
call fcn.004566e0
add esp, 4
mov ecx, dword [0x4a8b8c]
mov dword [ebp - 0x810], ecx
push ecx
call dword [sym.imp.KERNEL32.dll_TlsGetValue]
test al, 3
jne 0x43e722
lea edi, [ebp - 0x80c]
push 0x800
push 0
push edi
call fcn.00467280
add esp, 0xc
lea eax, [ebp - 0x809]
push eax
push dword [ebp - 0x810]
call fcn.004566f0
add esp, 8
push 0x800
call fcn.00463423
add esp, 4
mov esi, eax
push 0x800
push edi
push eax
call fcn.00466d00
add esp, 0xc
mov eax, esi
or eax, 3
push eax
push dword [ebp - 0x810]
call fcn.004566f0
add esp, 8
mov ecx, dword [ebp - 0xc]
xor ecx, ebp
call fcn.00464393
mov eax, esi
add esp, 0x808
pop esi
pop edi
pop ebp
ret
int3
int3
int3
Function at 0x446850
Capabilities:
Contain obfuscated stackstrings

Disassembly:
push ebp
mov ebp, esp
push ebx
push edi
push esi
and esp, 0xfffffff0
sub esp, 0x70
mov esi, ecx
mov eax, dword [0x4a6010]
xor eax, ebp
mov dword [esp + 0x68], eax
mov eax, dword [ecx + 0x1174]
mov ebx, dword [ecx + 0x1178]
add ebx, eax
mov eax, dword [ecx + 0x116c]
mov ecx, ebx
sub ecx, eax
cmp ecx, 0x40000001
jb 0x446891
push dword [ebp + 8]
call fcn.0045aba0
mov dword [esp + 0xc], 0
call dword [sym.imp.KERNEL32.dll_GetCurrentProcess]
lea ecx, [esp + 0xc]
push ecx
push eax
call dword [sym.imp.KERNEL32.dll_IsWow64Process]
mov eax, dword [esp + 0xc]
test eax, eax
mov ecx, 0x40000000
mov edi, 0xaf000000
cmove edi, ecx
mov dword [esp + 0x58], eax
mov dword [esp + 0x5c], 0
mov dword [esp + 0x54], 0x365f776f
mov dword [esp + 0x50], 0x775f7369
lea eax, [esp + 0x50]
push eax
call fcn.004108d0
add esp, 4
cmp ebx, edi
jbe 0x4468f1
push ebx
call fcn.0045abd0
mov dword [esp + 0x48], ebx
mov dword [esp + 0x4c], 0
mov dword [esp + 0x44], 0x657a69
mov dword [esp + 0x40], 0x735f6176
lea eax, [esp + 0x40]
push eax
call fcn.004108d0
add esp, 4
mov eax, dword [esi + 0x117c]
mov dword [esp + 0x38], eax
mov dword [esp + 0x3c], 0
mov dword [esp + 0x34], 0x20200063
mov dword [esp + 0x30], 0x6f6c6c61
lea eax, [esp + 0x30]
push eax
call fcn.004108d0
add esp, 4
pcmpeqd xmm0, xmm0
movdqa xmmword [esp + 0x20], xmm0
mov eax, dword [esi + 0x116c]
mov dword [esp + 0x28], eax
mov dword [esp + 0x2c], 0
mov dword [esp + 0x24], 0x20007469
mov dword [esp + 0x20], 0x6d6d6f63
lea eax, [esp + 0x20]
push eax
call fcn.004108d0
add esp, 4
mov esi, dword [ebp + 8]
mov dword [esp + 0x18], esi
mov dword [esp + 0x1c], 0
mov dword [esp + 0x14], 0x20202000
mov dword [esp + 0x10], 0x657a6973
lea eax, [esp + 0x10]
push eax
call fcn.004108d0
add esp, 4
mov ecx, dword [0x4b991c]
test ecx, ecx
je 0x4469c4
call dword [section..00cfg]
push esi
call ecx
add esp, 4
push esi
call fcn.004526e0
int3
Function at 0x44e5b0
Capabilities:
Check if file exists

Disassembly:
push ebp
mov ebp, esp
push ebx
push edi
push esi
sub esp, 0xc
mov edi, dword [ebp + 8]
mov esi, dword [ebp + 0x14]
mov eax, dword [ebp + 0xc]
movzx ecx, byte [ebp + 0x10]
mov edx, dword [0x4a6010]
xor edx, ebp
mov dword [ebp - 0x10], edx
mov dword [ebp - 0x18], 0
test cl, cl
je 0x44e608
lea ecx, [ebp - 0x18]
push ecx
push 2
push eax
call dword [sym.imp.ADVAPI32.dll_OpenProcessToken]
test eax, eax
je 0x44e62b
mov ebx, dword [ebp - 0x18]
test ebx, ebx
je 0x44e633
call dword [sym.imp.KERNEL32.dll_GetLastError]
mov edi, eax
cmp ebx, 0xffffffff
je 0x44e637
call fcn.00443660
jmp 0x44e639
or esi, 8
lea ecx, [ebp - 0x18]
push ecx
push esi
push eax
call dword [sym.imp.ADVAPI32.dll_OpenProcessToken]
test eax, eax
je 0x44e62b
mov esi, dword [ebp - 0x18]
mov dword [ebp - 0x14], 0
test esi, esi
jne 0x44e67d
jmp 0x44e6a0
mov byte [edi], 0
jmp 0x44e6dd
xor ebx, ebx
jmp 0x44e643
xor ebx, ebx
push edi
call dword [sym.imp.KERNEL32.dll_SetLastError]
mov edi, dword [ebp + 8]
mov dword [ebp - 0x14], 0xffffffff
or esi, 8
lea eax, [ebp - 0x14]
push eax
push 2
push 1
push 0
push esi
push ebx
call dword [sym.imp.ADVAPI32.dll_DuplicateTokenEx]
test eax, eax
mov esi, dword [ebp - 0x14]
cmovne eax, esi
mov dword [ebp - 0x18], eax
test eax, eax
je 0x44e6c4
lea eax, [ebx + 1]
cmp eax, 2
jae 0x44e6f1
mov dword [ebp - 0x14], 0
mov ebx, edi
call dword [sym.imp.KERNEL32.dll_GetLastError]
mov edi, eax
lea eax, [esi + 1]
cmp eax, 2
jb 0x44e697
mov dword [ebp - 0x14], esi
call fcn.00443660
push edi
call dword [sym.imp.KERNEL32.dll_SetLastError]
mov edi, ebx
mov byte [edi], 1
mov ecx, edi
add ecx, 4
lea eax, [ebp - 0x14]
push eax
call fcn.00412e90
mov eax, dword [ebp - 0x14]
inc eax
cmp eax, 2
jb 0x44e6dd
call fcn.00443660
push dword [ebp - 0x14]
jmp 0x44e6d5
mov byte [edi], 0
lea eax, [ebx + 1]
cmp eax, 2
jb 0x44e6dd
call fcn.00443660
push ebx
call fcn.0043c1f0
add esp, 4
mov ecx, dword [ebp - 0x10]
xor ecx, ebp
call fcn.00464393
mov eax, edi
add esp, 0xc
pop esi
pop edi
pop ebx
pop ebp
ret
call fcn.00443660
push ebx
call fcn.0043c1f0
add esp, 4
jmp 0x44e61b
Function at 0x450590
Capabilities:
Encode data using xor

Disassembly:
push ebp
mov ebp, esp
push ebx
push edi
push esi
and esp, 0xfffffff0
sub esp, 0x1d0
mov ebx, dword [ebp + 0xc]
mov eax, dword [0x4a6010]
xor eax, ebp
mov dword [esp + 0x1c8], eax
test ebx, ebx
je 0x45082e
mov esi, dword [ebp + 0x10]
mov edi, dword [ebp + 8]
pcmpeqd xmm0, xmm0
movdqa xmmword [esp + 0x1b0], xmm0
movdqa xmmword [esp + 0x1a0], xmm0
call fcn.0045dc90
lea ecx, [esp + 0x1a0]
test eax, eax
je 0x4505fc
pxor xmm0, xmm0
movdqa xmmword [esp + 0x1b0], xmm0
movdqa xmmword [esp + 0x1a0], xmm0
jmp 0x450607
push 0x20
push ecx
call fcn.0045dcc0
add esp, 8
xor eax, eax
nop dword [eax]
movzx ecx, byte [esi + eax]
xor byte [esp + eax + 0x1a0], cl
inc eax
cmp eax, 0x20
jne 0x450610
lea eax, [esp + 0x78]
push 0x128
push 0xff
push eax
call fcn.00467280
add esp, 0xc
push 1
call fcn.0045d5b0
add esp, 4
test eax, eax
je 0x450666
mov esi, eax
add eax, 0x120
mov dword [esp + 4], eax
cmp dword [esi + 0x120], 0xfff
jbe 0x45071b
jmp 0x450729
push 0x128
call fcn.00456610
add esp, 4
test eax, eax
je 0x45068d
mov esi, eax
push 0x451020
push eax
push 1
call fcn.0045d650
add esp, 0xc
test eax, eax
jne 0x450691
lea esi, [esp + 0x78]
mov dword [esi + 0x124], 0
pcmpeqd xmm0, xmm0
movdqa xmmword [esp + 0x60], xmm0
movdqa xmmword [esp + 0x50], xmm0
movdqa xmmword [esp + 0x40], xmm0
pxor xmm0, xmm0
movdqa xmmword [esp + 0x30], xmm0
movdqa xmmword [esp + 0x20], xmm0
movdqa xmmword [esp + 0x10], xmm0
lea eax, [esp + 0x40]
push 0x30
push eax
call fcn.0045dcc0
add esp, 8
lea eax, [esp + 0x10]
push 0
push eax
lea eax, [esp + 0x48]
push eax
push esi
call fcn.00450850
add esp, 0x10
test eax, eax
je 0x450844
lea eax, [esi + 0x120]
mov dword [esp + 4], eax
mov dword [esi + 0x120], 0
mov dword [esi + 0x11c], 0
mov dword [esi + 0x118], 0
mov eax, dword [esi + 0x118]
or eax, dword [esi + 0x11c]
je 0x450798
pcmpeqd xmm0, xmm0
movdqa xmmword [esp + 0x60], xmm0
movdqa xmmword [esp + 0x50], xmm0
movdqa xmmword [esp + 0x40], xmm0
lea eax, [esp + 0x40]
push 0x30
push eax
call fcn.0045dcc0
add esp, 8
mov ecx, esi
lea edx, [esp + 0x40]
push 0x30
call fcn.00450b00
add esp, 4
test eax, eax
je 0x450844
mov dword [esi + 0x110], 1
mov dword [esi + 0x114], 0
mov eax, dword [esp + 4]
mov dword [eax], 0
mov dword [esi + 0x11c], 0
mov dword [esi + 0x118], 0
cmp ebx, 0x10000
mov ecx, 0x10000
cmovb ecx, ebx
push 0x20
lea eax, [esp + 0x1a4]
push eax
mov dword [esp + 0x14], ecx
push ecx
push edi
mov dword [esp + 0x18], esi
push esi
call fcn.00450df0
add esp, 0x14
test eax, eax
je 0x450844
mov eax, dword [esp + 4]
inc dword [eax]
mov eax, dword [esp + 0xc]
sub ebx, eax
je 0x450816
add edi, eax
nop word [eax + eax]
cmp ebx, 0x10000
mov esi, 0x10000
cmovb esi, ebx
push 0
lea eax, [esp + 0x1a4]
push eax
push esi
push edi
push dword [esp + 0x18]
call fcn.00450df0
add esp, 0x14
test eax, eax
je 0x450844
add edi, esi
mov eax, dword [esp + 4]
inc dword [eax]
sub ebx, esi
jne 0x4507e0
lea eax, [esp + 0x78]
cmp dword [esp + 8], eax
jne 0x45082e
push 0x118
push eax
call fcn.004566a0
add esp, 8
mov ecx, dword [esp + 0x1c8]
xor ecx, ebp
call fcn.00464393
lea esp, [ebp - 0xc]
pop esi
pop edi
pop ebx
pop ebp
ret
call fcn.00474027
int3
Function at 0x456730
Capabilities:
Get thread local storage value

Disassembly:
push ebp
mov ebp, esp
mov eax, dword [0x4b9810]
mov ecx, dword [0x4a9ca0]
mov edx, dword fs:[0x2c]
mov ecx, dword [edx + ecx*4]
cmp eax, dword [ecx + 4]
jg 0x45675b
mov ecx, 0x4b9808
pop ebp
jmp fcn.0043e7e0
push 0x4b9810
call fcn.00463467
add esp, 4
cmp dword [0x4b9810], 0xffffffff
jne 0x456750
mov dword [0x4b980c], 0
mov dword [0x4b9808], 0
mov ecx, 0x4b9808
push 0
call fcn.0043e850
push 0x4b9810
call fcn.004634dd
add esp, 4
jmp 0x456750