joyce8/EMBER2024-capa huggingface dataset:
Function at 0x43ea50
Capabilities:
Write file on windows

Disassembly:
push ebp
mov ebp, esp
sub esp, 0x28
mov eax, dword [0x5582e0]
xor eax, ebp
mov dword [ebp - 4], eax
push esi
mov esi, ecx
cmp dword [esi + 0x38], 0
je 0x43eb0c
cmp byte [esi + 0x3d], 0
je 0x43eb0c
mov eax, dword [esi]
push edi
push 0xffffffffffffffff
call dword [eax + 0xc]
cmp eax, 0xffffffff
je 0x43eafa
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 0x43eac1
sub eax, 1
je 0x43eac5
sub eax, 2
jne 0x43eafa
mov byte [esi + 0x3d], al
mov al, 1
pop edi
pop esi
mov ecx, dword [ebp - 4]
xor ecx, ebp
call fcn.00501271
mov esp, ebp
pop ebp
ret
mov byte [esi + 0x3d], 0
mov edi, dword [ebp - 0x28]
lea eax, [ebp - 0x24]
sub edi, eax
je 0x43eae3
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 0x43eafa
cmp byte [esi + 0x3d], 0
pop edi
sete al
pop esi
mov ecx, dword [ebp - 4]
xor ecx, ebp
call fcn.00501271
mov esp, ebp
pop ebp
ret
pop edi
xor al, al
pop esi
mov ecx, dword [ebp - 4]
xor ecx, ebp
call fcn.00501271
mov esp, ebp
pop ebp
ret
mov ecx, dword [ebp - 4]
mov al, 1
xor ecx, ebp
pop esi
call fcn.00501271
mov esp, ebp
pop ebp
ret
Function at 0x43f450
Capabilities:
Write file on windows

Disassembly:
push ebp
mov ebp, esp
sub esp, 0x30
mov eax, dword [0x5582e0]
xor eax, ebp
mov dword [ebp - 4], eax
push ebx
mov ebx, dword [ebp + 8]
push esi
mov esi, ecx
cmp ebx, 0xffffffff
jne 0x43f480
pop esi
xor eax, eax
pop ebx
mov ecx, dword [ebp - 4]
xor ecx, ebp
call fcn.00501271
mov esp, ebp
pop ebp
ret 4
mov eax, dword [esi + 0x20]
mov eax, dword [eax]
test eax, eax
je 0x43f4b0
mov edx, dword [esi + 0x30]
mov edx, dword [edx]
add edx, eax
cmp eax, edx
jae 0x43f4b0
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.00501271
mov esp, ebp
pop ebp
ret 4
cmp dword [esi + 0x4c], 0
push edi
je 0x43f5ad
mov edi, dword [esi + 0xc]
lea eax, [esi + 0x3c]
cmp dword [edi], eax
jne 0x43f4d9
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 0x43f50d
push dword [esi + 0x4c]
movsx eax, bl
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.00501271
mov esp, ebp
pop ebp
ret 4
lea eax, [ebp - 0x2c]
mov byte [ebp - 0x28], bl
push eax
lea eax, [ebp - 4]
push eax
lea eax, [ebp - 0x24]
push eax
lea eax, [ebp - 0x30]
push eax
lea eax, [ebp - 0x27]
push eax
lea eax, [ebp - 0x28]
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 0x43f56c
sub eax, 1
je 0x43f56c
sub eax, 2
jne 0x43f5ad
push dword [esi + 0x4c]
push dword [ebp - 0x28]
call fcn.0043bdf0
add esp, 8
or ecx, 0xffffffff
test al, al
cmovne ecx, ebx
pop edi
pop esi
mov eax, ecx
pop ebx
mov ecx, dword [ebp - 4]
xor ecx, ebp
call fcn.00501271
mov esp, ebp
pop ebp
ret 4
mov edi, dword [ebp - 0x2c]
lea eax, [ebp - 0x24]
sub edi, eax
je 0x43f58a
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 0x43f5ad
lea ecx, [ebp - 0x28]
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.00501271
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.00501271
mov esp, ebp
pop ebp
ret 4
Function at 0x4401f0
Capabilities:
Read file on windows

Disassembly:
push ebp
mov ebp, esp
mov eax, dword [ebp + 0x10]
sub esp, 8
push ebx
mov ebx, ecx
mov ecx, dword [ebp + 0xc]
test eax, eax
jg 0x440214
jl 0x440209
test ecx, ecx
jne 0x440214
xor eax, eax
xor edx, edx
pop ebx
mov esp, ebp
pop ebp
ret 0xc
cmp dword [ebx + 0x38], 0
je 0x44022e
push eax
push ecx
push dword [ebp + 8]
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 ebx
mov esp, ebp
pop ebp
ret 0xc
mov eax, dword [ebx + 0x1c]
push esi
push edi
mov edi, ecx
mov eax, dword [eax]
mov dword [ebp - 8], eax
test eax, eax
je 0x44027a
mov eax, dword [ebx + 0x2c]
lea edx, [ebx + 0x2c]
mov dword [ebp - 4], edx
mov eax, dword [eax]
test eax, eax
je 0x440280
mov edi, dword [ebp + 8]
cmp eax, ecx
mov esi, ecx
cmovb esi, eax
push esi
push dword [ebp - 8]
push edi
call sub.VCRUNTIME140.dll_memcpy
mov eax, dword [ebx + 0x2c]
add edi, esi
mov dword [ebp + 8], edi
add esp, 0xc
mov edi, dword [ebp + 0xc]
sub edi, esi
sub dword [eax], esi
mov eax, dword [ebx + 0x1c]
add dword [eax], esi
jmp 0x440280
lea eax, [ebx + 0x2c]
mov dword [ebp - 4], eax
cmp dword [ebx + 0x4c], 0
mov esi, dword [ebp + 8]
je 0x4402f6
mov ecx, dword [ebx + 0xc]
lea eax, [ebx + 0x3c]
cmp dword [ecx], eax
jne 0x4402ac
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 - 4]
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 0x4402e4
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 0x4402f6
cmp edi, eax
mov eax, dword [sym.imp.api_ms_win_crt_stdio_l1_1_0.dll_fread]
ja 0x4402c0
test edi, edi
je 0x4402f6
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 0x440310
Capabilities:
Write file on windows

Disassembly:
push ebp
mov ebp, esp
sub esp, 0x14
push ebx
mov ebx, ecx
cmp dword [ebx + 0x38], 0
je 0x440335
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 ebx
mov esp, ebp
pop ebp
ret 0xc
mov eax, dword [ebx + 0x20]
push esi
mov esi, dword [ebp + 0xc]
push edi
mov ecx, dword [eax]
lea eax, [ebx + 0x30]
mov edi, dword [ebp + 0x10]
mov dword [ebp - 0x10], esi
mov dword [ebp - 0x14], edi
mov dword [ebp - 0xc], ecx
mov dword [ebp - 8], eax
test ecx, ecx
je 0x44035b
mov eax, dword [eax]
mov ecx, dword [eax]
jmp 0x440360
xor ecx, ecx
mov dword [ebp - 8], eax
mov eax, ecx
cdq
mov dword [ebp + 0x10], eax
mov ecx, edx
mov dword [ebp - 4], ecx
test edi, edi
jl 0x4403c0
jg 0x440375
test esi, esi
je 0x4403c0
test ecx, ecx
jl 0x4403bb
jg 0x44037f
test eax, eax
je 0x4403bb
cmp edi, ecx
jg 0x440391
jl 0x440389
cmp esi, eax
jae 0x440391
mov eax, esi
mov dword [ebp + 0x10], esi
mov dword [ebp - 4], edi
push eax
push dword [ebp + 8]
push dword [ebp - 0xc]
call sub.VCRUNTIME140.dll_memcpy
mov eax, dword [ebp - 8]
add esp, 0xc
mov edx, dword [ebp + 0x10]
mov ecx, dword [ebp + 8]
add ecx, edx
sub esi, edx
mov eax, dword [eax]
sbb edi, dword [ebp - 4]
sub dword [eax], edx
mov eax, dword [ebx + 0x20]
add dword [eax], edx
jmp 0x4403c3
mov ecx, dword [ebp + 8]
jmp 0x4403cd
mov ecx, dword [ebp + 8]
test edi, edi
jl 0x4403e7
jg 0x4403cd
test esi, esi
je 0x4403e7
mov eax, dword [ebx + 0x4c]
test eax, eax
je 0x4403e7
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 [ebp - 0x10]
mov edx, dword [ebp - 0x14]
sub eax, esi
sbb edx, edi
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret 0xc
Function at 0x45ddd0
Capabilities:
Hash data using fnv

Disassembly:
push ebp
mov ebp, esp
sub esp, 0xc
mov edx, dword [ebp + 8]
mov eax, 0x1fffffff
push ebx
push esi
push edi
mov edi, ecx
mov esi, 1
bsr ecx, eax
mov eax, esi
mov dword [ebp - 0xc], edi
shl eax, cl
cmp edx, eax
ja 0x45df1c
mov ebx, dword [edi + 4]
lea eax, [edx - 1]
or eax, esi
mov dword [ebp - 4], ebx
bsr ecx, eax
push ebx
lea ecx, [ecx + 1]
shl esi, cl
lea ecx, [edi + 0xc]
lea eax, [esi + esi]
push eax
call fcn.00430630
mov ecx, dword [edi + 4]
lea eax, [esi - 1]
mov dword [edi + 0x18], eax
mov dword [edi + 0x1c], esi
mov ecx, dword [ecx]
cmp ecx, ebx
je 0x45def7
mov eax, ecx
movzx edx, byte [eax + 8]
xor edx, 0x811c9dc5
mov ecx, dword [ecx]
imul esi, edx, 0x1000193
movzx edx, byte [eax + 9]
xor esi, edx
movzx edx, byte [eax + 0xa]
imul esi, esi, 0x1000193
xor esi, edx
movzx edx, byte [eax + 0xb]
imul esi, esi, 0x1000193
xor esi, edx
imul edx, esi, 0x1000193
mov esi, dword [edi + 0x18]
and esi, edx
mov edx, dword [edi + 0xc]
mov edi, dword [edx + esi*8]
lea ebx, [edx + esi*8]
mov dword [ebp + 8], ebx
cmp edi, dword [ebp - 4]
jne 0x45de85
mov dword [ebx], eax
mov dword [ebx + 4], eax
jmp 0x45dee9
mov edx, dword [ebx + 4]
mov esi, dword [eax + 8]
cmp esi, dword [edx + 8]
jne 0x45debc
mov edx, dword [edx]
mov dword [ebp - 8], edx
cmp edx, eax
je 0x45deb7
mov edi, dword [eax + 4]
mov ebx, dword [ebp - 8]
mov dword [edi], ecx
mov esi, dword [ecx + 4]
mov dword [esi], edx
mov edx, dword [edx + 4]
mov dword [edx], eax
mov dword [ebx + 4], esi
mov ebx, dword [ebp + 8]
mov dword [ecx + 4], edi
mov dword [eax + 4], edx
mov dword [ebx + 4], eax
jmp 0x45dee9
cmp edi, edx
je 0x45decc
mov edx, dword [edx + 4]
cmp esi, dword [edx + 8]
je 0x45df00
cmp edi, edx
jne 0x45dec0
mov ebx, dword [eax + 4]
mov dword [ebx], ecx
mov edi, dword [ecx + 4]
mov dword [edi], edx
mov esi, dword [edx + 4]
mov dword [esi], eax
mov dword [edx + 4], edi
mov edx, dword [ebp + 8]
mov dword [ecx + 4], ebx
mov dword [eax + 4], esi
mov dword [edx], eax
mov eax, ecx
mov edi, dword [ebp - 0xc]
cmp ecx, dword [ebp - 4]
jne 0x45de32
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret 4
mov edi, dword [eax + 4]
mov ebx, dword [edx]
mov dword [edi], ecx
mov esi, dword [ecx + 4]
mov dword [esi], ebx
mov edx, dword [ebx + 4]
mov dword [edx], eax
mov dword [ebx + 4], esi
mov dword [ecx + 4], edi
mov dword [eax + 4], edx
jmp 0x45dee9
push str.invalid_hash_bucket_count
call sub.MSVCP140.dll_void___cdecl_std::_Xlength_error_char_const__
int3
Function at 0x45efd0
Capabilities:
Encode data using xor
Hash data using fnv

Disassembly:
push ebp
mov ebp, esp
sub esp, 0x20
mov eax, dword [ebp + 0xc]
mov edx, dword [ebp + 8]
push ebx
mov ebx, ecx
mov dword [ebp - 0x14], ebx
cmp edx, eax
je 0x45f14c
cmp dword [edx + 0x1c], 0x10
lea ecx, [ebx + 4]
mov eax, dword [ecx]
mov dword [ebp - 0x1c], eax
mov eax, dword [ebx + 0xc]
mov dword [ebp - 0x18], eax
mov eax, dword [edx + 4]
mov dword [ebp - 8], eax
lea eax, [edx + 8]
push esi
mov dword [ebp - 4], ecx
mov esi, edx
mov ebx, eax
jb 0x45f011
mov ebx, dword [eax]
xor edx, edx
push edi
mov edi, 0x811c9dc5
cmp dword [eax + 0x10], edx
jbe 0x45f035
mov ecx, eax
movzx eax, byte [edx + ebx]
inc edx
xor eax, edi
imul edi, eax, 0x1000193
cmp edx, dword [ecx + 0x10]
jb 0x45f020
mov ecx, dword [ebp - 4]
mov eax, dword [ebp - 0x14]
mov edx, dword [ebp - 0x18]
mov eax, dword [eax + 0x18]
and eax, edi
lea eax, [edx + eax*8]
mov edx, dword [eax]
mov dword [ebp - 0xc], eax
mov eax, dword [eax + 4]
mov dword [ebp - 0x10], edx
mov dword [ebp - 0x20], eax
mov edi, esi
mov ebx, esi
mov esi, dword [esi]
lea eax, [edi + 8]
push eax
push ecx
call fcn.0043c300
push 0x40
push edi
call fcn.00500e09
mov ecx, dword [ebp - 4]
add esp, 0x10
dec dword [ecx + 4]
cmp ebx, dword [ebp - 0x20]
je 0x45f0a0
mov eax, dword [ebp + 0xc]
cmp esi, eax
jne 0x45f051
mov ecx, dword [ebp - 0x10]
cmp ecx, dword [ebp + 8]
jne 0x45f142
mov ecx, dword [ebp - 0xc]
pop edi
mov dword [ecx], esi
mov ecx, dword [ebp - 8]
mov dword [ecx], esi
mov dword [esi + 4], ecx
pop esi
pop ebx
mov esp, ebp
pop ebp
ret 8
mov ecx, dword [ebp - 0x10]
cmp ecx, dword [ebp + 8]
mov ecx, dword [ebp - 0xc]
jne 0x45f0b2
mov eax, dword [ebp - 0x1c]
mov dword [ecx], eax
jmp 0x45f0b5
mov eax, dword [ebp - 8]
mov dword [ecx + 4], eax
mov eax, dword [ebp + 0xc]
cmp esi, eax
je 0x45f142
cmp dword [esi + 0x1c], 0x10
lea edi, [esi + 8]
jb 0x45f0cf
mov edi, dword [esi + 8]
mov ebx, dword [esi + 0x18]
xor ecx, ecx
mov edx, 0x811c9dc5
test ebx, ebx
je 0x45f0f1
nop dword [eax]
movzx eax, byte [ecx + edi]
inc ecx
xor eax, edx
imul edx, eax, 0x1000193
cmp ecx, ebx
jb 0x45f0e0
mov eax, dword [ebp - 0x14]
mov ecx, dword [ebp - 0x18]
mov eax, dword [eax + 0x18]
and eax, edx
lea eax, [ecx + eax*8]
mov ecx, dword [ebp - 4]
mov dword [ebp + 8], eax
mov eax, dword [eax + 4]
mov dword [ebp - 0x20], eax
nop dword [eax + eax]
mov edi, esi
mov ebx, esi
mov esi, dword [esi]
lea eax, [edi + 8]
push eax
push ecx
call fcn.0043c300
push 0x40
push edi
call fcn.00500e09
mov ecx, dword [ebp - 4]
add esp, 0x10
mov eax, dword [ebp + 0xc]
dec dword [ecx + 4]
cmp ebx, dword [ebp - 0x20]
je 0x45f153
cmp esi, eax
jne 0x45f110
mov ecx, dword [ebp + 8]
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 + 8]
mov edx, dword [ebp - 0x1c]
mov dword [ecx], edx
mov dword [ecx + 4], edx
cmp esi, eax
jne 0x45f0c3
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 0x45f180
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 0x45f2d6
mov eax, dword [ebx + 4]
mov dword [ebp - 0x10], eax
mov eax, dword [edx + 4]
mov dword [ebp - 4], 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 - 0xc], ecx
lea eax, [edi + eax*8]
mov dword [ebp - 8], eax
mov eax, dword [eax + 4]
mov dword [ebp - 0x14], eax
mov eax, esi
mov edi, esi
mov esi, dword [esi]
push 0xc
push eax
call fcn.00500e09
dec dword [ebx + 8]
add esp, 8
cmp edi, dword [ebp - 0x14]
je 0x45f239
mov eax, dword [ebp + 0xc]
cmp esi, eax
jne 0x45f1f7
mov ecx, dword [ebp - 0xc]
cmp ecx, dword [ebp + 8]
jne 0x45f2cc
mov edx, dword [ebp - 8]
mov ecx, dword [ebp - 4]
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 - 0xc]
mov edx, dword [ebp - 8]
cmp ecx, dword [ebp + 8]
jne 0x45f24d
mov eax, dword [ebp - 0x10]
mov ecx, eax
mov dword [edx], eax
jmp 0x45f250
mov ecx, dword [ebp - 4]
mov eax, dword [ebp + 0xc]
mov dword [edx + 4], ecx
cmp esi, eax
je 0x45f2cc
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
imul eax, ecx, 0x1000193
mov ecx, dword [ebx + 0x18]
and ecx, eax
mov eax, dword [ebp - 0x18]
lea eax, [eax + ecx*8]
mov dword [ebp + 8], eax
mov eax, dword [eax + 4]
mov dword [ebp - 0x14], eax
mov eax, esi
mov edi, esi
mov esi, dword [esi]
push 0xc
push eax
call fcn.00500e09
dec dword [ebx + 8]
add esp, 8
mov eax, dword [ebp + 0xc]
cmp edi, dword [ebp - 0x14]
je 0x45f2dd
cmp esi, eax
jne 0x45f2a7
mov ecx, dword [ebp + 8]
mov dword [ecx], esi
mov ecx, dword [ebp - 4]
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 + 8]
mov edx, dword [ebp - 0x10]
mov dword [ecx], edx
mov dword [ecx + 4], edx
cmp esi, eax
jne 0x45f260
mov ecx, dword [ebp - 4]
pop edi
mov dword [ecx], esi
mov dword [esi + 4], ecx
pop esi
pop ebx
mov esp, ebp
pop ebp
ret 8
Function at 0x45f8f0
Capabilities:
Encode data using xor
Hash data using fnv

Disassembly:
push ebp
mov ebp, esp
push esi
mov esi, dword [ebp + 0xc]
mov edx, 0x811c9dc5
push edi
mov edi, dword [ebp + 8]
mov ecx, 0
sub esi, edi
je 0x45f921
nop dword [eax]
movzx eax, byte [ecx + edi]
inc ecx
xor eax, edx
imul edx, eax, 0x1000193
cmp ecx, esi
jb 0x45f910
pop edi
mov eax, edx
pop esi
pop ebp
ret 8
Function at 0x470be0
Capabilities:
Encode data using xor
Hash data with crc32

Disassembly:
push ebp
mov ebp, esp
mov eax, dword [ebp + 0xc]
sub esp, 0x10
push ebx
mov ebx, dword [ebp + 8]
push dword [ebx]
push eax
push str._s___d_
push eax
call fcn.004e3c40
add esp, 0x10
test al, al
je 0x470d0d
mov eax, dword [ebx]
sub eax, 1
mov dword [ebp - 4], eax
js 0x470d08
push esi
push edi
nop word [eax + eax]
mov ecx, dword [0x55b690]
lea edx, [eax*4]
mov eax, dword [ebx + 8]
mov esi, 4
mov dword [ebp - 0x10], edx
mov edi, dword [ecx + 0x3f04]
mov eax, dword [edx + eax]
add edi, 0xfc
mov dword [ebp - 0xc], eax
lea edx, [ebp - 8]
mov dword [ebp - 8], eax
mov eax, dword [edi]
mov ebx, dword [edi + 8]
mov ebx, dword [ebx + eax*4 - 4]
not ebx
nop dword [eax + eax]
movzx eax, byte [edx]
lea edx, [edx + 1]
movzx ecx, bl
xor ecx, eax
shr ebx, 8
xor ebx, dword [ecx*4 + 0x511d00]
sub esi, 1
jne 0x470c60
mov eax, dword [0x55b690]
not ebx
cmp dword [eax + 0x3f28], ebx
jne 0x470c98
push esi
push dword [ebp - 0xc]
push 0xc
push ebx
call fcn.0046df50
add esp, 0x10
mov ecx, dword [edi + 4]
mov esi, dword [edi]
cmp esi, ecx
jne 0x470cc3
inc esi
test ecx, ecx
je 0x470cb1
mov eax, ecx
cdq
sub eax, edx
sar eax, 1
add eax, ecx
jmp 0x470cb6
mov eax, 8
cmp eax, esi
mov ecx, edi
cmovg esi, eax
push esi
call fcn.00492790
mov ecx, dword [edi]
mov eax, dword [edi + 8]
push str.Window
mov dword [eax + ecx*4], ebx
mov ebx, dword [ebp + 8]
inc dword [edi]
mov ecx, dword [ebp - 0x10]
mov eax, dword [ebx + 8]
push dword [ecx + eax]
call fcn.00470260
mov eax, dword [0x55b690]
add esp, 8
mov eax, dword [eax + 0x3f04]
dec dword [eax + 0xfc]
mov eax, dword [ebp - 4]
sub eax, 1
mov dword [ebp - 4], eax
jns 0x470c20
pop edi
pop esi
call fcn.004e4690
pop ebx
mov esp, ebp
pop ebp
ret
Function at 0x47b130
Capabilities:
Encode data using xor
Hash data with crc32

Disassembly:
push ebp
mov ebp, esp
push ecx
mov eax, dword [ebp + 8]
lea edx, [ebp - 4]
push ebx
push esi
push edi
mov edi, dword [0x55b690]
mov esi, 4
mov dword [ebp - 4], eax
mov ebx, dword [edi + 0x3f04]
mov eax, dword [ebx + 0xfc]
mov ebx, dword [ebx + 0x104]
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 + 0x511d00]
sub esi, 1
jne 0x47b163
mov eax, edi
not ebx
cmp dword [eax + 0x3f40], ebx
jne 0x47b195
mov dword [eax + 0x3f44], ebx
mov edi, dword [0x55b690]
cmp dword [eax + 0x3f84], ebx
jne 0x47b1aa
mov byte [eax + 0x3f88], 1
mov edi, dword [0x55b690]
cmp dword [edi + 0x3f28], ebx
jne 0x47b1c2
push 0
push dword [ebp + 8]
push 0xc
push ebx
call fcn.0046df50
add esp, 0x10
pop edi
pop esi
mov eax, ebx
pop ebx
mov esp, ebp
pop ebp
ret

Function at 0x47b1d0
Capabilities:
Encode data using xor
Hash data with crc32

Disassembly:
push ebp
mov ebp, esp
mov eax, dword [ecx + 0xfc]
lea edx, [ebp + 8]
push ebx
mov ebx, dword [ecx + 0x104]
push esi
mov esi, 4
mov ebx, dword [ebx + eax*4 - 4]
not ebx
nop
movzx eax, byte [edx]
lea edx, [edx + 1]
movzx ecx, bl
xor ecx, eax
shr ebx, 8
xor ebx, dword [ecx*4 + 0x511d00]
sub esi, 1
jne 0x47b1f0
mov eax, dword [0x55b690]
not ebx
cmp dword [eax + 0x3f40], ebx
jne 0x47b21f
mov dword [eax + 0x3f44], ebx
cmp dword [eax + 0x3f84], ebx
jne 0x47b22e
mov byte [eax + 0x3f88], 1
mov eax, dword [0x55b690]
cmp dword [eax + 0x3f28], ebx
jne 0x47b24b
push 0
push dword [ebp + 8]
push 4
push ebx
call fcn.0046df50
add esp, 0x10
pop esi
mov eax, ebx
pop ebx
pop ebp
ret 4

Function at 0x47b2e0
Capabilities:
Encode data using xor
Hash data with crc32

Disassembly:
push ebp
mov ebp, esp
mov eax, dword [ecx + 0xfc]
lea edx, [ebp + 8]
push ebx
mov ebx, dword [ecx + 0x104]
push esi
mov esi, 4
mov ebx, dword [ebx + eax*4 - 4]
not ebx
nop
movzx eax, byte [edx]
lea edx, [edx + 1]
movzx ecx, bl
xor ecx, eax
shr ebx, 8
xor ebx, dword [ecx*4 + 0x511d00]
sub esi, 1
jne 0x47b300
mov eax, dword [0x55b690]
not ebx
cmp dword [eax + 0x3f40], ebx
jne 0x47b32f
mov dword [eax + 0x3f44], ebx
cmp dword [eax + 0x3f84], ebx
jne 0x47b33e
mov byte [eax + 0x3f88], 1
mov eax, dword [0x55b690]
cmp dword [eax + 0x3f28], ebx
jne 0x47b35b
push 0
push dword [ebp + 8]
push 0xc
push ebx
call fcn.0046df50
add esp, 0x10
pop esi
mov eax, ebx
pop ebx
pop ebp
ret 4
Function at 0x47b370
Capabilities:
Encode data using xor
Hash data with crc32

Disassembly:
push ebp
mov ebp, esp
sub esp, 0x10
mov eax, dword [ebp + 8]
mov edx, ecx
push esi
push edi
lea esi, [ebp - 0x10]
mov edi, 0x10
movss xmm1, dword [edx + 0x118]
movss xmm0, dword [eax]
movss xmm2, dword [edx + 0x11c]
subss xmm0, xmm1
mov ecx, dword [edx + 0xfc]
movss dword [ebp - 0x10], xmm0
movss xmm0, dword [eax + 4]
subss xmm0, xmm2
movss dword [ebp - 0xc], xmm0
movss xmm0, dword [eax + 8]
subss xmm0, xmm1
movss dword [ebp - 8], xmm0
movss xmm0, dword [eax + 0xc]
mov eax, dword [edx + 0x104]
subss xmm0, xmm2
mov edx, dword [eax + ecx*4 - 4]
movss dword [ebp - 4], xmm0
not edx
nop
movzx eax, byte [esi]
lea esi, [esi + 1]
movzx ecx, dl
xor ecx, eax
shr edx, 8
xor edx, dword [ecx*4 + 0x511d00]
sub edi, 1
jne 0x47b3e0
mov eax, dword [0x55b690]
not edx
pop edi
pop esi
cmp dword [eax + 0x3f40], edx
jne 0x47b411
mov dword [eax + 0x3f44], edx
cmp dword [eax + 0x3f84], edx
jne 0x47b420
mov byte [eax + 0x3f88], 1
mov eax, edx
mov esp, ebp
pop ebp
ret 4

Function at 0x47c8f0
Capabilities:
Read file on windows

Disassembly:
push ebp
mov ebp, esp
push esi
push edi
mov edi, dword [ebp + 0x10]
test edi, edi
je 0x47c902
mov dword [edi], 0
push dword [ebp + 0xc]
push dword [ebp + 8]
call fcn.0047ca30
mov esi, eax
add esp, 8
test esi, esi
jne 0x47c91a
pop edi
pop esi
pop ebp
ret
push ebx
mov ebx, dword [sym.imp.api_ms_win_crt_stdio_l1_1_0.dll_ftell]
push esi
call ebx
add esp, 4
mov dword [ebp + 0x10], eax
cmp eax, 0xffffffff
je 0x47ca11
push 2
push 0
push esi
call dword [sym.imp.api_ms_win_crt_stdio_l1_1_0.dll_fseek]
add esp, 0xc
test eax, eax
jne 0x47ca11
push esi
call ebx
mov ebx, eax
add esp, 4
cmp ebx, 0xffffffff
je 0x47ca11
push 0
push dword [ebp + 0x10]
push esi
call dword [sym.imp.api_ms_win_crt_stdio_l1_1_0.dll_fseek]
add esp, 0xc
test eax, eax
jne 0x47ca11
mov eax, dword [0x55b690]
test eax, eax
je 0x47c980
inc dword [eax + 0xb0]
push dword [0x55b698]
mov eax, dword [ebp + 0x14]
add eax, ebx
push eax
call dword [0x550190]
add esp, 8
mov dword [ebp + 0x10], eax
test eax, eax
je 0x47ca11
push esi
push ebx
push 1
push eax
call dword [sym.imp.api_ms_win_crt_stdio_l1_1_0.dll_fread]
add esp, 0x10
cmp eax, ebx
je 0x47c9e1
push esi
call dword [sym.imp.api_ms_win_crt_stdio_l1_1_0.dll_fclose]
mov eax, dword [0x55b690]
add esp, 4
test eax, eax
je 0x47c9c7
dec dword [eax + 0xb0]
push dword [0x55b698]
mov eax, dword [ebp + 0x10]
push eax
call dword [0x550194]
add esp, 8
xor eax, eax
pop ebx
pop edi
pop esi
pop ebp
ret
mov eax, dword [ebp + 0x14]
test eax, eax
jle 0x47c9f9
push eax
mov eax, dword [ebp + 0x10]
add eax, ebx
push 0
push eax
call sub.VCRUNTIME140.dll_memset
add esp, 0xc
push esi
call dword [sym.imp.api_ms_win_crt_stdio_l1_1_0.dll_fclose]
add esp, 4
test edi, edi
je 0x47ca09
mov dword [edi], ebx
mov eax, dword [ebp + 0x10]
pop ebx
pop edi
pop esi
pop ebp
ret
push esi
call dword [sym.imp.api_ms_win_crt_stdio_l1_1_0.dll_fclose]
add esp, 4
xor eax, eax
pop ebx
pop edi
pop esi
pop ebp
ret