joyce8/EMBER2024-capa huggingface dataset:
Function at 0x100070f0
Capabilities:
Allocate or change rwx memory

Disassembly:
push ebp
mov ebp, esp
sub esp, 0x18
mov eax, dword [0x100a9114]
xor eax, ebp
mov dword [ebp - 4], eax
push esi
push dword [ebp + 8]
lea ecx, [ebp - 8]
call fcn.100030c0
mov esi, dword [ebp - 8]
lea eax, [ebp - 0x10]
push eax
push 0x40
push 4
push esi
mov dword [ebp - 0x14], 4
mov dword [ebp - 0x18], esi
call dword [sym.imp.KERNEL32.dll_VirtualProtect]
test eax, eax
setne byte [ebp - 0xc]
mov esi, dword [esi]
test eax, eax
je 0x1000714b
mov eax, dword [ebp - 0x10]
lea ecx, [ebp - 8]
push ecx
push eax
push dword [ebp - 0x14]
mov dword [ebp - 8], eax
push dword [ebp - 0x18]
call dword [sym.imp.KERNEL32.dll_VirtualProtect]
mov eax, dword [ebp + 0xc]
cmp esi, eax
je 0x10007168
push 1
push eax
push ecx
mov ecx, esp
push dword [ebp + 8]
call fcn.100030c0
call fcn.100017e0
add esp, 0xc
mov ecx, dword [ebp - 4]
xor ecx, ebp
pop esi
call fcn.10040e3d
mov esp, ebp
pop ebp
ret

Function at 0x10007ac0
Capabilities:
Allocate or change rwx memory

Disassembly:
push ebp
mov ebp, esp
sub esp, 0x18
mov eax, dword [0x100a9114]
xor eax, ebp
mov dword [ebp - 4], eax
mov al, byte [ebp + 0x14]
xor ecx, ecx
push ebx
mov ebx, dword [ebp + 0xc]
test al, al
push esi
mov esi, dword [ebp + 0x10]
cmovne ecx, esi
mov dword [ebp - 0x14], 0
test ecx, ecx
jne 0x10007af2
mov byte [ebp - 8], cl
jmp 0x10007b0f
mov eax, dword [ebp + 8]
lea edx, [ebp - 0xc]
push edx
push 0x40
push ecx
push eax
mov dword [ebp - 0x10], ecx
mov dword [ebp - 0x14], eax
call dword [sym.imp.KERNEL32.dll_VirtualProtect]
test eax, eax
setne byte [ebp - 8]
push esi
push ebx
push dword [ebp + 8]
call fcn.10042810
add esp, 0xc
cmp byte [ebp - 8], 0
je 0x10007b39
mov eax, dword [ebp - 0xc]
lea ecx, [ebp - 0x18]
push ecx
push eax
push dword [ebp - 0x10]
mov dword [ebp - 0x18], eax
push dword [ebp - 0x14]
call dword [sym.imp.KERNEL32.dll_VirtualProtect]
mov ecx, dword [ebp - 4]
pop esi
xor ecx, ebp
pop ebx
call fcn.10040e3d
mov esp, ebp
pop ebp
ret
Function at 0x10009290
Capabilities:
Access peb ldr_data

Disassembly:
push ebp
mov ebp, esp
push 0xffffffffffffffff
push 0x1006d9dd
mov eax, dword fs:[0]
push eax
sub esp, 0x1c
push ebx
push esi
push edi
mov eax, dword [0x100a9114]
xor eax, ebp
push eax
lea eax, [ebp - 0xc]
mov dword fs:[0], eax
mov esi, ecx
push 8
mov dword [esi + 0x30], 0
mov dword [esi + 8], 0
mov dword [esi + 0x10], 0
mov dword [esi + 0x14], 0x201
mov dword [esi + 0x18], 6
mov dword [esi + 0x1c], 0
mov dword [esi + 0x20], 0
mov dword [esi + 0x24], 0
mov dword [esi + 0x28], 0
mov dword [esi + 0x2c], 0
mov dword [esi + 0xc], 0
call fcn.10040c15
mov edi, eax
add esp, 4
test edi, edi
je 0x10009334
xorps xmm0, xmm0
movq qword [edi], xmm0
push 1
mov dword [ebp - 4], 0
call fcn.100402e4
add esp, 4
mov dword [edi + 4], eax
jmp 0x10009336
xor edi, edi
mov eax, dword [ebp + 8]
mov dword [esi + 0x30], edi
mov dword [esi + 0x38], eax
mov dword [esi + 0x3c], 0
mov ecx, dword [edi + 4]
mov dword [ebp - 0x10], ecx
mov eax, dword [ecx]
call dword [eax + 4]
lea eax, [ebp - 0x14]
mov dword [ebp - 4], 1
push eax
call fcn.10001f40
add esp, 4
mov ecx, dword [eax]
push 0x20
mov edx, dword [ecx + 0x20]
mov ecx, eax
call edx
mov ecx, dword [ebp - 0x10]
mov bl, al
mov dword [ebp - 4], 0xffffffff
test ecx, ecx
je 0x10009390
mov edx, dword [ecx]
call dword [edx + 8]
test eax, eax
je 0x10009390
mov edx, dword [eax]
mov ecx, eax
push 1
call dword [edx]
cmp dword [esi + 0x38], 0
mov byte [esi + 0x40], bl
jne 0x100093ac
mov eax, dword [esi + 0xc]
mov ecx, dword [esi + 0x10]
and eax, 0x13
or eax, 4
mov dword [esi + 0xc], eax
and ecx, eax
jne 0x100093cf
cmp byte [ebp + 0xc], 0
je 0x100093bb
push esi
call fcn.10040779
add esp, 4
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
test cl, 4
je 0x100093db
mov esi, str.ios_base::badbit_set
jmp 0x100093eb
test cl, 2
mov esi, str.ios_base::failbit_set
mov eax, str.ios_base::eofbit_set
cmove esi, eax
lea eax, [ebp - 0x14]
push 1
push eax
call fcn.10009420
add esp, 8
lea ecx, [ebp - 0x28]
push eax
push esi
call fcn.10002fe0
push 0x1008bcfc
lea eax, [ebp - 0x28]
push eax
call fcn.10042331
int3
Function at 0x1000af10
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 edi
mov edi, dword [ebp + 8]
mov dword [ebp - 4], edi
test eax, eax
jg 0x1000af3c
jl 0x1000af30
test ecx, ecx
jne 0x1000af3c
pop edi
xor eax, eax
xor edx, edx
pop ebx
mov esp, ebp
pop ebp
ret 0xc
cmp dword [ebx + 0x38], 0
push esi
je 0x1000afee
mov dword [ebp - 8], ecx
mov dword [ebp - 4], eax
nop dword [eax]
mov ecx, ebx
call fcn.10007ce0
mov esi, eax
mov eax, edx
mov dword [ebp - 0xc], eax
test eax, eax
jl 0x1000afa3
jg 0x1000af68
test esi, esi
je 0x1000afa3
mov ecx, dword [ebp - 4]
cmp ecx, eax
jg 0x1000af7d
mov eax, dword [ebp - 8]
jl 0x1000af78
cmp eax, esi
jae 0x1000af7d
mov esi, eax
mov dword [ebp - 0xc], ecx
mov eax, dword [ebx + 0x1c]
push esi
push dword [eax]
push edi
call fcn.10042810
mov eax, dword [ebx + 0x2c]
add esp, 0xc
mov ecx, dword [ebp - 8]
mov edx, dword [ebp - 4]
sub ecx, esi
sbb edx, dword [ebp - 0xc]
sub dword [eax], esi
mov eax, dword [ebx + 0x1c]
add dword [eax], esi
jmp 0x1000afc2
mov eax, dword [ebx]
mov ecx, ebx
call dword [eax + 0x1c]
mov edx, dword [ebp - 4]
cmp eax, 0xffffffff
je 0x1000afd8
mov ecx, dword [ebp - 8]
mov esi, 1
add ecx, 0xffffffff
mov byte [edi], al
adc edx, 0xffffffff
add edi, esi
mov dword [ebp - 4], edx
mov dword [ebp - 8], ecx
test edx, edx
jg 0x1000af50
jl 0x1000afd8
test ecx, ecx
jne 0x1000af50
mov eax, dword [ebp + 0xc]
sub eax, dword [ebp - 8]
mov esi, dword [ebp + 0x10]
sbb esi, edx
mov edx, esi
pop esi
pop edi
pop ebx
mov esp, ebp
pop ebp
ret 0xc
mov eax, dword [ebx + 0x1c]
lea esi, [ebx + 0x2c]
mov edi, ecx
mov edx, dword [eax]
test edx, edx
je 0x1000b02a
mov eax, dword [esi]
mov eax, dword [eax]
test eax, eax
je 0x1000b02a
cmp eax, ecx
mov esi, ecx
cmovb esi, eax
push esi
push edx
push dword [ebp - 4]
call fcn.10042810
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
lea esi, [ebx + 0x2c]
cmp dword [ebx + 0x4c], 0
je 0x1000b097
mov ecx, dword [ebx + 0xc]
lea eax, [ebx + 0x3c]
cmp dword [ecx], eax
jne 0x1000b050
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 [esi]
mov dword [eax], edx
mov esi, dword [ebp - 4]
cmp edi, 0xfff
jbe 0x1000b082
nop dword [eax + eax]
push dword [ebx + 0x4c]
push 0xfff
push 1
push esi
call fcn.1004b5c5
add esp, 0x10
add esi, eax
sub edi, eax
cmp eax, 0xfff
jne 0x1000b097
cmp edi, eax
ja 0x1000b060
test edi, edi
je 0x1000b097
push dword [ebx + 0x4c]
push edi
push 1
push esi
call fcn.1004b5c5
add esp, 0x10
sub edi, eax
mov eax, dword [ebp + 0xc]
mov edx, dword [ebp + 0x10]
sub eax, edi
pop esi
pop edi
sbb edx, 0
pop ebx
mov esp, ebp
pop ebp
ret 0xc
Function at 0x1000bb80
Capabilities:
Allocate or change rwx memory
Execute shellcode via indirect call

Disassembly:
push ebp
mov ebp, esp
sub esp, 0x1c
mov eax, dword [0x100a9114]
xor eax, ebp
mov dword [ebp - 4], eax
mov eax, dword [ebp + 0xc]
push ebx
push esi
mov esi, dword [ebp + 0x10]
mov dword [ebp - 8], eax
mov eax, esi
push edi
mov edi, dword [sym.imp.KERNEL32.dll_VirtualProtect]
sub eax, 1
je 0x1000bbc8
sub eax, 1
je 0x1000bc23
sub eax, 2
je 0x1000bc85
pop edi
pop esi
pop ebx
mov ecx, dword [ebp - 4]
xor ecx, ebp
call fcn.10040e3d
mov esp, ebp
pop ebp
ret
mov bl, byte [ebp + 0xc]
mov eax, dword [ebp + 8]
sub bl, al
mov bh, byte [ebp + 0x14]
dec bl
mov dword [ebp - 0x1c], eax
movzx ecx, bh
mov dword [ebp - 0x18], 0
test bh, bh
jne 0x1000bbed
mov byte [ebp - 0xc], bh
mov byte [eax], bl
jmp 0x1000bc26
lea edx, [ebp - 0x10]
mov dword [ebp - 0x14], ecx
push edx
push 0x40
push ecx
push eax
mov dword [ebp - 0x18], eax
call edi
test eax, eax
mov eax, dword [ebp - 0x1c]
setne cl
mov byte [ebp - 0xc], cl
mov byte [eax], bl
test cl, cl
je 0x1000bc26
mov eax, dword [ebp - 0x10]
lea ecx, [ebp - 0x1c]
push ecx
push eax
push dword [ebp - 0x14]
mov dword [ebp - 0x1c], eax
push dword [ebp - 0x18]
call edi
jmp 0x1000bc26
mov bh, byte [ebp + 0x14]
mov eax, dword [ebp - 8]
sub eax, esi
mov dword [ebp - 0x18], 0
mov esi, dword [ebp + 8]
sub eax, esi
movzx eax, ax
mov dword [ebp - 8], eax
movzx ecx, ax
movzx eax, bh
add eax, eax
jne 0x1000bc50
mov byte [ebp - 0xc], 0
mov word [esi], cx
jmp 0x1000bc85
lea ecx, [ebp - 0x10]
mov dword [ebp - 0x14], eax
push ecx
push 0x40
push eax
push esi
mov dword [ebp - 0x18], esi
call edi
mov ecx, dword [ebp - 8]
test eax, eax
setne al
mov byte [ebp - 0xc], al
mov word [esi], cx
test al, al
je 0x1000bc85
mov eax, dword [ebp - 0x10]
lea ecx, [ebp - 8]
push ecx
push eax
push dword [ebp - 0x14]
mov dword [ebp - 8], eax
push dword [ebp - 0x18]
call edi
mov eax, dword [ebp + 0x10]
mov esi, dword [ebp + 8]
add eax, esi
mov ebx, dword [ebp + 0xc]
sub ebx, eax
mov dword [ebp - 0x18], 0
movzx eax, byte [ebp + 0x14]
shl eax, 2
test eax, eax
jne 0x1000bcba
mov byte [ebp - 0xc], al
mov dword [esi], ebx
pop edi
pop esi
pop ebx
mov ecx, dword [ebp - 4]
xor ecx, ebp
call fcn.10040e3d
mov esp, ebp
pop ebp
ret
lea ecx, [ebp - 0x10]
mov dword [ebp - 0x14], eax
push ecx
push 0x40
push eax
push esi
mov dword [ebp - 0x18], esi
call edi
test eax, eax
setne al
mov byte [ebp - 0xc], al
mov dword [esi], ebx
test al, al
je 0x1000bceb
mov eax, dword [ebp - 0x10]
lea ecx, [ebp - 8]
push ecx
push eax
push dword [ebp - 0x14]
mov dword [ebp - 8], eax
push dword [ebp - 0x18]
call edi
mov ecx, dword [ebp - 4]
pop edi
pop esi
xor ecx, ebp
pop ebx
call fcn.10040e3d
mov esp, ebp
pop ebp
ret
Function at 0x1000bd50
Capabilities:
Allocate or change rwx memory
Execute shellcode via indirect call

Disassembly:
push ebp
mov ebp, esp
sub esp, 0x1c
mov eax, dword [0x100a9114]
xor eax, ebp
mov dword [ebp - 4], eax
mov ecx, dword [ebp + 0x10]
push ebx
push esi
push edi
mov edi, dword [ebp + 8]
sub ecx, 1
je 0x1000be53
sub ecx, 1
je 0x1000bdf6
sub ecx, 2
je 0x1000bd95
mov dword [edi], 0
mov eax, edi
pop edi
pop esi
pop ebx
mov ecx, dword [ebp - 4]
xor ecx, ebp
call fcn.10040e3d
mov esp, ebp
pop ebp
ret
movzx ecx, byte [ebp + 0x14]
xor edx, edx
mov eax, dword [ebp + 0xc]
mov esi, eax
mov ebx, dword [sym.imp.KERNEL32.dll_VirtualProtect]
shl ecx, 2
mov dword [ebp - 0x14], edx
test ecx, ecx
jne 0x1000bdb4
xor cl, cl
jmp 0x1000bdcf
lea edx, [ebp - 0xc]
mov dword [ebp - 0x10], ecx
push edx
push 0x40
push ecx
push eax
mov dword [ebp - 0x14], eax
call ebx
mov edx, dword [ebp - 0x14]
test eax, eax
mov eax, dword [ebp + 0xc]
setne cl
mov byte [ebp - 8], cl
mov esi, dword [esi]
test cl, cl
je 0x1000bdec
mov eax, dword [ebp - 0xc]
lea ecx, [ebp - 0x18]
push ecx
push eax
push dword [ebp - 0x10]
mov dword [ebp - 0x18], eax
push edx
call ebx
mov eax, dword [ebp + 0xc]
add eax, 4
add eax, esi
jmp 0x1000beb3
movzx ecx, byte [ebp + 0x14]
xor edx, edx
mov eax, dword [ebp + 0xc]
mov esi, eax
mov ebx, dword [sym.imp.KERNEL32.dll_VirtualProtect]
mov dword [ebp - 0x14], edx
add ecx, ecx
jne 0x1000be12
xor cl, cl
jmp 0x1000be2d
lea edx, [ebp - 0xc]
mov dword [ebp - 0x10], ecx
push edx
push 0x40
push ecx
push eax
mov dword [ebp - 0x14], eax
call ebx
mov edx, dword [ebp - 0x14]
test eax, eax
mov eax, dword [ebp + 0xc]
setne cl
mov byte [ebp - 8], cl
movzx esi, word [esi]
test cl, cl
je 0x1000be4b
mov eax, dword [ebp - 0xc]
lea ecx, [ebp - 0x18]
push ecx
push eax
push dword [ebp - 0x10]
mov dword [ebp - 0x18], eax
push edx
call ebx
mov eax, dword [ebp + 0xc]
movsx ecx, si
add ecx, 2
jmp 0x1000beb1
movzx ecx, byte [ebp + 0x14]
xor edx, edx
mov eax, dword [ebp + 0xc]
mov esi, eax
mov ebx, dword [sym.imp.KERNEL32.dll_VirtualProtect]
mov dword [ebp - 0x14], edx
test ecx, ecx
jne 0x1000be6f
xor cl, cl
jmp 0x1000be8a
lea edx, [ebp - 0xc]
mov dword [ebp - 0x10], ecx
push edx
push 0x40
push ecx
push eax
mov dword [ebp - 0x14], eax
call ebx
mov edx, dword [ebp - 0x14]
test eax, eax
mov eax, dword [ebp + 0xc]
setne cl
mov byte [ebp - 8], cl
mov ch, byte [esi]
mov byte [ebp - 0x19], ch
test cl, cl
je 0x1000bead
mov eax, dword [ebp - 0xc]
lea ecx, [ebp - 0x18]
push ecx
push eax
push dword [ebp - 0x10]
mov dword [ebp - 0x18], eax
push edx
call ebx
mov eax, dword [ebp + 0xc]
mov ch, byte [ebp - 0x19]
movsx ecx, ch
inc eax
add eax, ecx
mov ecx, dword [ebp - 4]
mov dword [edi], eax
xor ecx, ebp
mov eax, edi
pop edi
pop esi
pop ebx
call fcn.10040e3d
mov esp, ebp
pop ebp
ret
Function at 0x100166a0
Capabilities:
Encode data using xor
Hash data with crc32

Disassembly:
push ebp
mov ebp, esp
push esi
mov esi, ecx
push edi
cmp dword [esi + 0xbc], 0
jg 0x100166c7
push 0x52d
push str.D:MGRPlayable_Monsoon_srcimguiimgui.h
push str.Size___0
call fcn.10052f2e
add esp, 0xc
mov ecx, dword [esi + 0xbc]
mov edi, 4
mov eax, dword [esi + 0xc4]
lea esi, [ebp + 8]
mov eax, dword [eax + ecx*4 - 4]
not eax
movzx ecx, byte [esi]
lea esi, [esi + 1]
movzx edx, al
xor edx, ecx
shr eax, 8
xor eax, dword [edx*4 + 0x100727e8]
sub edi, 1
jne 0x100166e1
mov ecx, dword [0x100aa3e4]
not eax
pop edi
pop esi
cmp dword [ecx + 0x1a34], eax
jne 0x10016713
mov dword [ecx + 0x1a38], eax
cmp dword [ecx + 0x1a6c], eax
jne 0x10016722
mov byte [ecx + 0x1a70], 1
pop ebp
ret 4

Function at 0x10017190
Capabilities:
Hash data with crc32

Disassembly:
push ebp
mov ebp, esp
push ebx
mov ebx, dword [ebp + 0x10]
push esi
mov esi, dword [ebp + 8]
not ebx
push edi
mov edi, dword [ebp + 0xc]
mov eax, ebx
test edi, edi
je 0x100171f3
mov cl, byte [esi]
lea esi, [esi + 1]
dec edi
cmp cl, 0x23
jne 0x100171d6
cmp edi, 2
jb 0x100171d6
cmp byte [esi], cl
jne 0x100171d6
cmp byte [esi + 1], cl
jne 0x100171d6
mov eax, ebx
movzx ecx, cl
movzx edx, al
xor edx, ecx
shr eax, 8
xor eax, dword [edx*4 + 0x100727e8]
jmp 0x100171a7
movzx edx, al
movzx ecx, cl
xor edx, ecx
shr eax, 8
xor eax, dword [edx*4 + 0x100727e8]
test edi, edi
jne 0x100171a7
pop edi
pop esi
not eax
pop ebx
pop ebp
ret
mov cl, byte [esi]
inc esi
test cl, cl
je 0x10017228
nop word [eax + eax]
cmp cl, 0x23
jne 0x1001720f
cmp byte [esi], cl
jne 0x1001720f
cmp byte [esi + 1], cl
cmove eax, ebx
movzx edx, al
movzx ecx, cl
xor edx, ecx
shr eax, 8
mov cl, byte [esi]
inc esi
xor eax, dword [edx*4 + 0x100727e8]
test cl, cl
jne 0x10017200
pop edi
pop esi
not eax
pop ebx
pop ebp
ret
Function at 0x10017ad0
Capabilities:
Hash data with crc32

Disassembly:
push ebp
mov ebp, esp
sub esp, 0x18
push ebx
push esi
push edi
mov edi, dword [ebp + 8]
cmp byte [edi], 0
jne 0x10017aea
cmp byte [edi + 0x2d94], 0
je 0x10017b01
push 0xf38
push str.D:MGRPlayable_Monsoon_srcimguiimgui.cpp
push str._g.Initialized___g.SettingsLoaded
call fcn.10052f2e
add esp, 0xc
or edx, 0xffffffff
mov dword [ebp - 4], 0
mov dword [ebp - 0x18], str.Window
mov esi, 0x10073421
mov al, 0x57
or ebx, 0xffffffff
nop dword [eax]
cmp al, 0x23
jne 0x10017b2e
cmp byte [esi], al
jne 0x10017b2e
cmp byte [esi + 1], al
cmove edx, ebx
movzx ecx, dl
movzx eax, al
xor ecx, eax
shr edx, 8
mov al, byte [esi]
inc esi
xor edx, dword [ecx*4 + 0x100727e8]
test al, al
jne 0x10017b20
mov esi, dword [edi + 0x2da8]
not edx
mov ecx, dword [edi + 0x2dac]
mov dword [ebp - 0x14], edx
mov dword [ebp - 0x10], 0x100224a0
mov dword [ebp - 0xc], 0x100223d0
mov dword [ebp - 8], 0x100224d0
cmp esi, ecx
jne 0x10017c10
inc esi
test ecx, ecx
je 0x10017b85
mov eax, ecx
cdq
sub eax, edx
sar eax, 1
add eax, ecx
jmp 0x10017b8a
mov eax, 8
cmp eax, esi
cmovg esi, eax
cmp esi, ecx
jle 0x10017c10
mov eax, dword [0x100aa3e4]
test eax, eax
je 0x10017ba2
inc dword [eax + 0x374]
push dword [0x100aa3ec]
lea eax, [esi + esi*2]
shl eax, 3
push eax
call dword [0x100a8cd8]
mov ebx, eax
add esp, 8
mov eax, dword [edi + 0x2db0]
test eax, eax
je 0x10017c04
mov ecx, dword [edi + 0x2da8]
lea ecx, [ecx + ecx*2]
shl ecx, 3
push ecx
push eax
push ebx
call fcn.10042810
mov ecx, dword [edi + 0x2db0]
add esp, 0xc
test ecx, ecx
je 0x10017bf4
mov eax, dword [0x100aa3e4]
test eax, eax
je 0x10017bf4
dec dword [eax + 0x374]
push dword [0x100aa3ec]
push ecx
call dword [0x100a8cdc]
add esp, 8
mov dword [edi + 0x2db0], ebx
mov dword [edi + 0x2dac], esi
mov eax, dword [edi + 0x2da8]
movups xmm0, xmmword [ebp - 0x18]
lea ecx, [eax + eax*2]
mov eax, dword [edi + 0x2db0]
movups xmmword [eax + ecx*8], xmm0
movq xmm0, qword [ebp - 8]
movq qword [eax + ecx*8 + 0x10], xmm0
inc dword [edi + 0x2da8]
mov byte [edi], 1
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret
Function at 0x1001d3d0
Capabilities:
Encode data using xor
Hash data with crc32

Disassembly:
push ebp
mov ebp, esp
sub esp, 0xc
mov eax, dword [0x100a9114]
xor eax, ebp
mov dword [ebp - 4], eax
mov eax, dword [0x100aa3e4]
push ebx
push esi
push edi
mov eax, dword [eax + 0x1a00]
cmp dword [eax + 0xbc], 0
lea edi, [eax + 0xbc]
mov dword [ebp - 0xc], eax
mov eax, dword [ebp + 8]
mov dword [ebp - 8], eax
jg 0x1001d41d
push 0x52d
push str.D:MGRPlayable_Monsoon_srcimguiimgui.h
push str.Size___0
call fcn.10052f2e
add esp, 0xc
mov eax, dword [edi]
lea edx, [ebp - 8]
mov ebx, dword [edi + 8]
mov esi, 4
mov ebx, dword [ebx + eax*4 - 4]
not ebx
movzx eax, byte [edx]
lea edx, [edx + 1]
movzx ecx, bl
xor ecx, eax
shr ebx, 8
xor ebx, dword [ecx*4 + 0x100727e8]
sub esi, 1
jne 0x1001d430
mov eax, dword [ebp - 0xc]
not ebx
mov esi, dword [edi]
mov ecx, dword [eax + 0xc0]
cmp esi, ecx
jne 0x1001d480
inc esi
test ecx, ecx
je 0x1001d46b
mov eax, ecx
cdq
sub eax, edx
sar eax, 1
add eax, ecx
jmp 0x1001d470
mov eax, 8
cmp eax, esi
mov ecx, edi
cmovg esi, eax
push esi
call fcn.10022f20
mov eax, dword [ebp - 0xc]
mov ecx, dword [edi]
mov eax, dword [eax + 0xc4]
mov dword [eax + ecx*4], ebx
inc dword [edi]
mov ecx, dword [ebp - 4]
pop edi
pop esi
xor ecx, ebp
pop ebx
call fcn.10040e3d
mov esp, ebp
pop ebp
ret
Function at 0x10021990
Capabilities:
Read file on windows

Disassembly:
push ebp
mov ebp, esp
sub esp, 8
push esi
mov esi, dword [0x100aa3e4]
cmp byte [esi + 0x2d94], 0
jne 0x10021aca
cmp dword [esi + 0x2db4], 0
je 0x100219ca
push 0x2533
push str.D:MGRPlayable_Monsoon_srcimguiimgui.cpp
push str.g.SettingsWindows.empty__
call fcn.10052f2e
add esp, 0xc
mov eax, dword [esi + 0x20]
test eax, eax
je 0x10021ac3
push edi
push 0x10075974
push eax
call fcn.10016f10
mov edi, eax
add esp, 8
test edi, edi
je 0x10021ac2
push ebx
push edi
call fcn.1005368d
add esp, 4
mov dword [ebp - 8], eax
cmp eax, 0xffffffff
je 0x10021ab8
push 2
push 0
push edi
call fcn.1004b9cf
add esp, 0xc
test eax, eax
jne 0x10021ab8
push edi
call fcn.1005368d
mov ebx, eax
add esp, 4
mov dword [ebp - 4], ebx
cmp ebx, 0xffffffff
je 0x10021ab8
push 0
push dword [ebp - 8]
push edi
call fcn.1004b9cf
add esp, 0xc
test eax, eax
jne 0x10021ab8
mov eax, dword [0x100aa3e4]
test eax, eax
je 0x10021a51
inc dword [eax + 0x374]
push dword [0x100aa3ec]
push ebx
call dword [0x100a8cd8]
mov ebx, eax
add esp, 8
test ebx, ebx
je 0x10021ab8
push edi
push dword [ebp - 4]
push 1
push ebx
call fcn.1004b5c5
add esp, 0x10
push edi
cmp eax, dword [ebp - 4]
je 0x10021a86
call fcn.1004ad06
add esp, 4
jmp 0x10021a97
call fcn.1004ad06
push dword [ebp - 4]
push ebx
call fcn.10018800
add esp, 0xc
mov eax, dword [0x100aa3e4]
test eax, eax
je 0x10021aa6
dec dword [eax + 0x374]
push dword [0x100aa3ec]
push ebx
call dword [0x100a8cdc]
add esp, 8
jmp 0x10021ac1
push edi
call fcn.1004ad06
add esp, 4
pop ebx
pop edi
mov byte [esi + 0x2d94], 1
movss xmm0, dword [esi + 0x2d98]
xorps xmm1, xmm1
comiss xmm0, xmm1
jbe 0x10021b1c
subss xmm0, dword [esi + 0x18]
comiss xmm1, xmm0
movss dword [esi + 0x2d98], xmm0
jb 0x10021b1c
mov eax, dword [esi + 0x20]
test eax, eax
je 0x10021b0b
push eax
call fcn.1001fc30
add esp, 4
mov dword [esi + 0x2d98], 0
pop esi
mov esp, ebp
pop ebp
ret
mov byte [esi + 0x35c], 1
mov dword [esi + 0x2d98], 0
pop esi
mov esp, ebp
pop ebp
ret
Function at 0x10032750
Capabilities:
Log keystrokes via polling

Disassembly:
push ebp
mov ebp, esp
sub esp, 0x2c
mov eax, dword [0x100a9114]
xor eax, ebp
mov dword [ebp - 4], eax
push esi
push edi
call fcn.10016810
mov edi, eax
mov ecx, dword [edi + 0x90]
cmp dword [ecx + 0x34], 0
jle 0x10032781
cmp dword [ecx + 0x14], 0
jne 0x10032798
cmp dword [ecx + 0x18], 0
jne 0x10032798
push 0xd9
push str.D:MGRPlayable_Monsoon_srcimguiimgui_impl_win32.cpp
push str.io.Fonts__IsBuilt_____Font_atlas_not_built__It_is_generally_built_by_the_renderer_back_end._Missing_call_to_renderer__NewFrame___function__e.g._ImGui_ImplOpenGL3_NewFrame__._
call fcn.10052f2e
add esp, 0xc
lea eax, [ebp - 0x2c]
push eax
push dword [0x100aa428]
call dword [sym.imp.USER32.dll_GetClientRect]
mov eax, dword [ebp - 0x24]
sub eax, dword [ebp - 0x2c]
movd xmm1, eax
mov eax, dword [ebp - 0x20]
sub eax, dword [ebp - 0x28]
cvtdq2ps xmm1, xmm1
movd xmm0, eax
lea eax, [ebp - 0x14]
cvtdq2ps xmm0, xmm0
push eax
movss dword [edi + 8], xmm1
movss dword [edi + 0xc], xmm0
call dword [sym.imp.KERNEL32.dll_QueryPerformanceCounter]
mov ecx, dword [ebp - 0x14]
sub ecx, dword [0x100aa430]
mov edx, dword [ebp - 0x10]
sbb edx, dword [0x100aa434]
call fcn.100413c0
mov edx, dword [0x100aa43c]
mov ecx, dword [0x100aa438]
cvtsd2ss xmm0, xmm0
movss dword [ebp - 8], xmm0
call fcn.100413c0
movss xmm1, dword [ebp - 8]
cvtsd2ss xmm0, xmm0
mov esi, dword [sym.imp.USER32.dll_GetKeyState]
push 0x11
divss xmm1, xmm0
movss dword [edi + 0x10], xmm1
mov eax, dword [ebp - 0x14]
mov ecx, dword [ebp - 0x10]
mov dword [0x100aa430], eax
mov dword [0x100aa434], ecx
call esi
shr eax, 0xf
and al, 1
push 0x10
mov byte [edi + 0xf8], al
call esi
shr eax, 0xf
and al, 1
push 0x12
mov byte [edi + 0xf9], al
call esi
shr eax, 0xf
and al, 1
mov byte [edi + 0xfb], 0
mov byte [edi + 0xfa], al
call fcn.10016810
cmp byte [eax + 0x353], 0
lea esi, [eax + 0xe0]
je 0x100328a6
cvttss2si eax, dword [eax + 0xe4]
cvttss2si ecx, dword [esi]
mov dword [ebp - 8], eax
lea eax, [ebp - 0xc]
push eax
push dword [0x100aa428]
mov dword [ebp - 0xc], ecx
call dword [sym.imp.USER32.dll_ClientToScreen]
push dword [ebp - 8]
push dword [ebp - 0xc]
call dword [sym.imp.USER32.dll_SetCursorPos]
mov dword [esi], 0xff7fffff
mov dword [esi + 4], 0xff7fffff
call dword [sym.imp.USER32.dll_GetForegroundWindow]
test eax, eax
je 0x1003290e
mov ecx, dword [0x100aa428]
cmp eax, ecx
je 0x100328d3
push ecx
push eax
call dword [sym.imp.USER32.dll_IsChild]
test eax, eax
je 0x1003290e
lea eax, [ebp - 0x1c]
push eax
call dword [sym.imp.USER32.dll_GetCursorPos]
test eax, eax
je 0x1003290e
lea eax, [ebp - 0x1c]
push eax
push dword [0x100aa428]
call dword [sym.imp.USER32.dll_ScreenToClient]
test eax, eax
je 0x1003290e
movd xmm0, dword [ebp - 0x1c]
movd xmm1, dword [ebp - 0x18]
cvtdq2ps xmm0, xmm0
cvtdq2ps xmm1, xmm1
movss dword [esi], xmm0
movss dword [esi + 4], xmm1
cmp byte [edi + 0xa8], 0
pop edi
pop esi
je 0x1003291e
or eax, 0xffffffff
jmp 0x10032923
call fcn.100168c0
cmp dword [0x100a8e90], eax
je 0x10032935
mov dword [0x100a8e90], eax
call fcn.10032bf0
call fcn.10032950
mov ecx, dword [ebp - 4]
xor ecx, ebp
call fcn.10040e3d
mov esp, ebp
pop ebp
ret