joyce8/EMBER2024-capa huggingface dataset:
Function at 0x53f28c
Capabilities:
Encode data using base64
Encrypt data using rc4 prga

Disassembly:
push ebp
mov ebp, esp
add esp, 0xffffffec
push ebx
push esi
push edi
mov dword [ebp - 0xc], ecx
mov dword [ebp - 8], edx
mov byte [ebp - 1], al
mov esi, dword [ebp + 8]
mov eax, dword [ebp - 0xc]
add eax, eax
add eax, eax
mov ecx, 3
cdq
idiv ecx
mov edx, eax
add edx, 4
mov ecx, esi
xor eax, eax
call fcn.00406064
cmp byte [ebp - 1], 0
jne 0x53f2ec
mov eax, esi
call fcn.00405d60
movzx edx, byte [ebp - 0xc]
dec edx
and dl, 0x3f
add dl, 0x21
mov byte [eax], dl
mov eax, dword [ebp - 0xc]
add eax, 2
mov ecx, 3
cdq
idiv ecx
lea eax, [eax + eax*2]
mov dword [ebp - 0xc], eax
mov edi, 2
xor eax, eax
mov dword [ebp - 0x10], eax
xor ebx, ebx
movzx eax, byte [ebp - 1]
sub al, 1
jb 0x53f306
sub al, 2
jb 0x53f30d
jmp 0x53f312
mov ebx, 2
jmp 0x53f312
mov ebx, 1
mov eax, esi
call fcn.00405d60
mov byte [eax + ebx - 1], 0
mov eax, dword [ebp - 0x10]
cmp eax, dword [ebp - 0xc]
jge 0x53f3f6
test edi, edi
jle 0x53f36e
mov eax, esi
call fcn.00405d60
lea eax, [eax + ebx - 1]
push eax
mov ecx, edi
mov eax, 0x3f
shl eax, cl
mov edx, dword [ebp - 8]
mov ecx, dword [ebp - 0x10]
movzx edx, byte [edx + ecx]
and eax, edx
mov ecx, edi
shr eax, cl
mov edx, dword [esi]
or al, byte [edx + ebx - 1]
pop edx
mov byte [edx], al
sub edi, 6
inc ebx
mov eax, esi
call fcn.00405d60
mov byte [eax + ebx - 1], 0
jmp 0x53f3ea
test edi, edi
jge 0x53f3b4
mov eax, edi
cdq
xor eax, edx
sub eax, edx
mov edi, eax
mov eax, esi
call fcn.00405d60
lea eax, [eax + ebx - 1]
push eax
mov ecx, edi
mov eax, 0x3f
shr eax, cl
mov edx, dword [ebp - 8]
mov ecx, dword [ebp - 0x10]
and al, byte [edx + ecx]
mov ecx, edi
shl al, cl
mov edx, dword [esi]
or al, byte [edx + ebx - 1]
pop edx
mov byte [edx], al
mov eax, 8
sub eax, edi
mov edi, eax
inc dword [ebp - 0x10]
jmp 0x53f3ea
mov eax, esi
call fcn.00405d60
mov edx, dword [ebp - 8]
mov ecx, dword [ebp - 0x10]
movzx edx, byte [edx + ecx]
and dl, 0x3f
mov ecx, dword [esi]
movzx ecx, byte [ecx + ebx - 1]
or dl, cl
mov byte [eax + ebx - 1], dl
inc ebx
inc dword [ebp - 0x10]
mov eax, esi
call fcn.00405d60
mov byte [eax + ebx - 1], 0
mov edi, 2
mov eax, dword [ebp - 0x10]
cmp eax, dword [ebp - 0xc]
jl 0x53f32a
movzx eax, byte [ebp - 1]
sub al, 1
jb 0x53f407
sub al, 2
jb 0x53f441
jmp 0x53f489
cmp edi, 2
jne 0x53f40d
dec ebx
mov eax, ebx
sub eax, 2
jl 0x53f489
inc eax
mov dword [ebp - 0x14], eax
mov edi, 2
mov eax, esi
call fcn.00405d60
mov edx, dword [esi]
movzx edx, byte [edx + edi - 1]
mov ecx, dword [0x5a0178]
movzx edx, byte [ecx + edx]
mov byte [eax + edi - 1], dl
inc edi
dec dword [ebp - 0x14]
jne 0x53f41d
jmp 0x53f489
cmp edi, 2
jne 0x53f447
dec ebx
test ebx, ebx
jle 0x53f484
mov dword [ebp - 0x14], ebx
mov edi, 1
mov eax, esi
call fcn.00405d60
mov edx, dword [esi]
movzx edx, byte [edx + edi - 1]
mov ecx, dword [0x5a017c]
movzx edx, byte [ecx + edx]
mov byte [eax + edi - 1], dl
inc edi
dec dword [ebp - 0x14]
jne 0x53f453
jmp 0x53f484
inc ebx
mov eax, esi
call fcn.00405d60
mov byte [eax + ebx - 1], 0x3d
test bl, 3
jne 0x53f477
mov eax, esi
xor ecx, ecx
mov edx, ebx
call fcn.00405fcc
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret 4
Function at 0x578138
Capabilities:
Get common file path

Disassembly:
push ebx
add esp, 0xfffffe00
mov ebx, eax
push esp
push 0xff
call sub.kernel32.dll_GetTempPathW
mov eax, ebx
mov edx, esp
mov ecx, pe_nt_image_headers32
call fcn.004066f4
add esp, 0x200
pop ebx
ret
Function at 0x578d64
Capabilities:
Shutdown system

Disassembly:
push ebx
mov ebx, eax
call fcn.00578cc4
cmp ebx, 6
ja case.0x578d71.0
jmp dword [ebx*4 + 0x578d78]
push 0xffff
push 0x1d
call sub.user32.dll_ExitWindowsEx
jmp case.0x578d71.0
push 0
push 0
call sub.user32.dll_ExitWindowsEx
jmp case.0x578d71.0
push 0
push 8
call sub.user32.dll_ExitWindowsEx
jmp case.0x578d71.0
push 0xffff
push 2
call sub.user32.dll_ExitWindowsEx
jmp case.0x578d71.0
push 0xffff
push 1
call sub.user32.dll_ExitWindowsEx
jmp case.0x578d71.0
push 0xffff
push 0x19
call sub.user32.dll_ExitWindowsEx
pop ebx
ret
Function at 0x588c9c
Capabilities:
Get common file path

Disassembly:
push ebp
mov ebp, esp
add esp, 0xfffffdec
push ebx
push esi
push edi
xor edx, edx
mov dword [ebp - 0x210], edx
mov dword [ebp - 0x214], edx
mov ebx, eax
xor eax, eax
push ebp
push 0x588d7a
push dword fs:[eax]
mov dword fs:[eax], esp
xor eax, eax
push ebp
push 0x588d52
push dword fs:[eax]
mov dword fs:[eax], esp
push 0
push 0x23
lea eax, [ebp - 0x20a]
push eax
push esi
call sub.shell32.dll_SHGetSpecialFolderPathW
lea eax, [ebx + 8]
lea edx, [ebp - 0x20a]
mov ecx, 0x105
call fcn.004066f4
push 0
push 0x1a
lea eax, [ebp - 0x20a]
push eax
push esi
call sub.shell32.dll_SHGetSpecialFolderPathW
lea eax, [ebx + 4]
lea edx, [ebp - 0x20a]
mov ecx, 0x105
call fcn.004066f4
lea edx, [ebp - 0x214]
xor eax, eax
call fcn.00403478
mov eax, dword [ebp - 0x214]
lea edx, [ebp - 0x210]
call fcn.0045d3c0
mov edx, dword [ebp - 0x210]
lea eax, [ebx + 0xc]
call fcn.004064f4
xor eax, eax
pop edx
pop ecx
pop ecx
mov dword fs:[eax], edx
jmp 0x588d5c
xor eax, eax
pop edx
pop ecx
pop ecx
mov dword fs:[eax], edx
push 0x588d81
lea eax, [ebp - 0x214]
mov edx, 2
call fcn.004064ec
ret
Function at 0x58da2c
Capabilities:
Terminate process

Disassembly:
push ebx
mov ebx, eax
mov edx, 0x58dba8
mov eax, 0x58dbd4
call fcn.0050c8a0
xor edx, edx
mov eax, dword [0x5aad64]
call fcn.004e8ed0
movzx eax, byte [ebx + 0x41c]
sub al, 4
je 0x58da5a
jmp 0x58db3c
mov edx, 0x58dba8
mov eax, 0x58dc14
call fcn.0050c8a0
xor edx, edx
mov eax, dword [0x5aad64]
call fcn.004e8ed0
mov byte [ebx + 0x41c], 5
mov eax, dword [ebx + 0x434]
mov ecx, 0xa
cdq
idiv ecx
dec edx
jne 0x58db3c
cmp dword [ebx + 0x42c], 4
jne 0x58daca
mov edx, 0x58dba8
mov eax, 0x58dc68
call fcn.0050c8a0
mov edx, 2
mov eax, dword [ebx + 0x448]
call fcn.00580860
mov edx, 0x58dba8
mov eax, 0x58dc8c
call fcn.0050c8a0
jmp 0x58db3c
cmp dword [ebx + 0x420], 2
je 0x58dae1
mov eax, dword [0x5aad64]
cmp byte [eax + 0x283], 1
jne 0x58db11
mov edx, 0x58dba8
mov eax, 0x58dcb8
call fcn.0050c8a0
mov edx, 1
mov eax, dword [ebx + 0x448]
call fcn.00580860
mov edx, 0x58dba8
mov eax, 0x58dcdc
call fcn.0050c8a0
jmp 0x58db3c
mov edx, 0x58dba8
mov eax, 0x58dd08
call fcn.0050c8a0
xor edx, edx
mov eax, dword [ebx + 0x448]
call fcn.00580860
mov edx, 0x58dba8
mov eax, 0x58dd2c
call fcn.0050c8a0
mov edx, 0x58dba8
mov eax, 0x58dd58
call fcn.0050c8a0
cmp byte [ebx + 0x438], 0
je 0x58db7e
mov edx, 0x58dba8
mov eax, 0x58dd98
call fcn.0050c8a0
mov eax, 4
call fcn.00578d64
mov edx, 0x58dba8
mov eax, 0x58dddc
call fcn.0050c8a0
jmp 0x58db8d
mov edx, 0x58dba8
mov eax, 0x58de28
call fcn.0050c8a0
push 0
call sub.kernel32.dll_GetCurrentProcess
push eax
call sub.kernel32.dll_TerminateProcess
pop ebx
ret
Function at 0x10042770
Capabilities:
Write file on windows

Disassembly:
push ebp
mov ebp, esp
sub esp, 0x28
mov eax, dword [0x100f4040]
xor eax, ebp
mov dword [ebp - 4], eax
push esi
mov esi, ecx
cmp dword [esi + 0x38], 0
je 0x1004282c
cmp byte [esi + 0x3d], 0
je 0x1004282c
mov eax, dword [esi]
push edi
push 0xffffffffffffffff
call dword [eax + 0xc]
cmp eax, 0xffffffff
je 0x1004281a
mov ecx, dword [esi + 0x38]
lea eax, [ebp - 0x28]
push eax
lea eax, [ebp - 4]
push eax
lea eax, [ebp - 0x24]
push eax
lea eax, [esi + 0x40]
push eax
call dword [sym.imp.MSVCP140.dll_public:_int___thiscall_std::codecvt_char__char__struct__Mbstatet_::unshift_struct__Mbstatet___char___char___char___const]
sub eax, 0
je 0x100427e1
sub eax, 1
je 0x100427e5
sub eax, 2
jne 0x1004281a
mov byte [esi + 0x3d], al
mov al, 1
pop edi
pop esi
mov ecx, dword [ebp - 4]
xor ecx, ebp
call fcn.100ce58b
mov esp, ebp
pop ebp
ret
mov byte [esi + 0x3d], 0
mov edi, dword [ebp - 0x28]
lea eax, [ebp - 0x24]
sub edi, eax
je 0x10042803
push dword [esi + 0x4c]
push edi
push 1
push eax
call dword [sym.imp.api_ms_win_crt_stdio_l1_1_0.dll_fwrite]
add esp, 0x10
cmp edi, eax
jne 0x1004281a
cmp byte [esi + 0x3d], 0
pop edi
sete al
pop esi
mov ecx, dword [ebp - 4]
xor ecx, ebp
call fcn.100ce58b
mov esp, ebp
pop ebp
ret
pop edi
xor al, al
pop esi
mov ecx, dword [ebp - 4]
xor ecx, ebp
call fcn.100ce58b
mov esp, ebp
pop ebp
ret
mov ecx, dword [ebp - 4]
mov al, 1
xor ecx, ebp
pop esi
call fcn.100ce58b
mov esp, ebp
pop ebp
ret
Function at 0x10044dd0
Capabilities:
Encode data using xor
Hash data using fnv

Disassembly:
push ebp
mov ebp, esp
sub esp, 8
cmp byte [0x102d2588], 0
push ebx
push esi
push edi
je 0x10044f6d
mov ecx, dword [0x103460d4]
mov eax, dword [ecx]
mov eax, dword [eax + 0x68]
call eax
test al, al
je 0x10044f6d
mov ecx, dword [0x1034615c]
xor ebx, ebx
mov dword [ebp - 4], ecx
mov eax, dword [ecx + 0x28]
mov dword [ebp - 8], eax
test eax, eax
je 0x10044f6d
mov eax, dword [ecx + 0x1c]
mov ecx, dword [eax + ebx*4]
mov eax, dword [ecx]
mov eax, dword [eax + 0x30]
call eax
mov esi, eax
mov edi, 0x811c9dc5
xor ecx, ecx
nop word [eax + eax]
inc ecx
cmp byte [esi + ecx], 0
jne 0x10044e30
xor edx, edx
test ecx, ecx
je 0x10044e59
nop dword [eax]
movsx eax, byte [esi + edx]
inc edx
xor eax, edi
imul edi, eax, 0x1000193
cmp edx, ecx
jb 0x10044e40
cmp edi, 0x5ff56dc5
je 0x10044e68
inc ebx
cmp ebx, dword [ebp - 8]
jae 0x10044f6d
mov ecx, dword [ebp - 4]
jmp 0x10044e14
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x1c]
mov edi, dword [eax + ebx*4]
test edi, edi
je 0x10044f6d
mov edx, dword [edi + 0x88]
test edx, edx
je 0x10044f6d
vmovss xmm2, dword [0x100e7f38]
vmovss xmm1, dword [0x100e80c4]
xor ebx, ebx
cmp edx, 4
jl 0x10044f36
mov ecx, dword [edi + 0x7c]
lea esi, [edx - 4]
shr esi, 2
add ecx, 0x1078
inc esi
lea ebx, [esi*4]
nop dword [eax]
vmovss xmm0, dword [ecx - 0xc60]
vucomiss xmm0, xmm2
lahf
test ah, 0x44
jp 0x10044eda
vmovss dword [ecx - 0xc60], xmm1
vmovss xmm0, dword [ecx - 0x840]
vucomiss xmm0, xmm2
lahf
test ah, 0x44
jp 0x10044ef4
vmovss dword [ecx - 0x840], xmm1
vmovss xmm0, dword [ecx - 0x420]
vucomiss xmm0, xmm2
lahf
test ah, 0x44
jp 0x10044f0e
vmovss dword [ecx - 0x420], xmm1
vmovss xmm0, dword [ecx]
vucomiss xmm0, xmm2
lahf
test ah, 0x44
jp 0x10044f20
vmovss dword [ecx], xmm1
add ecx, 0x1080
sub esi, 1
jne 0x10044ec0
cmp ebx, edx
jl 0x10044f3a
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret
test edx, edx
jle 0x10044f6d
imul ecx, ebx, 0x420
add ecx, 0x418
add ecx, dword [edi + 0x7c]
sub edx, ebx
nop dword [eax + eax]
vmovss xmm0, dword [ecx]
vucomiss xmm0, xmm2
lahf
test ah, 0x44
jp 0x10044f62
vmovss dword [ecx], xmm1
add ecx, 0x420
sub edx, 1
jne 0x10044f50
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret
Function at 0x10047130
Capabilities:
Hash data using fnv

Disassembly:
push ebp
mov ebp, esp
push 0xffffffffffffffff
push 0x100d0cb5
mov eax, dword fs:[0]
push eax
sub esp, 0x14
push ebx
push esi
push edi
mov eax, dword [0x100f4040]
xor eax, ebp
push eax
lea eax, [ebp - 0xc]
mov dword fs:[0], eax
mov esi, dword [ebp + 8]
movzx eax, byte [esi]
xor eax, 0x811c9dc5
imul ecx, eax, 0x1000193
movzx eax, byte [esi + 1]
xor ecx, eax
movzx eax, byte [esi + 2]
imul ecx, ecx, 0x1000193
xor ecx, eax
movzx eax, byte [esi + 3]
imul ecx, ecx, 0x1000193
xor ecx, eax
lea eax, [ebp - 0x18]
imul edi, ecx, 0x1000193
push edi
push esi
push eax
call fcn.100487a0
mov eax, dword [ebp - 0x14]
test eax, eax
jne 0x100472ba
cmp dword [0x10455180], 0xfffffff
jne 0x100471ba
push str.unordered_map_set_too_long
call dword [sym.imp.MSVCP140.dll_void___cdecl_std::_Xlength_error_char_const__]
mov dword [ebp - 0x20], 0x1045517c
mov dword [ebp - 4], 0
push 0x10
mov dword [ebp - 0x1c], 0
call fcn.100ce5a7
mov ebx, eax
add esp, 4
mov eax, dword [esi]
mov dword [ebp - 0x1c], ebx
mov dword [ebx + 8], eax
mov dword [ebx + 0xc], 0
mov dword [ebp - 4], 1
mov eax, dword [0x10455180]
mov esi, dword [0x10455194]
inc eax
vmovss xmm1, dword [0x10455178]
vxorps xmm0, xmm0, xmm0
vcvtsi2sd xmm0, xmm0, eax
shr eax, 0x1f
vaddsd xmm0, xmm0, qword [eax*8 + 0x100e8230]
vcvtsd2ss xmm2, xmm0, xmm0
vxorps xmm0, xmm0, xmm0
mov eax, esi
shr eax, 0x1f
vcvtsi2sd xmm0, xmm0, esi
vaddsd xmm0, xmm0, qword [eax*8 + 0x100e8230]
vcvtsd2ss xmm0, xmm0, xmm0
vdivss xmm0, xmm2, xmm0
vcomiss xmm0, xmm1
jbe 0x100472af
vdivss xmm0, xmm2, xmm1
vcvtss2sd xmm0, xmm0, xmm0
vmovsd qword [ebp - 0x18], xmm0
fld qword [ebp - 0x18]
vxorpd xmm0, xmm0, xmm0
fstp qword [ebp - 0x18]
vroundsd xmm0, xmm0, qword [ebp - 0x18], 2
vmovsd qword [ebp - 0x18], xmm0
fld qword [ebp - 0x18]
fstp qword [ebp - 0x18]
vmovsd xmm0, qword [ebp - 0x18]
vcvtpd2ps xmm0, xmm0
call fcn.100cf970
mov ecx, 8
cmp eax, ecx
cmova ecx, eax
cmp esi, ecx
jae 0x10047297
cmp esi, 0x200
jae 0x10047295
shl esi, 3
cmp esi, ecx
jae 0x10047297
mov esi, ecx
push esi
call fcn.10048550
push edi
lea eax, [ebx + 8]
push eax
lea eax, [ebp - 0x20]
push eax
call fcn.100487a0
mov ecx, dword [eax]
jmp 0x100472b2
mov ecx, dword [ebp - 0x18]
push ebx
push ecx
push edi
call fcn.100484e0
add eax, 0xc
mov ecx, dword [ebp - 0xc]
mov dword fs:[0], ecx
pop ecx
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret 4
Function at 0x10047770
Capabilities:
Hash data using fnv

Disassembly:
push ebp
mov ebp, esp
mov eax, dword [ebp + 0xc]
sub esp, 0x18
mov edx, dword [ebp + 8]
push ebx
mov ebx, ecx
cmp edx, eax
je 0x100478c6
mov eax, dword [ebx + 4]
mov dword [ebp - 0x14], eax
mov eax, dword [edx + 4]
mov dword [ebp - 8], eax
movzx eax, byte [edx + 8]
xor eax, 0x811c9dc5
imul ecx, eax, 0x1000193
movzx eax, byte [edx + 9]
push esi
push edi
mov edi, dword [ebx + 0xc]
mov esi, edx
xor ecx, eax
mov dword [ebp - 0x18], edi
movzx eax, byte [edx + 0xa]
imul ecx, ecx, 0x1000193
xor ecx, eax
movzx eax, byte [edx + 0xb]
imul ecx, ecx, 0x1000193
xor ecx, eax
mov eax, dword [ebx + 0x18]
imul ecx, ecx, 0x1000193
and eax, ecx
mov ecx, dword [edi + eax*8]
mov dword [ebp - 4], ecx
lea eax, [edi + eax*8]
mov dword [ebp - 0xc], eax
mov eax, dword [eax + 4]
mov dword [ebp - 0x10], eax
mov eax, esi
mov edi, esi
mov esi, dword [esi]
push 0x10
push eax
call fcn.100cea0b
dec dword [ebx + 8]
add esp, 8
cmp edi, dword [ebp - 0x10]
je 0x10047829
mov eax, dword [ebp + 0xc]
cmp esi, eax
jne 0x100477e7
mov ecx, dword [ebp - 4]
cmp ecx, dword [ebp + 8]
jne 0x100478bc
mov edx, dword [ebp - 0xc]
mov ecx, dword [ebp - 8]
pop edi
mov dword [edx], esi
mov dword [ecx], esi
mov dword [esi + 4], ecx
pop esi
pop ebx
mov esp, ebp
pop ebp
ret 8
mov ecx, dword [ebp - 4]
mov edx, dword [ebp - 0xc]
cmp ecx, dword [ebp + 8]
jne 0x1004783d
mov eax, dword [ebp - 0x14]
mov ecx, eax
mov dword [edx], eax
jmp 0x10047840
mov ecx, dword [ebp - 8]
mov eax, dword [ebp + 0xc]
mov dword [edx + 4], ecx
cmp esi, eax
je 0x100478bc
nop word [eax + eax]
movzx eax, byte [esi + 8]
xor eax, 0x811c9dc5
imul ecx, eax, 0x1000193
movzx eax, byte [esi + 9]
xor ecx, eax
movzx eax, byte [esi + 0xa]
imul ecx, ecx, 0x1000193
xor ecx, eax
movzx eax, byte [esi + 0xb]
imul ecx, ecx, 0x1000193
xor ecx, eax
mov eax, dword [ebx + 0x18]
imul ecx, ecx, 0x1000193
and eax, ecx
mov ecx, dword [ebp - 0x18]
lea eax, [ecx + eax*8]
mov dword [ebp - 4], eax
mov eax, dword [eax + 4]
mov dword [ebp - 0x10], eax
mov eax, esi
mov edi, esi
mov esi, dword [esi]
push 0x10
push eax
call fcn.100cea0b
dec dword [ebx + 8]
add esp, 8
mov eax, dword [ebp + 0xc]
cmp edi, dword [ebp - 0x10]
je 0x100478cd
cmp esi, eax
jne 0x10047897
mov ecx, dword [ebp - 4]
mov dword [ecx], esi
mov ecx, dword [ebp - 8]
pop edi
mov dword [ecx], esi
mov dword [esi + 4], ecx
pop esi
pop ebx
mov esp, ebp
pop ebp
ret 8
mov ecx, dword [ebp - 4]
mov edx, dword [ebp - 0x14]
mov dword [ecx], edx
mov dword [ecx + 4], edx
cmp esi, eax
jne 0x10047850
mov ecx, dword [ebp - 8]
pop edi
mov dword [ecx], esi
mov dword [esi + 4], ecx
pop esi
pop ebx
mov esp, ebp
pop ebp
ret 8
Function at 0x10053fc0
Capabilities:
Hash data using fnv

Disassembly:
push ebp
mov ebp, esp
sub esp, 0x1c
mov eax, dword [ebp + 0xc]
mov edx, ecx
push ebx
mov ebx, dword [ebp + 8]
mov dword [ebp - 0x14], edx
cmp ebx, eax
je 0x10054131
mov eax, dword [edx + 4]
mov dword [ebp - 0x18], eax
mov eax, dword [ebx + 4]
mov dword [ebp - 8], eax
movzx eax, byte [ebx + 8]
xor eax, 0x811c9dc5
imul ecx, eax, 0x1000193
movzx eax, byte [ebx + 9]
push esi
push edi
mov edi, dword [edx + 0xc]
mov esi, ebx
xor ecx, eax
mov dword [ebp - 0x1c], edi
movzx eax, byte [ebx + 0xa]
imul ecx, ecx, 0x1000193
xor ecx, eax
movzx eax, byte [ebx + 0xb]
imul ecx, ecx, 0x1000193
xor ecx, eax
mov eax, dword [edx + 0x18]
imul ecx, ecx, 0x1000193
and eax, ecx
mov ecx, dword [edi + eax*8]
mov dword [ebp - 4], ecx
lea eax, [edi + eax*8]
mov dword [ebp - 0xc], eax
mov eax, dword [eax + 4]
mov dword [ebp - 0x10], eax
nop word [eax + eax]
mov edi, esi
mov ebx, esi
mov esi, dword [esi]
lea ecx, [edi + 0xc]
call fcn.100548d0
push 0x2c
push edi
call fcn.100cea0b
mov edx, dword [ebp - 0x14]
add esp, 8
dec dword [edx + 8]
cmp ebx, dword [ebp - 0x10]
je 0x1005408d
mov eax, dword [ebp + 0xc]
cmp esi, eax
jne 0x10054040
mov ecx, dword [ebp - 4]
cmp ecx, dword [ebp + 8]
jne 0x10054127
mov edi, dword [ebp - 0xc]
mov ecx, dword [ebp - 8]
mov dword [edi], esi
mov dword [ecx], esi
pop edi
mov dword [esi + 4], ecx
pop esi
pop ebx
mov esp, ebp
pop ebp
ret 8
mov ecx, dword [ebp - 4]
mov edi, dword [ebp - 0xc]
cmp ecx, dword [ebp + 8]
jne 0x100540a1
mov eax, dword [ebp - 0x18]
mov ecx, eax
mov dword [edi], eax
jmp 0x100540a4
mov ecx, dword [ebp - 8]
mov eax, dword [ebp + 0xc]
mov dword [edi + 4], ecx
cmp esi, eax
je 0x10054127
nop
movzx eax, byte [esi + 8]
xor eax, 0x811c9dc5
imul ecx, eax, 0x1000193
movzx eax, byte [esi + 9]
xor ecx, eax
movzx eax, byte [esi + 0xa]
imul ecx, ecx, 0x1000193
xor ecx, eax
movzx eax, byte [esi + 0xb]
imul ecx, ecx, 0x1000193
xor ecx, eax
mov eax, dword [edx + 0x18]
imul ecx, ecx, 0x1000193
and eax, ecx
mov ecx, dword [ebp - 0x1c]
lea eax, [ecx + eax*8]
mov dword [ebp - 4], eax
mov eax, dword [eax + 4]
mov dword [ebp - 0x10], eax
mov edi, esi
mov ebx, esi
mov esi, dword [esi]
lea ecx, [edi + 0xc]
call fcn.100548d0
push 0x2c
push edi
call fcn.100cea0b
mov edx, dword [ebp - 0x14]
add esp, 8
mov eax, dword [ebp + 0xc]
dec dword [edx + 8]
cmp ebx, dword [ebp - 0x10]
je 0x10054138
cmp esi, eax
jne 0x100540f7
mov ecx, dword [ebp - 4]
mov dword [ecx], esi
mov ecx, dword [ebp - 8]
pop edi
mov dword [ecx], esi
mov dword [esi + 4], ecx
pop esi
pop ebx
mov esp, ebp
pop ebp
ret 8
mov ecx, dword [ebp - 4]
mov ebx, dword [ebp - 0x18]
mov dword [ecx], ebx
mov dword [ecx + 4], ebx
cmp esi, eax
jne 0x100540b0
mov ecx, dword [ebp - 8]
pop edi
mov dword [ecx], esi
mov dword [esi + 4], ecx
pop esi
pop ebx
mov esp, ebp
pop ebp
ret 8
Function at 0x10054960
Capabilities:
Parse pe header

Disassembly:
push ebp
mov ebp, esp
sub esp, 0xc
cmp dword [ecx + 0x14], 0xf
push esi
push edi
mov edi, edx
mov dword [ebp - 8], edi
jbe 0x10054975
mov ecx, dword [ecx]
push ecx
call dword [sym.imp.KERNEL32.dll_GetModuleHandleA]
mov esi, eax
test esi, esi
jne 0x1005498a
pop edi
xor eax, eax
pop esi
mov esp, ebp
pop ebp
ret
mov eax, 0x5a4d
cmp word [esi], ax
jne 0x10054982
mov eax, dword [esi + 0x3c]
cmp dword [eax + esi], 0x4550
jne 0x10054982
mov eax, dword [eax + esi + 0x50]
mov edx, edi
push ebx
add eax, esi
xor ebx, ebx
cmp dword [edi + 0x14], 0xf
mov dword [ebp - 0xc], eax
jbe 0x100549b6
mov edx, dword [edi]
cmp esi, eax
jae 0x10054a20
mov ecx, 0x3f3f
nop
mov al, byte [edx]
mov byte [ebp - 1], al
cmp al, 0x3f
je 0x10054a2e
movzx ecx, al
sub al, 0x30
cmp al, 9
ja 0x100549d7
add ecx, 0xffffffd0
jmp 0x100549dd
and ecx, 0xffffffdf
sub ecx, 0x37
mov al, byte [edx + 1]
movzx edi, al
sub al, 0x30
cmp al, 9
ja 0x100549ee
add edi, 0xffffffd0
jmp 0x100549f4
and edi, 0xffffffdf
sub edi, 0x37
movzx eax, byte [esi]
shl ecx, 4
or ecx, edi
cmp eax, ecx
je 0x10054a29
test ebx, ebx
je 0x10054a15
mov edi, dword [ebp - 8]
mov esi, ebx
mov edx, edi
cmp dword [edi + 0x14], 0xf
jbe 0x10054a13
mov edx, dword [edi]
xor ebx, ebx
mov ecx, 0x3f3f
inc esi
cmp esi, dword [ebp - 0xc]
jb 0x100549c0
pop ebx
pop edi
xor eax, eax
pop esi
mov esp, ebp
pop ebp
ret
mov ecx, 0x3f3f
test ebx, ebx
mov eax, esi
cmovne eax, ebx
cmp byte [edx + 2], 0
mov ebx, eax
je 0x10054a59
cmp word [edx], cx
je 0x10054a4d
cmp byte [ebp - 1], 0x3f
mov eax, 2
je 0x10054a52
mov eax, 3
add edx, eax
cmp byte [edx], 0
jne 0x10054a1a
mov eax, ebx
pop ebx
pop edi
pop esi
mov esp, ebp
pop ebp
ret
Function at 0x100558f0
Capabilities:
Enumerate threads
Suspend thread

Disassembly:
push ebp
mov ebp, esp
sub esp, 0x24
mov eax, dword [0x100f4040]
xor eax, ebp
mov dword [ebp - 4], eax
push ebx
push esi
mov esi, ecx
mov dword [ebp - 0x24], edx
push edi
xor ebx, ebx
push ebx
push 4
mov dword [esi], 0
mov dword [esi + 4], 0
mov dword [esi + 8], 0
call dword [sym.imp.KERNEL32.dll_CreateToolhelp32Snapshot]
mov edi, eax
cmp edi, 0xffffffff
je 0x10055a6c
lea eax, [ebp - 0x20]
mov dword [ebp - 0x20], 0x1c
push eax
push edi
call dword [sym.imp.KERNEL32.dll_Thread32First]
test eax, eax
je 0x10055a07
mov ebx, 1
cmp dword [ebp - 0x20], 0x10
jb 0x100559ca
call dword [sym.imp.KERNEL32.dll_GetCurrentProcessId]
cmp dword [ebp - 0x14], eax
jne 0x100559ca
call dword [sym.imp.KERNEL32.dll_GetCurrentThreadId]
cmp dword [ebp - 0x18], eax
je 0x100559ca
mov edx, dword [esi]
test edx, edx
jne 0x10055996
push 0x200
push edx
push dword [0x102d501c]
mov dword [esi + 4], 0x80
call dword [sym.imp.KERNEL32.dll_HeapAlloc]
mov edx, eax
mov dword [esi], edx
test edx, edx
je 0x100559ef
jmp 0x100559be
mov eax, dword [esi + 4]
cmp dword [esi + 8], eax
jb 0x100559be
add eax, eax
mov dword [esi + 4], eax
shl eax, 2
push eax
push edx
push 0
push dword [0x102d501c]
call dword [sym.imp.KERNEL32.dll_HeapReAlloc]
mov edx, eax
test edx, edx
je 0x100559ef
mov dword [esi], edx
mov ecx, dword [esi + 8]
mov eax, dword [ebp - 0x18]
mov dword [edx + ecx*4], eax
inc dword [esi + 8]
lea eax, [ebp - 0x20]
mov dword [ebp - 0x20], 0x1c
push eax
push edi
call dword [sym.imp.KERNEL32.dll_Thread32Next]
test eax, eax
jne 0x10055951
call dword [sym.imp.KERNEL32.dll_GetLastError]
cmp eax, 0x12
je 0x10055a07
mov eax, dword [esi]
xor ebx, ebx
test eax, eax
je 0x10055a07
push eax
push ebx
push dword [0x102d501c]
call dword [sym.imp.KERNEL32.dll_HeapFree]
mov dword [esi], ebx
push edi
call dword [sym.imp.KERNEL32.dll_CloseHandle]
test ebx, ebx
je 0x10055a6c
cmp dword [esi], 0
je 0x10055a59
xor edi, edi
cmp dword [esi + 8], edi
jbe 0x10055a59
nop
mov eax, dword [esi]
push dword [eax + edi*4]
push 0
push 0x5a
call dword [sym.imp.KERNEL32.dll_OpenThread]
mov ebx, eax
test ebx, ebx
je 0x10055a53
push ebx
call dword [sym.imp.KERNEL32.dll_SuspendThread]
push dword [ebp + 8]
mov edx, dword [ebp - 0x24]
mov ecx, ebx
call fcn.10055780
add esp, 4
push ebx
call dword [sym.imp.KERNEL32.dll_CloseHandle]
inc edi
cmp edi, dword [esi + 8]
jb 0x10055a20
pop edi
pop esi
xor eax, eax
pop ebx
mov ecx, dword [ebp - 4]
xor ecx, ebp
call fcn.100ce58b
mov esp, ebp
pop ebp
ret
mov ecx, dword [ebp - 4]
mov eax, 9
pop edi
pop esi
xor ecx, ebp
pop ebx
call fcn.100ce58b
mov esp, ebp
pop ebp
ret