joyce8/EMBER2024-capa huggingface dataset:
Function at 0x100394a0
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 0x10039611
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.10036910
push 0x18
push edi
call fcn.100e3d5c
mov edx, dword [ebp - 0x14]
add esp, 8
dec dword [edx + 8]
cmp ebx, dword [ebp - 0x10]
je 0x1003956d
mov eax, dword [ebp + 0xc]
cmp esi, eax
jne 0x10039520
mov ecx, dword [ebp - 4]
cmp ecx, dword [ebp + 8]
jne 0x10039607
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 0x10039581
mov eax, dword [ebp - 0x18]
mov ecx, eax
mov dword [edi], eax
jmp 0x10039584
mov ecx, dword [ebp - 8]
mov eax, dword [ebp + 0xc]
mov dword [edi + 4], ecx
cmp esi, eax
je 0x10039607
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
imul eax, ecx, 0x1000193
mov ecx, dword [edx + 0x18]
and ecx, eax
mov eax, dword [ebp - 0x1c]
lea eax, [eax + ecx*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.10036910
push 0x18
push edi
call fcn.100e3d5c
mov edx, dword [ebp - 0x14]
add esp, 8
mov eax, dword [ebp + 0xc]
dec dword [edx + 8]
cmp ebx, dword [ebp - 0x10]
je 0x10039618
cmp esi, eax
jne 0x100395d7
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 0x10039590
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 0x10048f20
Capabilities:
Hash data using fnv

Disassembly:
push ebp
mov ebp, esp
push 0xffffffffffffffff
push 0x100e62a5
mov eax, dword fs:[0]
push eax
sub esp, 0x24
push ebx
push esi
push edi
mov eax, dword [0x10114008]
xor eax, ebp
push eax
lea eax, [ebp - 0xc]
mov dword fs:[0], eax
mov ebx, ecx
mov edx, dword [ebp + 0xc]
mov edi, dword [ebp + 8]
mov dword [ebp - 0x10], edx
mov dword [ebp - 0x1c], edi
movzx eax, byte [edx]
xor eax, 0x811c9dc5
imul ecx, eax, 0x1000193
movzx eax, byte [edx + 1]
xor ecx, eax
movzx eax, byte [edx + 2]
imul ecx, ecx, 0x1000193
xor ecx, eax
movzx eax, byte [edx + 3]
imul ecx, ecx, 0x1000193
xor ecx, eax
imul eax, ecx, 0x1000193
mov ecx, ebx
push eax
mov dword [ebp - 0x14], eax
lea eax, [ebp - 0x24]
push edx
push eax
call fcn.10049aa0
mov eax, dword [ebp - 0x20]
test eax, eax
je 0x10048faa
mov dword [edi], eax
mov byte [edi + 4], 0
jmp 0x100490d6
cmp dword [ebx + 8], 0xfffffff
jne 0x10048fbe
push str.unordered_map_set_too_long
call dword [sym.imp.MSVCP140.dll_void___cdecl_std::_Xlength_error_char_const__]
lea eax, [ebx + 4]
mov dword [ebp - 0x18], eax
mov dword [ebp - 0x2c], eax
mov dword [ebp - 4], 0
push 0x10
mov dword [ebp - 0x28], 0
call fcn.100e38f8
mov esi, eax
add esp, 4
mov dword [ebp - 0x28], esi
mov ecx, dword [ebp - 0x10]
mov dword [ebp - 4], 1
vxorps xmm0, xmm0, xmm0
mov ecx, dword [ecx]
mov dword [esi + 8], ecx
mov byte [esi + 0xc], 0
mov eax, dword [ebx + 8]
vmovss xmm1, dword [ebx]
inc eax
vcvtsi2sd xmm0, xmm0, eax
shr eax, 0x1f
vaddsd xmm0, xmm0, qword [eax*8 + 0x10102fc0]
mov eax, dword [ebx + 0x1c]
vcvtsd2ss xmm2, xmm0, xmm0
vxorps xmm0, xmm0, xmm0
vcvtsi2sd xmm0, xmm0, eax
shr eax, 0x1f
vaddsd xmm0, xmm0, qword [eax*8 + 0x10102fc0]
vcvtsd2ss xmm0, xmm0, xmm0
vdivss xmm0, xmm2, xmm0
vcomiss xmm0, xmm1
jbe 0x10049089
vdivss xmm0, xmm2, xmm1
call fcn.1002a130
call fcn.100e4d50
mov ecx, 8
cmp eax, ecx
cmova ecx, eax
mov eax, dword [ebx + 0x1c]
cmp eax, ecx
jae 0x1004906b
cmp eax, 0x200
jae 0x10049069
shl eax, 3
cmp eax, ecx
jae 0x1004906b
mov eax, ecx
push eax
mov ecx, ebx
call fcn.10044340
push dword [ebp - 0x14]
lea eax, [esi + 8]
mov ecx, ebx
push eax
lea eax, [ebp - 0x2c]
push eax
call fcn.10049aa0
mov edx, dword [eax]
jmp 0x1004908c
mov edx, dword [ebp - 0x24]
mov eax, dword [edx + 4]
inc dword [ebx + 8]
mov edi, dword [ebp - 0x18]
mov dword [esi + 4], eax
mov dword [esi], edx
mov dword [eax], esi
mov dword [edx + 4], esi
mov ecx, dword [ebx + 0xc]
mov dword [ebp - 0x10], eax
mov eax, dword [ebx + 0x18]
and eax, dword [ebp - 0x14]
mov ebx, dword [ecx + eax*8]
cmp ebx, dword [edi]
jne 0x100490b7
mov dword [ecx + eax*8], esi
jmp 0x100490c9
cmp ebx, edx
jne 0x100490c0
mov dword [ecx + eax*8], esi
jmp 0x100490cd
mov edx, dword [ebp - 0x10]
cmp dword [ecx + eax*8 + 4], edx
jne 0x100490cd
mov dword [ecx + eax*8 + 4], esi
mov edi, dword [ebp - 0x1c]
mov dword [edi], esi
mov byte [edi + 4], 1
mov eax, edi
mov ecx, dword [ebp - 0xc]
mov dword fs:[0], ecx
pop ecx
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret 8
Function at 0x10049610
Capabilities:
Hash data using fnv

Disassembly:
push ebp
mov ebp, esp
push 0xffffffffffffffff
push 0x100e70c5
mov eax, dword fs:[0]
push eax
sub esp, 0x1c
push ebx
push esi
push edi
mov eax, dword [0x10114008]
xor eax, ebp
push eax
lea eax, [ebp - 0xc]
mov dword fs:[0], eax
mov ebx, dword [ebp + 0xc]
mov edi, dword [ebp + 8]
mov dword [ebp - 0x14], edi
movzx eax, byte [ebx]
xor eax, 0x811c9dc5
imul ecx, eax, 0x1000193
movzx eax, byte [ebx + 1]
xor ecx, eax
movzx eax, byte [ebx + 2]
imul ecx, ecx, 0x1000193
xor ecx, eax
movzx eax, byte [ebx + 3]
imul ecx, ecx, 0x1000193
xor ecx, eax
imul eax, ecx, 0x1000193
push eax
mov dword [ebp - 0x10], eax
lea eax, [ebp - 0x1c]
push ebx
push eax
call fcn.10049b10
mov eax, dword [ebp - 0x18]
test eax, eax
je 0x10049693
mov dword [edi], eax
mov byte [edi + 4], 0
jmp 0x100497d2
cmp dword [0x10116d3c], 0xfffffff
jne 0x100496aa
push str.unordered_map_set_too_long
call dword [sym.imp.MSVCP140.dll_void___cdecl_std::_Xlength_error_char_const__]
mov dword [ebp - 0x24], 0x10116d38
mov dword [ebp - 4], 0
push 0x10
mov dword [ebp - 0x20], 0
call fcn.100e38f8
mov esi, eax
add esp, 4
mov dword [ebp - 0x20], esi
mov dword [ebp - 4], 1
mov ecx, dword [ebx]
mov dword [esi + 8], ecx
mov dword [esi + 0xc], 0
mov ecx, dword [0x10116d3c]
mov ebx, dword [0x10116d50]
vmovss xmm1, dword [0x10116d34]
vxorps xmm0, xmm0, xmm0
lea eax, [ecx + 1]
vcvtsi2sd xmm0, xmm0, eax
shr eax, 0x1f
vaddsd xmm0, xmm0, qword [eax*8 + 0x10102fc0]
vcvtsd2ss xmm2, xmm0, xmm0
vxorps xmm0, xmm0, xmm0
mov eax, ebx
shr eax, 0x1f
vcvtsi2sd xmm0, xmm0, ebx
vaddsd xmm0, xmm0, qword [eax*8 + 0x10102fc0]
vcvtsd2ss xmm0, xmm0, xmm0
vdivss xmm0, xmm2, xmm0
vcomiss xmm0, xmm1
jbe 0x10049781
vdivss xmm0, xmm2, xmm1
call fcn.1002a130
call fcn.100e4d50
mov ecx, 8
cmp eax, ecx
cmova ecx, eax
cmp ebx, ecx
jae 0x10049761
cmp ebx, 0x200
jae 0x1004975f
shl ebx, 3
cmp ebx, ecx
jae 0x10049761
mov ebx, ecx
push ebx
call fcn.10049810
push dword [ebp - 0x10]
lea eax, [esi + 8]
push eax
lea eax, [ebp - 0x24]
push eax
call fcn.10049b10
mov ecx, dword [0x10116d3c]
mov edx, dword [eax]
jmp 0x10049784
mov edx, dword [ebp - 0x1c]
mov ebx, dword [edx + 4]
inc ecx
mov dword [0x10116d3c], ecx
mov dword [esi], edx
mov dword [esi + 4], ebx
mov dword [ebx], esi
mov dword [edx + 4], esi
mov eax, dword [0x10116d4c]
and eax, dword [ebp - 0x10]
mov ecx, dword [0x10116d40]
mov edi, dword [ecx + eax*8]
cmp edi, dword [0x10116d38]
jne 0x100497b6
mov dword [ecx + eax*8], esi
jmp 0x100497c5
cmp edi, edx
jne 0x100497bf
mov dword [ecx + eax*8], esi
jmp 0x100497c9
cmp dword [ecx + eax*8 + 4], ebx
jne 0x100497c9
mov dword [ecx + eax*8 + 4], esi
mov edi, dword [ebp - 0x14]
mov dword [edi], esi
mov byte [edi + 4], 1
mov eax, edi
mov ecx, dword [ebp - 0xc]
mov dword fs:[0], ecx
pop ecx
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret 8
Function at 0x1004bd60
Capabilities:
Access peb ldr_data

Disassembly:
push ebp
mov ebp, esp
push 0xffffffffffffffff
push 0x100e7fef
mov eax, dword fs:[0]
push eax
sub esp, 8
push esi
push edi
mov eax, dword [0x10114008]
xor eax, ebp
push eax
lea eax, [ebp - 0xc]
mov dword fs:[0], eax
mov edi, ecx
mov dword [ebp - 0x10], edi
mov dword [ebp - 0x14], edi
vxorps xmm0, xmm0, xmm0
vmovss dword [edi], xmm0
push 0x24
mov dword [ebp - 0x10], edi
mov dword [edi + 4], 0
mov dword [edi + 8], 0
call fcn.100e38f8
add esp, 4
mov dword [eax], eax
mov dword [eax + 4], eax
mov dword [edi + 4], eax
lea ecx, [edi + 0xc]
mov dword [ebp - 4], 0
mov dword [ecx], 0
mov dword [ecx + 4], 0
mov dword [ecx + 8], 0
mov byte [ebp - 4], 1
vmovss xmm0, dword [0x10102c90]
mov dword [edi + 0x18], 7
mov dword [edi + 0x1c], 8
vmovss dword [edi], xmm0
push dword [edi + 4]
push 0x10
call fcn.10020140
mov dword [ebp - 4], 2
mov dword [edi + 0x20], 0
mov dword [edi + 0x24], 0
mov dword [edi + 0x28], 0
mov dword [edi + 0x2c], 0
mov dword [edi + 0x30], 0
mov dword [edi + 0x34], 0
mov byte [ebp - 4], 4
lea esi, [edi + 0x40]
vmovss xmm0, dword [0x10102f30]
vmovss dword [edi + 0x38], xmm0
mov byte [edi + 0x3c], 0
mov dword [ebp - 0x10], esi
vxorps xmm0, xmm0, xmm0
vmovss dword [esi], xmm0
push 0x20
mov dword [esi + 4], 0
mov dword [esi + 8], 0
call fcn.100e38f8
add esp, 4
mov dword [eax], eax
mov dword [eax + 4], eax
mov dword [esi + 4], eax
lea ecx, [esi + 0xc]
mov dword [ecx], 0
mov dword [ecx + 4], 0
mov dword [ecx + 8], 0
mov byte [ebp - 4], 6
vmovss xmm0, dword [0x10102c90]
mov dword [esi + 0x18], 7
mov dword [esi + 0x1c], 8
vmovss dword [esi], xmm0
push dword [esi + 4]
push 0x10
call fcn.10020140
mov dword [edi + 0x60], 0
mov dword [edi + 0x64], 0
mov dword [edi + 0x68], 0xffffffff
mov dword [edi + 0x6c], 0
vxorps xmm1, xmm1, xmm1
vmovups xmmword [edi + 0x70], xmm1
vmovss dword [edi + 0x80], xmm1
vmovss dword [edi + 0x84], xmm1
vpxor xmm0, xmm0, xmm0
vmovdqu ymmword [edi + 0x88], ymm0
vmovups ymmword [edi + 0xa8], ymm1
vmovss dword [edi + 0xc8], xmm1
mov dword [edi + 0xcc], 0
vmovups ymmword [edi + 0xd0], ymm1
vmovss dword [edi + 0xf0], xmm1
vmovq qword [edi + 0xf4], xmm0
mov dword [edi + 0xfc], 0
mov eax, edi
vmovss dword [edi + 0x100], xmm1
vmovss dword [edi + 0x104], xmm1
vmovss dword [edi + 0x108], xmm1
mov word [edi + 0x10c], 0
mov byte [edi + 0x10e], 0
vmovups xmmword [edi + 0x110], xmm1
vzeroupper
mov ecx, dword [ebp - 0xc]
mov dword fs:[0], ecx
pop ecx
pop edi
pop esi
mov esp, ebp
pop ebp
ret
Function at 0x1006caf0
Capabilities:
Write file on windows

Disassembly:
push ebp
mov ebp, esp
and esp, 0xfffffff8
sub esp, 0x1c
push ebx
mov ebx, ecx
push esi
push edi
cmp dword [ebx + 0x38], 0
je 0x1006cb1c
push dword [ebp + 0x10]
push dword [ebp + 0xc]
push dword [ebp + 8]
call dword [sym.imp.MSVCP140.dll_protected_virtual:_long_long___int64____thiscall_std::basic_streambuf_char__struct_std::char_traits_char__::xsputn_char_const___long_long___int64__]
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret 0xc
mov eax, dword [ebx + 0x20]
mov esi, dword [ebp + 0xc]
mov edi, dword [ebp + 0x10]
mov dword [esp + 0x20], esi
mov ecx, dword [eax]
lea eax, [ebx + 0x30]
mov dword [esp + 0x24], edi
mov dword [esp + 0x1c], ecx
mov dword [esp + 0x18], eax
test ecx, ecx
je 0x1006cb44
mov eax, dword [eax]
mov ecx, dword [eax]
jmp 0x1006cb4a
xor ecx, ecx
mov dword [esp + 0x18], eax
mov eax, ecx
cdq
mov dword [esp + 0x10], eax
mov ecx, edx
mov dword [esp + 0x14], ecx
test edi, edi
jl 0x1006cbb2
jg 0x1006cb61
test esi, esi
je 0x1006cbb2
test ecx, ecx
jl 0x1006cbad
jg 0x1006cb6b
test eax, eax
je 0x1006cbad
cmp edi, ecx
jg 0x1006cb7f
jl 0x1006cb75
cmp esi, eax
jae 0x1006cb7f
mov eax, esi
mov dword [esp + 0x10], esi
mov dword [esp + 0x14], edi
push eax
push dword [ebp + 8]
push dword [esp + 0x24]
call sub.VCRUNTIME140.dll_memcpy
mov eax, dword [esp + 0x24]
add esp, 0xc
mov edx, dword [esp + 0x10]
mov ecx, dword [ebp + 8]
add ecx, edx
sub esi, edx
mov eax, dword [eax]
sbb edi, dword [esp + 0x14]
sub dword [eax], edx
mov eax, dword [ebx + 0x20]
add dword [eax], edx
jmp 0x1006cbb5
mov ecx, dword [ebp + 8]
jmp 0x1006cbbf
mov ecx, dword [ebp + 8]
test edi, edi
jl 0x1006cbd9
jg 0x1006cbbf
test esi, esi
je 0x1006cbd9
mov eax, dword [ebx + 0x4c]
test eax, eax
je 0x1006cbd9
push eax
push esi
push 1
push ecx
call dword [sym.imp.api_ms_win_crt_stdio_l1_1_0.dll_fwrite]
add esp, 0x10
sub esi, eax
sbb edi, 0
mov eax, dword [esp + 0x20]
mov edx, dword [esp + 0x24]
sub eax, esi
sbb edx, edi
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret 0xc
Function at 0x1006cbf0
Capabilities:
Read file on windows

Disassembly:
push ebp
mov ebp, esp
sub esp, 0xc
mov eax, dword [ebp + 0x10]
push ebx
mov ebx, ecx
mov ecx, dword [ebp + 0xc]
push esi
mov esi, dword [ebp + 8]
mov dword [ebp - 4], esi
test eax, eax
jg 0x1006cc1c
jl 0x1006cc10
test ecx, ecx
jne 0x1006cc1c
pop esi
xor eax, eax
xor edx, edx
pop ebx
mov esp, ebp
pop ebp
ret 0xc
cmp dword [ebx + 0x38], 0
je 0x1006cc35
push eax
push ecx
push esi
mov ecx, ebx
call dword [sym.imp.MSVCP140.dll_protected_virtual:_long_long___int64____thiscall_std::basic_streambuf_char__struct_std::char_traits_char__::xsgetn_char___long_long___int64__]
pop esi
pop ebx
mov esp, ebp
pop ebp
ret 0xc
mov eax, dword [ebx + 0x1c]
push edi
mov edi, ecx
mov eax, dword [eax]
mov dword [ebp - 8], eax
test eax, eax
je 0x1006cc7d
mov eax, dword [ebx + 0x2c]
lea edx, [ebx + 0x2c]
mov dword [ebp - 0xc], edx
mov eax, dword [eax]
test eax, eax
je 0x1006cc83
cmp eax, ecx
mov esi, ecx
cmovb esi, eax
push esi
push dword [ebp - 8]
push dword [ebp - 4]
call sub.VCRUNTIME140.dll_memcpy
mov eax, dword [ebx + 0x2c]
sub edi, esi
add dword [ebp - 4], esi
add esp, 0xc
sub dword [eax], esi
mov eax, dword [ebx + 0x1c]
add dword [eax], esi
mov esi, dword [ebp - 4]
jmp 0x1006cc83
lea eax, [ebx + 0x2c]
mov dword [ebp - 0xc], eax
cmp dword [ebx + 0x4c], 0
je 0x1006ccf6
mov ecx, dword [ebx + 0xc]
lea eax, [ebx + 0x3c]
cmp dword [ecx], eax
jne 0x1006ccac
mov eax, dword [ebx + 0xc]
mov edx, dword [ebx + 0x54]
mov ecx, dword [ebx + 0x50]
sub edx, ecx
mov dword [eax], ecx
mov eax, dword [ebx + 0x1c]
mov dword [eax], ecx
mov eax, dword [ebp - 0xc]
mov eax, dword [eax]
mov dword [eax], edx
mov eax, dword [sym.imp.api_ms_win_crt_stdio_l1_1_0.dll_fread]
cmp edi, 0xfff
jbe 0x1006cce4
nop dword [eax]
push dword [ebx + 0x4c]
push 0xfff
push 1
push esi
call eax
add esp, 0x10
add esi, eax
sub edi, eax
cmp eax, 0xfff
jne 0x1006ccf6
cmp edi, eax
mov eax, dword [sym.imp.api_ms_win_crt_stdio_l1_1_0.dll_fread]
ja 0x1006ccc0
test edi, edi
je 0x1006ccf6
push dword [ebx + 0x4c]
push edi
push 1
push esi
call eax
add esp, 0x10
sub edi, eax
mov eax, dword [ebp + 0xc]
mov edx, dword [ebp + 0x10]
sub eax, edi
pop edi
pop esi
sbb edx, 0
pop ebx
mov esp, ebp
pop ebp
ret 0xc
Function at 0x1006d020
Capabilities:
Write file on windows

Disassembly:
push ebp
mov ebp, esp
sub esp, 0x30
mov eax, dword [0x10114008]
xor eax, ebp
mov dword [ebp - 4], eax
push ebx
mov ebx, dword [ebp + 8]
push esi
mov esi, ecx
cmp ebx, 0xffffffff
jne 0x1006d050
pop esi
xor eax, eax
pop ebx
mov ecx, dword [ebp - 4]
xor ecx, ebp
call fcn.100e38ea
mov esp, ebp
pop ebp
ret 4
mov eax, dword [esi + 0x20]
mov eax, dword [eax]
test eax, eax
je 0x1006d080
mov edx, dword [esi + 0x30]
mov edx, dword [edx]
add edx, eax
cmp eax, edx
jae 0x1006d080
call dword [sym.imp.MSVCP140.dll_protected:_char____thiscall_std::basic_streambuf_char__struct_std::char_traits_char__::_Pninc_void_]
pop esi
mov byte [eax], bl
mov eax, ebx
pop ebx
mov ecx, dword [ebp - 4]
xor ecx, ebp
call fcn.100e38ea
mov esp, ebp
pop ebp
ret 4
cmp dword [esi + 0x4c], 0
push edi
je 0x1006d158
mov edi, dword [esi + 0xc]
lea eax, [esi + 0x3c]
cmp dword [edi], eax
jne 0x1006d0a9
mov edx, dword [esi + 0x54]
mov ecx, dword [esi + 0x50]
sub edx, ecx
mov dword [edi], ecx
mov eax, dword [esi + 0x1c]
mov dword [eax], ecx
mov eax, dword [esi + 0x2c]
mov dword [eax], edx
mov ecx, dword [esi + 0x38]
test ecx, ecx
jne 0x1006d0b5
movsx eax, bl
jmp 0x1006d0ed
lea eax, [ebp - 0x2c]
mov byte [ebp - 0x25], bl
push eax
lea eax, [ebp - 4]
push eax
lea eax, [ebp - 0x24]
push eax
lea eax, [ebp - 0x30]
push eax
lea eax, [ebp - 0x24]
push eax
lea eax, [ebp - 0x25]
push eax
lea eax, [esi + 0x40]
push eax
call dword [sym.imp.MSVCP140.dll_public:_int___thiscall_std::codecvt_char__char__struct__Mbstatet_::out_struct__Mbstatet___char_const___char_const___char_const____char___char___char___const]
sub eax, 0
je 0x1006d117
sub eax, 1
je 0x1006d117
sub eax, 2
jne 0x1006d158
movsx eax, byte [ebp - 0x25]
push dword [esi + 0x4c]
push eax
call dword [sym.imp.api_ms_win_crt_stdio_l1_1_0.dll_fputc]
add esp, 8
or ecx, 0xffffffff
cmp eax, ecx
cmovne ecx, ebx
pop edi
pop esi
mov eax, ecx
pop ebx
mov ecx, dword [ebp - 4]
xor ecx, ebp
call fcn.100e38ea
mov esp, ebp
pop ebp
ret 4
mov edi, dword [ebp - 0x2c]
lea eax, [ebp - 0x24]
sub edi, eax
je 0x1006d135
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 0x1006d158
lea ecx, [ebp - 0x25]
mov byte [esi + 0x3d], 1
or eax, 0xffffffff
cmp dword [ebp - 0x30], ecx
pop edi
pop esi
cmovne eax, ebx
pop ebx
mov ecx, dword [ebp - 4]
xor ecx, ebp
call fcn.100e38ea
mov esp, ebp
pop ebp
ret 4
mov ecx, dword [ebp - 4]
or eax, 0xffffffff
pop edi
pop esi
xor ecx, ebp
pop ebx
call fcn.100e38ea
mov esp, ebp
pop ebp
ret 4
Function at 0x1006d9d0
Capabilities:
Write file on windows

Disassembly:
push ebp
mov ebp, esp
sub esp, 0x28
mov eax, dword [0x10114008]
xor eax, ebp
mov dword [ebp - 4], eax
push esi
mov esi, ecx
cmp dword [esi + 0x38], 0
je 0x1006da8c
cmp byte [esi + 0x3d], 0
je 0x1006da8c
mov eax, dword [esi]
push edi
push 0xffffffffffffffff
call dword [eax + 0xc]
cmp eax, 0xffffffff
je 0x1006da7a
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 0x1006da41
sub eax, 1
je 0x1006da45
sub eax, 2
jne 0x1006da7a
mov byte [esi + 0x3d], al
mov al, 1
pop edi
pop esi
mov ecx, dword [ebp - 4]
xor ecx, ebp
call fcn.100e38ea
mov esp, ebp
pop ebp
ret
mov byte [esi + 0x3d], 0
mov edi, dword [ebp - 0x28]
lea eax, [ebp - 0x24]
sub edi, eax
je 0x1006da63
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 0x1006da7a
cmp byte [esi + 0x3d], 0
pop edi
sete al
pop esi
mov ecx, dword [ebp - 4]
xor ecx, ebp
call fcn.100e38ea
mov esp, ebp
pop ebp
ret
pop edi
xor al, al
pop esi
mov ecx, dword [ebp - 4]
xor ecx, ebp
call fcn.100e38ea
mov esp, ebp
pop ebp
ret
mov ecx, dword [ebp - 4]
mov al, 1
xor ecx, ebp
pop esi
call fcn.100e38ea
mov esp, ebp
pop ebp
ret
Function at 0x10070c60
Capabilities:
Log keystrokes
Log keystrokes via polling

Disassembly:
push ebp
mov ebp, esp
sub esp, 0x1c
mov eax, dword [0x10114008]
xor eax, ebp
mov dword [ebp - 4], eax
movsx ecx, word [ebp + 0xc]
push esi
mov esi, dword [ebp + 8]
mov dword [ebp - 0x18], esi
cmp ecx, 0xa1
ja case.0x10070c8e.3
movzx eax, byte [ecx + 0x10070e64]
jmp dword [eax*4 + 0x10070e08]
push 2
push 0x100fc6dc
jmp 0x10070dd9
push 2
push 0x100fc6e4
jmp 0x10070dd9
push 2
push 0x100fc6e0
jmp 0x10070dd9
push 2
push 0x100fc6ec
jmp 0x10070dd9
push 2
push 0x100fc6e8
jmp 0x10070dd9
push 5
push str.SHIFT
jmp 0x10070dd9
push 3
push 0x100fc6f0
jmp 0x10070dd9
push 4
push str.NUM0
jmp 0x10070dd9
push 4
push str.NUM1
jmp 0x10070dd9
push 4
push str.NUM2
jmp 0x10070dd9
push 4
push str.NUM3
jmp 0x10070dd9
push 4
push str.NUM4
jmp 0x10070dd9
push 4
push str.NUM5
jmp 0x10070dd9
push 4
push str.NUM6
jmp 0x10070dd9
push 4
push str.NUM7
jmp 0x10070dd9
push 4
push str.NUM8
jmp 0x10070dd9
push 4
push str.NUM9
jmp 0x10070dd9
push 1
push 0x100fe190
jmp 0x10070dd9
push 1
push 0x100fc750
jmp 0x10070dd9
push 3
push 0x100fc758
jmp 0x10070dd9
push 1
push 0x100fc754
jmp 0x10070dd9
push 0x10
lea eax, [ebp - 0x14]
push eax
push 0
vpxor xmm0, xmm0, xmm0
push ecx
vmovdqu xmmword [ebp - 0x14], xmm0
call dword [sym.imp.USER32.dll_MapVirtualKeyA]
shl eax, 0x10
push eax
call dword [sym.imp.USER32.dll_GetKeyNameTextA]
test eax, eax
je case.0x10070c8e.0
lea ecx, [ebp - 0x14]
mov dword [esi], 0
mov dword [esi + 0x10], 0
lea edx, [ecx + 1]
mov dword [esi + 0x14], 0
mov al, byte [ecx]
inc ecx
test al, al
jne 0x10070dc2
sub ecx, edx
lea eax, [ebp - 0x14]
push ecx
push eax
jmp 0x10070ded
push 1
push 0x100fc74c
mov dword [esi], 0
mov dword [esi + 0x10], 0
mov dword [esi + 0x14], 0
mov ecx, esi
call fcn.10020620
mov ecx, dword [ebp - 4]
mov eax, esi
xor ecx, ebp
pop esi
call fcn.100e38ea
mov esp, ebp
pop ebp
ret 8
Function at 0x100a07f0
Capabilities:
Log keystrokes via polling

Disassembly:
push ebp
mov ebp, esp
push 0xffffffffffffffff
push 0x100ee98d
mov eax, dword fs:[0]
push eax
push ecx
push ebx
push esi
push edi
mov eax, dword [0x10114008]
xor eax, ebp
push eax
lea eax, [ebp - 0xc]
mov dword fs:[0], eax
mov esi, dword [0x10118020]
test esi, esi
je 0x100a09d8
mov eax, dword fs:[0x2c]
mov ebx, esi
mov ecx, dword [0x10117f54]
mov edi, dword [eax + ecx*4]
mov eax, dword [0x10117ff0]
cmp eax, dword [edi + 4]
jle 0x100a088d
push 0x10117ff0
call fcn.100e3eef
add esp, 4
cmp dword [0x10117ff0], 0xffffffff
jne 0x100a0887
push str.m_lifeState
push str.CBasePlayer
mov dword [ebp - 4], 0
call fcn.100e2fc0
push 0x10117ff0
mov dword [0x10117fb0], eax
mov dword [ebp - 4], 0xffffffff
call fcn.100e3ea5
add esp, 4
mov esi, dword [0x10118020]
mov eax, dword [0x10117fb0]
cmp byte [eax + ebx], 0
jne 0x100a09d8
mov edx, dword [0x1011984c]
mov eax, dword [edx + 0x14]
mov eax, dword [eax + 0x30]
cmp byte [eax + 0x22], 0
jne 0x100a090e
mov eax, dword [0x10118008]
cmp eax, dword [edi + 4]
jle 0x100a08ff
push 0x10118008
call fcn.100e3eef
add esp, 4
cmp dword [0x10118008], 0xffffffff
jne 0x100a08f9
push str.m_fFlags
push str.CBasePlayer
mov dword [ebp - 4], 1
call fcn.100e2fc0
push 0x10118008
mov dword [0x10117fd8], eax
call fcn.100e3ea5
add esp, 4
mov edx, dword [0x1011984c]
mov eax, dword [0x10117fd8]
test byte [eax + esi], 1
je 0x100a09d8
mov eax, dword [edx + 0x14]
mov esi, dword [sym.imp.USER32.dll_GetAsyncKeyState]
mov ecx, dword [0x1011981c]
mov eax, dword [eax + 0x30]
cmp byte [eax + 0x23], 0
jne 0x100a094e
cmp byte [ecx + 0x40], 0
jne 0x100a094e
mov eax, dword [edx + 4]
mov eax, dword [eax + 0x14]
push dword [eax + 0x20]
call esi
bt ax, 0xf
jae 0x100a09d8
mov edx, dword [0x1011984c]
mov ecx, dword [0x1011981c]
mov eax, dword [edx + 0x14]
mov eax, dword [eax + 0x30]
cmp byte [eax + 0x24], 0
je 0x100a0984
cmp byte [ecx + 0x64], 0
jne 0x100a0984
cmp byte [ecx + 0x40], 0
je 0x100a0984
mov eax, dword [edx + 4]
mov eax, dword [eax + 0x14]
push dword [eax + 0x20]
call esi
bt ax, 0xf
jae 0x100a09d8
mov edx, dword [0x1011984c]
mov ecx, dword [0x1011981c]
cmp byte [ecx + 0x16], 0
jne 0x100a09d8
cmp byte [ecx + 0x1c], 0
jne 0x100a09d8
cmp dword [ecx + 0xc], 0
jg 0x100a09d8
mov eax, dword [edx + 0x14]
mov eax, dword [eax + 0x30]
mov eax, dword [eax + 0xc]
test eax, eax
je 0x100a09c4
push eax
call esi
bt ax, 0xf
jb 0x100a09c4
mov eax, dword [0x1011984c]
mov eax, dword [eax + 4]
mov eax, dword [eax + 0x14]
push dword [eax + 0x20]
call esi
bt ax, 0xf
jae 0x100a09d8
mov al, 1
mov ecx, dword [ebp - 0xc]
mov dword fs:[0], ecx
pop ecx
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret
xor al, al
mov ecx, dword [ebp - 0xc]
mov dword fs:[0], ecx
pop ecx
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret