joyce8/EMBER2024-capa huggingface dataset:
Function at 0x41a18c
Capabilities:
Check if file exists
Get file attributes
Set file attributes

Disassembly:
push dword [esp + 4]
call dword [sym.imp.KERNEL32.dll_GetFileAttributesA]
cmp eax, 0xffffffff
je 0x41a1b7
test byte [esp + 8], 0x80
je 0x41a1a6
and al, 0xfe
jmp 0x41a1a8
or al, 1
push eax
push dword [esp + 8]
call dword [sym.imp.KERNEL32.dll_SetFileAttributesA]
test eax, eax
jne 0x41a1c8
call dword [sym.imp.KERNEL32.dll_GetLastError]
push eax
call fcn.0041ba7a
pop ecx
or eax, 0xffffffff
ret
xor eax, eax
ret

Function at 0x41a2cd
Capabilities:
Check if file exists
Get file attributes

Disassembly:
push dword [esp + 4]
call dword [sym.imp.KERNEL32.dll_GetFileAttributesA]
cmp eax, 0xffffffff
jne 0x41a2ed
call dword [sym.imp.KERNEL32.dll_GetLastError]
push eax
call fcn.0041ba7a
pop ecx
or eax, 0xffffffff
ret
test al, 1
je 0x41a30e
test byte [esp + 8], 2
je 0x41a30e
mov dword [0x42ae6c], 0xd
mov dword [0x42ae70], 5
jmp 0x41a2e9
xor eax, eax
ret

Function at 0x41f089
Capabilities:
Write file on windows

Disassembly:
push ebp
mov ebp, esp
sub esp, 0x1a4
mov edx, dword [ebp + 8]
xor ecx, ecx
mov eax, 0x42a4c0
cmp edx, dword [eax]
je 0x41f0ab
add eax, 8
inc ecx
cmp eax, 0x42a550
jl 0x41f09c
push esi
mov esi, ecx
shl esi, 3
cmp edx, dword [esi + 0x42a4c0]
jne 0x41f1d9
mov eax, dword [0x42aec8]
cmp eax, 1
je 0x41f1b3
test eax, eax
jne 0x41f0dc
cmp dword [0x427f38], 1
je 0x41f1b3
cmp edx, 0xfc
je 0x41f1d9
lea eax, [ebp - 0x1a4]
push 0x104
push eax
push 0
call dword [sym.imp.KERNEL32.dll_GetModuleFileNameA]
test eax, eax
jne 0x41f113
lea eax, [ebp - 0x1a4]
push str._program_name_unknown_
push eax
call fcn.0041dce0
pop ecx
pop ecx
lea eax, [ebp - 0x1a4]
push edi
push eax
lea edi, [ebp - 0x1a4]
call fcn.0041dc60
inc eax
pop ecx
cmp eax, 0x3c
jbe 0x41f156
lea eax, [ebp - 0x1a4]
push eax
call fcn.0041dc60
mov edi, eax
lea eax, [ebp - 0x1a4]
sub eax, 0x3b
push 3
add edi, eax
push 0x425934
push edi
call fcn.0041a8f0
add esp, 0x10
lea eax, [ebp - 0xa0]
push str.Runtime_Error__n_nProgram:
push eax
call fcn.0041dce0
lea eax, [ebp - 0xa0]
push edi
push eax
call fcn.0041dcf0
lea eax, [ebp - 0xa0]
push 0x422b74
push eax
call fcn.0041dcf0
push dword [esi + 0x42a4c4]
lea eax, [ebp - 0xa0]
push eax
call fcn.0041dcf0
push 0x12010
lea eax, [ebp - 0xa0]
push str.Microsoft_Visual_C_Runtime_Library
push eax
call fcn.004206a5
add esp, 0x2c
pop edi
jmp 0x41f1d9
lea eax, [ebp + 8]
lea esi, [esi + 0x42a4c4]
push 0
push eax
push dword [esi]
call fcn.0041dc60
pop ecx
push eax
push dword [esi]
push 0xfffffffffffffff4
call dword [sym.imp.KERNEL32.dll_GetStdHandle]
push eax
call dword [sym.imp.KERNEL32.dll_WriteFile]
pop esi
leave
ret
Function at 0x1244f80
Capabilities:
Hash data using djb2

Disassembly:
push ebp
push ebx
push edi
push esi
sub esp, 0xc
xor eax, eax
cmp dword [esp + 0x20], 0
je 0x1245060
mov ebx, dword [esp + 0x24]
test ebx, ebx
je 0x1245060
mov ebp, dword [esp + 0x28]
test ebp, ebp
je 0x1244fca
mov ecx, 0x1505
xor edi, edi
nop
movzx edx, byte [ebx + edi]
test edx, edx
je 0x1244fd1
mov esi, ecx
shl esi, 5
add esi, ecx
add esi, edx
inc edi
mov ecx, esi
cmp ebp, edi
jne 0x1244fb0
jmp 0x1244fd3
mov esi, 0x1505
jmp 0x1244fd3
mov esi, ecx
mov ecx, dword [esp + 0x20]
mov ebx, dword [ecx + 0x20]
lea edi, [ebx - 1]
mov edx, ebx
sub edx, 1
mov dword [esp + 8], edx
jb 0x1245060
and edi, esi
mov eax, dword [ecx + 4]
mov dword [esp + 4], eax
jmp 0x1245004
inc edi
dec ebx
je 0x124505e
mov eax, edi
and eax, dword [esp + 8]
mov edx, dword [esp + 4]
mov ebp, dword [edx + eax*4]
cmp ebp, 0xffffffff
je 0x124505e
mov eax, dword [ecx + 8]
cmp dword [eax + ebp*4], esi
jne 0x1245000
mov eax, dword [ecx + 0xc]
mov eax, dword [eax + ebp*4]
mov dword [esp], eax
push eax
call fcn.0124d970
mov ecx, dword [esp + 0x24]
add esp, 4
cmp eax, dword [esp + 0x28]
jne 0x1245000
push dword [esp + 0x28]
push dword [esp + 4]
push dword [esp + 0x2c]
call fcn.0124d9a0
mov ecx, dword [esp + 0x2c]
add esp, 0xc
test eax, eax
jne 0x1245000
mov eax, dword [ecx + 0x10]
mov eax, dword [eax + ebp*4]
jmp 0x1245060
xor eax, eax
add esp, 0xc
pop esi
pop edi
pop ebx
pop ebp
ret

Function at 0x1245070
Capabilities:
Hash data using djb2

Disassembly:
push ebp
push ebx
push edi
push esi
sub esp, 0x10
xor edi, edi
cmp dword [esp + 0x24], 0
je 0x1245171
mov ebx, dword [esp + 0x28]
test ebx, ebx
je 0x1245171
push ebx
call fcn.0124d970
add esp, 4
test eax, eax
je 0x12450ca
mov ecx, 0x1505
xor ebp, ebp
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
movzx edx, byte [ebx + ebp]
test edx, edx
je 0x12450d1
mov esi, ecx
shl esi, 5
add esi, ecx
add esi, edx
inc ebp
mov ecx, esi
cmp eax, ebp
jne 0x12450b0
jmp 0x12450d3
mov esi, 0x1505
jmp 0x12450d3
mov esi, ecx
mov dword [esp], eax
mov ecx, dword [esp + 0x24]
mov ebx, dword [ecx + 0x20]
lea ebp, [ebx - 1]
mov eax, ebx
sub eax, 1
mov dword [esp + 0xc], eax
jb 0x1245171
and ebp, esi
mov eax, dword [ecx + 4]
mov dword [esp + 8], eax
jmp 0x1245104
inc ebp
dec ebx
je 0x124516f
mov eax, ebp
and eax, dword [esp + 0xc]
mov edx, dword [esp + 8]
mov edi, dword [edx + eax*4]
cmp edi, 0xffffffff
je 0x124516f
mov eax, dword [ecx + 8]
cmp dword [eax + edi*4], esi
jne 0x1245100
mov eax, dword [ecx + 0xc]
mov eax, dword [eax + edi*4]
mov dword [esp + 4], eax
push eax
call fcn.0124d970
mov ecx, dword [esp + 0x28]
add esp, 4
cmp eax, dword [esp]
jne 0x1245100
push dword [esp]
push dword [esp + 8]
push dword [esp + 0x30]
call fcn.0124d9a0
mov ecx, dword [esp + 0x30]
add esp, 0xc
test eax, eax
jne 0x1245100
mov eax, dword [ecx + 0x10]
mov eax, dword [eax + edi*4]
test eax, eax
je 0x124516f
cmp dword [eax + 4], 2
mov edi, 0
jne 0x1245171
mov edi, dword [eax + 8]
jmp 0x1245171
xor edi, edi
mov eax, edi
add esp, 0x10
pop esi
pop edi
pop ebx
pop ebp
ret
Function at 0x12451a0
Capabilities:
Hash data using djb2

Disassembly:
push ebp
push ebx
push edi
push esi
sub esp, 0x18
fldz
fstp qword [esp + 0x10]
cmp dword [esp + 0x2c], 0
je 0x124520b
mov esi, dword [esp + 0x30]
test esi, esi
je 0x124520b
push esi
call fcn.0124d970
add esp, 4
test eax, eax
je 0x12451ea
mov ecx, 0x1505
xor edi, edi
movzx edx, byte [esi + edi]
test edx, edx
je 0x12451f1
mov ebp, ecx
shl ebp, 5
add ebp, ecx
add ebp, edx
inc edi
mov ecx, ebp
cmp eax, edi
jne 0x12451d0
jmp 0x12451f3
mov ebp, 0x1505
jmp 0x12451f3
mov ebp, ecx
mov dword [esp], eax
mov ecx, dword [esp + 0x2c]
mov edi, dword [ecx + 0x20]
lea ebx, [edi - 1]
mov eax, edi
sub eax, 1
mov dword [esp + 0xc], eax
jae 0x1245217
fld qword [esp + 0x10]
add esp, 0x18
pop esi
pop edi
pop ebx
pop ebp
ret
and ebx, ebp
mov eax, dword [ecx + 4]
mov dword [esp + 8], eax
jmp 0x1245234
inc ebx
dec edi
je 0x124520b
mov eax, ebx
and eax, dword [esp + 0xc]
mov edx, dword [esp + 8]
mov esi, dword [edx + eax*4]
cmp esi, 0xffffffff
je 0x124520b
mov eax, dword [ecx + 8]
cmp dword [eax + esi*4], ebp
jne 0x1245230
mov eax, dword [ecx + 0xc]
mov eax, dword [eax + esi*4]
mov dword [esp + 4], eax
push eax
call fcn.0124d970
mov ecx, dword [esp + 0x30]
add esp, 4
cmp eax, dword [esp]
jne 0x1245230
push dword [esp]
push dword [esp + 8]
push dword [esp + 0x38]
call fcn.0124d9a0
mov ecx, dword [esp + 0x38]
add esp, 0xc
test eax, eax
jne 0x1245230
mov eax, dword [ecx + 0x10]
mov eax, dword [eax + esi*4]
test eax, eax
je 0x124520b
cmp dword [eax + 4], 3
jne 0x124520b
fld qword [eax + 8]
fstp qword [esp + 0x10]
jmp 0x124520b
Function at 0x12452d0
Capabilities:
Hash data using djb2

Disassembly:
push ebp
push ebx
push edi
push esi
sub esp, 0x10
xor edi, edi
cmp dword [esp + 0x24], 0
je 0x12453d1
mov ebx, dword [esp + 0x28]
test ebx, ebx
je 0x12453d1
push ebx
call fcn.0124d970
add esp, 4
test eax, eax
je 0x124532a
mov ecx, 0x1505
xor ebp, ebp
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
movzx edx, byte [ebx + ebp]
test edx, edx
je 0x1245331
mov esi, ecx
shl esi, 5
add esi, ecx
add esi, edx
inc ebp
mov ecx, esi
cmp eax, ebp
jne 0x1245310
jmp 0x1245333
mov esi, 0x1505
jmp 0x1245333
mov esi, ecx
mov dword [esp], eax
mov ecx, dword [esp + 0x24]
mov ebx, dword [ecx + 0x20]
lea ebp, [ebx - 1]
mov eax, ebx
sub eax, 1
mov dword [esp + 0xc], eax
jb 0x12453d1
and ebp, esi
mov eax, dword [ecx + 4]
mov dword [esp + 8], eax
jmp 0x1245364
inc ebp
dec ebx
je 0x12453cf
mov eax, ebp
and eax, dword [esp + 0xc]
mov edx, dword [esp + 8]
mov edi, dword [edx + eax*4]
cmp edi, 0xffffffff
je 0x12453cf
mov eax, dword [ecx + 8]
cmp dword [eax + edi*4], esi
jne 0x1245360
mov eax, dword [ecx + 0xc]
mov eax, dword [eax + edi*4]
mov dword [esp + 4], eax
push eax
call fcn.0124d970
mov ecx, dword [esp + 0x28]
add esp, 4
cmp eax, dword [esp]
jne 0x1245360
push dword [esp]
push dword [esp + 8]
push dword [esp + 0x30]
call fcn.0124d9a0
mov ecx, dword [esp + 0x30]
add esp, 0xc
test eax, eax
jne 0x1245360
mov eax, dword [ecx + 0x10]
mov eax, dword [eax + edi*4]
test eax, eax
je 0x12453cf
cmp dword [eax + 4], 5
mov edi, 0
jne 0x12453d1
mov edi, dword [eax + 8]
jmp 0x12453d1
xor edi, edi
mov eax, edi
add esp, 0x10
pop esi
pop edi
pop ebx
pop ebp
ret
Function at 0x1245400
Capabilities:
Hash data using djb2

Disassembly:
push ebp
push ebx
push edi
push esi
sub esp, 0x10
mov edi, 0xffffffff
cmp dword [esp + 0x24], 0
je 0x1245504
mov ebx, dword [esp + 0x28]
test ebx, ebx
je 0x1245504
push ebx
call fcn.0124d970
add esp, 4
test eax, eax
je 0x124545a
mov ecx, 0x1505
xor ebp, ebp
nop
nop
nop
nop
nop
nop
nop
nop
nop
movzx edx, byte [ebx + ebp]
test edx, edx
je 0x1245461
mov esi, ecx
shl esi, 5
add esi, ecx
add esi, edx
inc ebp
mov ecx, esi
cmp eax, ebp
jne 0x1245440
jmp 0x1245463
mov esi, 0x1505
jmp 0x1245463
mov esi, ecx
mov dword [esp], eax
mov ecx, dword [esp + 0x24]
mov ebx, dword [ecx + 0x20]
lea ebp, [ebx - 1]
mov eax, ebx
sub eax, 1
mov dword [esp + 0xc], eax
jb 0x1245504
and ebp, esi
mov eax, dword [ecx + 4]
mov dword [esp + 8], eax
jmp 0x1245494
inc ebp
dec ebx
je 0x12454ff
mov eax, ebp
and eax, dword [esp + 0xc]
mov edx, dword [esp + 8]
mov edi, dword [edx + eax*4]
cmp edi, 0xffffffff
je 0x12454ff
mov eax, dword [ecx + 8]
cmp dword [eax + edi*4], esi
jne 0x1245490
mov eax, dword [ecx + 0xc]
mov eax, dword [eax + edi*4]
mov dword [esp + 4], eax
push eax
call fcn.0124d970
mov ecx, dword [esp + 0x28]
add esp, 4
cmp eax, dword [esp]
jne 0x1245490
push dword [esp]
push dword [esp + 8]
push dword [esp + 0x30]
call fcn.0124d9a0
mov ecx, dword [esp + 0x30]
add esp, 0xc
test eax, eax
jne 0x1245490
mov eax, dword [ecx + 0x10]
mov eax, dword [eax + edi*4]
test eax, eax
je 0x12454ff
cmp dword [eax + 4], 6
mov edi, 0xffffffff
jne 0x1245504
mov edi, dword [eax + 8]
jmp 0x1245504
mov edi, 0xffffffff
mov eax, edi
add esp, 0x10
pop esi
pop edi
pop ebx
pop ebp
ret
Function at 0x1245510
Capabilities:
Hash data using djb2

Disassembly:
push ebp
push ebx
push edi
push esi
sub esp, 0x18
mov ebp, dword [esp + 0x30]
mov edi, dword [esp + 0x2c]
push 0x2e
push ebp
call fcn.0124d9f0
add esp, 8
test eax, eax
je 0x1245574
mov esi, eax
jmp 0x1245554
mov ebp, esi
inc ebp
push 0x2e
push ebp
call fcn.0124d9f0
add esp, 8
mov esi, eax
test eax, eax
je 0x1245574
mov eax, esi
sub eax, ebp
push eax
push ebp
push edi
call fcn.01244f80
add esp, 0xc
xor edi, edi
test eax, eax
je 0x1245540
cmp dword [eax + 4], 4
jne 0x1245540
mov edi, dword [eax + 8]
jmp 0x1245540
xor eax, eax
test edi, edi
je 0x12455db
test ebp, ebp
je 0x12455db
push ebp
call fcn.0124d970
add esp, 4
test eax, eax
je 0x12455bb
mov ecx, 0x1505
xor ebx, ebx
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
movzx edx, byte [ebp + ebx]
test edx, edx
je 0x12455c2
mov esi, ecx
shl esi, 5
add esi, ecx
add esi, edx
inc ebx
mov ecx, esi
cmp eax, ebx
jne 0x12455a0
jmp 0x12455c4
mov esi, 0x1505
jmp 0x12455c4
mov esi, ecx
mov dword [esp + 4], eax
mov ecx, dword [edi + 0x20]
lea ebx, [ecx - 1]
mov eax, ecx
sub eax, 1
mov dword [esp + 0x14], eax
jae 0x12455e3
xor eax, eax
add esp, 0x18
pop esi
pop edi
pop ebx
pop ebp
ret
and ebx, esi
mov dword [esp], edi
mov eax, dword [edi + 4]
mov dword [esp + 0x10], eax
jmp 0x1245604
inc ebx
dec ecx
je 0x12455d9
mov eax, ebx
and eax, dword [esp + 0x14]
mov edx, dword [esp + 0x10]
mov edi, dword [edx + eax*4]
cmp edi, 0xffffffff
je 0x12455d9
mov eax, dword [esp]
mov eax, dword [eax + 8]
cmp dword [eax + edi*4], esi
jne 0x1245600
mov eax, dword [esp]
mov eax, dword [eax + 0xc]
mov eax, dword [eax + edi*4]
mov dword [esp + 0xc], eax
push eax
mov dword [esp + 0xc], ecx
call fcn.0124d970
mov ecx, dword [esp + 0xc]
add esp, 4
cmp eax, dword [esp + 4]
jne 0x1245600
push dword [esp + 4]
push dword [esp + 0x10]
push ebp
call fcn.0124d9a0
mov ecx, dword [esp + 0x14]
add esp, 0xc
test eax, eax
jne 0x1245600
mov eax, dword [esp]
mov eax, dword [eax + 0x10]
mov eax, dword [eax + edi*4]
jmp 0x12455db
Function at 0x1245700
Capabilities:
Hash data using djb2

Disassembly:
push ebp
push ebx
push edi
push esi
sub esp, 0x10
xor eax, eax
cmp dword [esp + 0x24], 0
je 0x124576d
mov esi, dword [esp + 0x28]
test esi, esi
je 0x124576d
push esi
call fcn.0124d970
add esp, 4
test eax, eax
je 0x124574a
mov ecx, 0x1505
xor edi, edi
nop
nop
nop
nop
movzx edx, byte [esi + edi]
test edx, edx
je 0x1245751
mov ebx, ecx
shl ebx, 5
add ebx, ecx
add ebx, edx
inc edi
mov ecx, ebx
cmp eax, edi
jne 0x1245730
jmp 0x1245753
mov ebx, 0x1505
jmp 0x1245753
mov ebx, ecx
mov dword [esp], eax
mov ecx, dword [esp + 0x24]
mov edi, dword [ecx + 0x20]
lea ebp, [edi - 1]
mov eax, edi
sub eax, 1
mov dword [esp + 0xc], eax
jae 0x1245775
xor eax, eax
add esp, 0x10
pop esi
pop edi
pop ebx
pop ebp
ret
and ebp, ebx
mov eax, dword [ecx + 4]
mov dword [esp + 8], eax
jmp 0x1245784
inc ebp
dec edi
je 0x124576b
mov eax, ebp
and eax, dword [esp + 0xc]
mov edx, dword [esp + 8]
mov esi, dword [edx + eax*4]
cmp esi, 0xffffffff
je 0x124576b
mov eax, dword [ecx + 8]
cmp dword [eax + esi*4], ebx
jne 0x1245780
mov eax, dword [ecx + 0xc]
mov eax, dword [eax + esi*4]
mov dword [esp + 4], eax
push eax
call fcn.0124d970
mov ecx, dword [esp + 0x28]
add esp, 4
cmp eax, dword [esp]
jne 0x1245780
push dword [esp]
push dword [esp + 8]
push dword [esp + 0x30]
call fcn.0124d9a0
mov ecx, dword [esp + 0x30]
add esp, 0xc
test eax, eax
jne 0x1245780
mov eax, dword [ecx + 0x10]
mov ecx, dword [eax + esi*4]
test ecx, ecx
mov eax, 0
je 0x124576d
xor eax, eax
mov edx, dword [esp + 0x2c]
cmp dword [ecx + 4], edx
sete al
jmp 0x124576d
Function at 0x1245a90
Capabilities:
Encrypt data using rc4 prga

Disassembly:
push ebp
push ebx
push edi
push esi
push eax
xor eax, eax
cmp dword [esp + 0x18], 0
je 0x1245cab
cmp dword [esp + 0x1c], 0
jle 0x1245c52
mov eax, dword [esp + 0x1c]
mov edx, dword [esp + 0x18]
lea ecx, [edx + eax]
mov dword [esp], ecx
jmp 0x1245ae8
cmp esi, 0xc0
jne 0x1245ca9
and ebx, 0x1ff800
cmp ebx, 0xd800
mov ecx, dword [esp]
je 0x1245ca9
add edx, ebp
cmp edx, ecx
jae 0x1245c52
movzx ebx, byte [edx]
cmp ebx, 0xf4
ja 0x1245ca9
mov eax, ebx
and al, 0xfe
cmp al, 0xc0
je 0x1245ca9
mov eax, ebx
not eax
or eax, 0xc0
add eax, ebx
cmp eax, 0x7f
je 0x1245ca9
mov ebp, 1
test bl, bl
jns 0x1245ade
mov esi, ebx
and esi, 0xffffffe0
cmp esi, 0xc0
jne 0x1245b4e
movzx edi, byte [edx + 1]
mov eax, edi
and eax, 0xffffffc0
cmp eax, 0x80
jne 0x1245ca9
and ebx, 0x1f
shl ebx, 6
mov ebp, 2
jmp 0x1245b97
mov eax, ebx
and eax, 0xfffffff0
cmp eax, 0xe0
jne 0x1245b9b
movzx eax, byte [edx + 1]
mov ecx, eax
and ecx, 0xffffffc0
cmp ecx, 0x80
jne 0x1245ca9
movzx edi, byte [edx + 2]
mov ecx, edi
and ecx, 0xffffffc0
cmp ecx, 0x80
jne 0x1245ca9
and ebx, 0xf
shl ebx, 0xc
and eax, 0x3f
shl eax, 6
or ebx, eax
mov ebp, 3
xor ecx, ecx
jmp 0x1245c15
mov eax, ebx
and eax, 0xfffffff8
cmp eax, 0xf0
jne 0x1245ca9
movzx ecx, byte [edx + 1]
mov eax, ecx
and eax, 0xffffffc0
cmp eax, 0x80
jne 0x1245ca9
movzx eax, byte [edx + 2]
mov edi, eax
xor edi, 0xffffff3f
mov ebp, eax
or ebp, 0xc0
and ebp, edi
cmp ebp, 0x80
jne 0x1245ca9
movzx edi, byte [edx + 3]
mov ebp, edi
and ebp, 0xffffffc0
cmp ebp, 0x80
jne 0x1245ca9
and ebx, 7
shl ebx, 0xc
and ecx, 0x3f
shl ecx, 6
or ecx, ebx
and eax, 0x3f
or eax, ecx
shl eax, 6
mov cl, 1
mov ebp, 4
mov ebx, eax
and edi, 0x3f
or edi, ebx
cmp edi, 0x80
jb 0x1245ca9
cmp edi, 0x7ff
jbe 0x1245abd
cmp edi, 0xffff
ja 0x1245c44
test cl, cl
je 0x1245ac9
jmp 0x1245ca9
cmp edi, 0x10ffff
jbe 0x1245ac9
jmp 0x1245ca9
mov edi, dword [esp + 0x1c]
lea eax, [edi + 1]
push eax
call dword [0x1290008]
add esp, 4
test eax, eax
je 0x1245ca9
mov esi, eax
mov byte [eax + edi], 0
push edi
push dword [esp + 0x1c]
push eax
call fcn.0124d750
add esp, 0xc
push 0x10
call dword [0x1290008]
add esp, 4
test eax, eax
je 0x1245c9f
mov dword [eax], 0
mov dword [eax + 4], 2
mov dword [eax + 8], esi
mov dword [eax + 0xc], edi
jmp 0x1245cab
push esi
call dword [0x1290004]
add esp, 4
xor eax, eax
add esp, 4
pop esi
pop edi
pop ebx
pop ebp
ret
Function at 0x1245cc0
Capabilities:
Hash data using djb2

Disassembly:
push ebp
push ebx
push edi
push esi
sub esp, 0x10
mov eax, 0xffffffff
cmp dword [esp + 0x24], 0
je 0x1245dd2
mov esi, dword [esp + 0x28]
test esi, esi
je 0x1245dd2
cmp dword [esp + 0x2c], 0
je 0x1245dd2
push esi
call fcn.0124d970
add esp, 4
test eax, eax
je 0x1245d2a
mov ecx, 0x1505
xor edi, edi
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
movzx edx, byte [esi + edi]
test edx, edx
je 0x1245d31
mov ebx, ecx
shl ebx, 5
add ebx, ecx
add ebx, edx
inc edi
mov ecx, ebx
cmp eax, edi
jne 0x1245d10
jmp 0x1245d33
mov ebx, 0x1505
jmp 0x1245d33
mov ebx, ecx
mov ecx, dword [esp + 0x24]
mov esi, dword [ecx + 0x20]
lea edi, [esi - 1]
mov edx, esi
sub edx, 1
mov dword [esp + 8], edx
jae 0x1245dda
mov ebp, 0xffffffff
mov eax, dword [ecx + 0x18]
cmp eax, dword [ecx + 0x1c]
jb 0x1245d97
call fcn.01246a60
mov ecx, eax
mov eax, 0xffffffff
test ecx, ecx
mov ecx, dword [esp + 0x28]
jne 0x1245dd2
push ecx
call fcn.0124d970
add esp, 4
mov dword [esp], eax
mov ecx, dword [esp + 0x24]
mov esi, dword [ecx + 0x20]
lea edi, [esi - 1]
mov eax, esi
sub eax, 1
mov dword [esp + 8], eax
jae 0x1245e4d
mov ebp, 0xffffffff
mov eax, dword [ecx + 0xc]
mov edx, dword [ecx + 0x18]
mov esi, dword [esp + 0x28]
mov dword [eax + edx*4], esi
mov eax, dword [ecx + 4]
mov edx, dword [ecx + 0x18]
mov dword [eax + ebp*4], edx
mov eax, dword [ecx + 0x10]
mov esi, dword [esp + 0x2c]
mov dword [eax + edx*4], esi
mov eax, dword [ecx + 0x14]
mov edx, dword [ecx + 0x18]
mov dword [eax + edx*4], ebp
mov eax, dword [ecx + 8]
mov edx, dword [ecx + 0x18]
mov dword [eax + edx*4], ebx
inc dword [ecx + 0x18]
mov eax, dword [ecx]
mov dword [esi], eax
xor eax, eax
add esp, 0x10
pop esi
pop edi
pop ebx
pop ebp
ret
mov dword [esp], eax
and edi, ebx
mov eax, dword [ecx + 4]
mov dword [esp + 4], eax
jmp 0x1245df8
inc edi
dec esi
je 0x1245d4c
mov ebp, edi
and ebp, dword [esp + 8]
mov eax, dword [esp + 4]
mov eax, dword [eax + ebp*4]
cmp eax, 0xffffffff
je 0x1245d51
mov edx, dword [ecx + 8]
cmp dword [edx + eax*4], ebx
jne 0x1245df0
mov ecx, dword [ecx + 0xc]
mov ebp, dword [ecx + eax*4]
push ebp
call fcn.0124d970
mov ecx, dword [esp + 0x28]
add esp, 4
cmp eax, dword [esp]
jne 0x1245df0
push dword [esp]
push ebp
push dword [esp + 0x30]
call fcn.0124d9a0
mov ecx, dword [esp + 0x30]
add esp, 0xc
test eax, eax
jne 0x1245df0
mov eax, 0xffffffff
jmp 0x1245dd2
and edi, ebx
mov eax, dword [ecx + 4]
mov dword [esp + 4], eax
jmp 0x1245e68
inc edi
dec esi
je 0x1245d92
mov ebp, edi
and ebp, dword [esp + 8]
mov eax, dword [esp + 4]
mov eax, dword [eax + ebp*4]
cmp eax, 0xffffffff
je 0x1245d97
mov edx, dword [ecx + 8]
cmp dword [edx + eax*4], ebx
jne 0x1245e60
mov ecx, dword [ecx + 0xc]
mov eax, dword [ecx + eax*4]
mov dword [esp + 0xc], eax
push eax
call fcn.0124d970
mov ecx, dword [esp + 0x28]
add esp, 4
cmp eax, dword [esp]
jne 0x1245e60
push dword [esp]
push dword [esp + 0x10]
push dword [esp + 0x30]
call fcn.0124d9a0
mov ecx, dword [esp + 0x30]
add esp, 0xc
test eax, eax
jne 0x1245e60
jmp 0x1245d97
Function at 0x12467b0
Capabilities:
Hash data using djb2

Disassembly:
push ebp
push ebx
push edi
push esi
sub esp, 0x14
mov eax, 0xffffffff
cmp dword [esp + 0x28], 0
je 0x124699a
mov esi, dword [esp + 0x2c]
test esi, esi
je 0x124699a
mov ecx, dword [esp + 0x30]
test ecx, ecx
je 0x124699a
cmp dword [ecx], 0
jne 0x124699a
push esi
call fcn.0124d970
add esp, 4
test eax, eax
je 0x124681a
mov ecx, 0x1505
xor ebx, ebx
nop
nop
nop
nop
movzx edx, byte [esi + ebx]
test edx, edx
je 0x1246821
mov edi, ecx
shl edi, 5
add edi, ecx
add edi, edx
inc ebx
mov ecx, edi
cmp eax, ebx
jne 0x1246800
jmp 0x1246823
mov edi, 0x1505
jmp 0x1246823
mov edi, ecx
mov ecx, dword [esp + 0x28]
mov edx, dword [ecx + 0x20]
lea ebx, [edx - 1]
mov esi, edx
sub esi, 1
mov dword [esp + 0xc], esi
jae 0x12468f4
mov ebp, 0xffffffff
mov eax, dword [ecx + 0x18]
cmp eax, dword [ecx + 0x1c]
jb 0x1246881
call fcn.01246a60
mov ecx, eax
mov eax, 0xffffffff
test ecx, ecx
mov esi, dword [esp + 0x2c]
jne 0x124699a
push esi
call fcn.0124d970
add esp, 4
mov edx, esi
lea esi, [esp + 0x10]
mov ecx, dword [esp + 0x28]
push esi
push edi
push eax
call fcn.012469b0
add esp, 0xc
mov ebp, eax
mov esi, dword [esp + 0x2c]
push esi
call fcn.0124d970
add esp, 4
mov ebx, eax
inc eax
push eax
call dword [0x1290008]
add esp, 4
test eax, eax
je 0x1246995
mov byte [eax + ebx], 0
push ebx
push esi
push eax
mov esi, eax
call fcn.0124d750
add esp, 0xc
mov edx, dword [esp + 0x28]
mov eax, dword [edx + 0xc]
mov ecx, dword [edx + 0x18]
mov dword [eax + ecx*4], esi
mov eax, dword [edx + 4]
mov ecx, dword [edx + 0x18]
mov dword [eax + ebp*4], ecx
mov eax, dword [edx + 0x10]
mov esi, dword [esp + 0x30]
mov dword [eax + ecx*4], esi
mov eax, dword [edx + 0x14]
mov ecx, dword [edx + 0x18]
mov dword [eax + ecx*4], ebp
mov eax, dword [edx + 8]
mov ecx, dword [edx + 0x18]
mov dword [eax + ecx*4], edi
inc dword [edx + 0x18]
mov eax, dword [edx]
mov dword [esi], eax
xor eax, eax
jmp 0x124699a
mov dword [esp], eax
and ebx, edi
mov eax, dword [ecx + 4]
mov dword [esp + 8], eax
jmp 0x1246918
inc ebx
dec edx
je 0x124683c
mov ebp, ebx
and ebp, dword [esp + 0xc]
mov eax, dword [esp + 8]
mov esi, dword [eax + ebp*4]
cmp esi, 0xffffffff
je 0x1246841
mov eax, dword [ecx + 8]
cmp dword [eax + esi*4], edi
jne 0x1246910
mov eax, dword [ecx + 0xc]
mov ebp, dword [eax + esi*4]
push ebp
mov dword [esp + 8], edx
call fcn.0124d970
mov edx, dword [esp + 8]
mov ecx, dword [esp + 0x2c]
add esp, 4
cmp eax, dword [esp]
jne 0x1246910
push dword [esp]
push ebp
push dword [esp + 0x34]
call fcn.0124d9a0
mov edx, dword [esp + 0x10]
mov ecx, dword [esp + 0x34]
add esp, 0xc
test eax, eax
jne 0x1246910
mov eax, dword [ecx + 0x10]
push dword [eax + esi*4]
call fcn.01245860
mov edx, dword [esp + 0x2c]
add esp, 4
mov eax, dword [edx + 0x10]
mov ecx, dword [esp + 0x30]
mov dword [eax + esi*4], ecx
mov esi, ecx
jmp 0x12468e9
mov eax, 0xffffffff
add esp, 0x14
pop esi
pop edi
pop ebx
pop ebp
ret