Function at 0x43b455
Capabilities:
Encode data using xor
Hash data using fnv

Disassembly:
push ebp
mov ebp, esp
push ebx
push edi
push esi
and esp, 0xfffffff8
sub esp, 0x30
mov esi, esp
push eax
sub esp, 0xc
mov ecx, esp
and ecx, 0xfffffff8
mov esp, ecx
push eax
mov dword [esi + 0xc], esp
sub esp, 0x10
mov eax, esp
and eax, 0xfffffff8
mov esp, eax
mov edx, dword [ebp + 8]
movzx edx, word [edx]
mov dword [esi + 4], edx
mov dword [ecx], 0x4b4aab99
mov dword [ecx + 4], 0
mov dword [ecx + 8], 0
mov dword [ecx + 0xb], 0
mov dword [esi], 0
mov ebx, dword [esi]
cmp ebx, 0xe
ja 0x43b353
nop
nop
nop
nop
nop
nop
nop
nop
mov ebx, dword [esi]
mov edi, dword [esi]
movzx edi, byte [ecx + edi]
lea edx, [ebx + 0x75b58d8a]
and edx, edi
add edi, ebx
add edi, 0x75b58d8a
add edx, edx
sub edi, edx
mov dword [esi + 8], edi
mov edx, dword [esi + 8]
add dl, 0x3a
mov edi, dword [esi]
mov byte [ecx + edi], dl
inc dword [esi]
mov edx, dword [esi]
cmp edx, 0xf
jb 0x43b320
xor edx, edx
mov edi, dword [esi + 4]
cmp dword [ecx], edi
setne dl
jmp dword [edx*4 + 0x447508]
mov edi, dword [ebp + 8]
mov ecx, dword [edi + 0x3c]
lea edx, [edi + ecx]
mov ebx, dword [esi + 0xc]
mov dword [ebx], edx
mov ecx, dword [edi + ecx]
mov dword [esi + 4], ecx
mov dword [eax], 0xb3b27400
mov dword [eax + 4], 0
mov word [eax + 8], 0
jmp dword [0x447514]
mov dword [esi], 0
mov ecx, dword [esi]
cmp ecx, 9
ja case.0x43b35d.3
nop
nop
mov edx, dword [esi]
mov ecx, dword [esi]
movzx edi, byte [eax + ecx]
lea ecx, [edx + 0x6080bd48]
lea ebx, [edx + edi]
add ebx, 0x6080bd48
add edx, 0x48
and edx, edi
and ecx, edi
add ecx, edx
mov edx, ebx
not edx
and edx, ecx
not ecx
and ecx, ebx
sub ecx, edx
mov dword [esi + 8], ecx
mov ecx, dword [esi + 8]
add cl, 8
mov edx, dword [esi]
mov byte [eax + edx], cl
inc dword [esi]
mov ecx, dword [esi]
cmp ecx, 0xa
jb 0x43b3a0
jmp case.0x43b35d.3
jmp dword [0x447518]
mov dword [esi], 0
mov ecx, dword [esi]
cmp ecx, 9
ja 0x43b3f0
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
mov edx, dword [esi]
mov ecx, dword [esi]
movzx edi, byte [eax + ecx]
lea ecx, [edx + 0x6080bd48]
lea ebx, [edx + edi]
add ebx, 0x6080bd48
add edx, 0x48
and edx, edi
and ecx, edi
add ecx, edx
mov edx, ebx
not edx
and edx, ecx
not ecx
and ecx, ebx
sub ecx, edx
mov dword [esi + 8], ecx
mov ecx, dword [esi + 8]
add cl, 8
mov edx, dword [esi]
mov byte [eax + edx], cl
inc dword [esi]
mov ecx, dword [esi]
cmp ecx, 0xa
jb 0x43b410
jmp 0x43b3f0
xor ecx, ecx
mov edx, dword [esi + 4]
cmp edx, dword [eax]
setne cl
xor eax, eax
jmp dword [ecx*4 + 0x447520]
mov ecx, dword [esi + 0xc]
mov ecx, dword [ecx]
mov edi, dword [ecx + 0x7c]
xor edx, edx
test edi, edi
sete dl
jmp dword [edx*4 + 0x447528]
mov edx, dword [ecx + 0x78]
xor ecx, ecx
test edx, edx
sete cl
jmp dword [ecx*4 + 0x447530]
mov dword [esi + 0x14], edi
mov eax, dword [ebp + 8]
mov ecx, dword [eax + edx + 0x20]
add ecx, eax
mov dword [esi + 0xc], ecx
mov ecx, dword [eax + edx + 0x24]
add ecx, eax
mov dword [esi + 0x1c], ecx
mov ecx, dword [eax + edx + 0x1c]
add ecx, eax
mov dword [esi + 0x18], ecx
mov dword [esi + 0x10], edx
mov ecx, dword [eax + edx + 0x18]
xor edx, edx
xor eax, eax
mov dword [esi + 0x24], ecx
cmp edx, ecx
setb al
mov ecx, 1
jmp dword [eax*4 + 0x447538]
mov eax, dword [esi + 0xc]
mov dword [esi + 4], edx
mov edi, dword [eax + edx*4]
add edi, dword [ebp + 8]
mov edx, 1
xor eax, eax
mov ebx, edi
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
dec edx
cmp byte [ebx], 0
mov ecx, eax
lea ebx, [ebx + 1]
lea eax, [eax + 1]
jne 0x43b4f0
test edx, edx
je 0x43b590
mov eax, edx
neg eax
cmp edx, 0xffffffff
je 0x43b5a0
mov dword [esi + 0x20], eax
and ecx, 0xfffffffe
mov edx, 0x506dff3e
nop
nop
movsx eax, byte [edi]
xor eax, edx
mov edx, eax
and edx, 0x1000193
mov ebx, eax
or eax, 0x1000193
imul eax, edx
xor edx, 0x1000193
and ebx, 0xfefffe6c
imul ebx, edx
add eax, ebx
movsx edx, byte [edi + 1]
xor edx, eax
mov eax, edx
and eax, 0x1000193
mov ebx, edx
or edx, 0x1000193
imul edx, eax
xor eax, 0x1000193
and ebx, 0xfefffe6c
imul ebx, eax
add edx, ebx
add edi, 2
add ecx, 0xfffffffe
jne 0x43b520
mov eax, dword [esi + 0x20]
test al, 1
jne 0x43b5a9
jmp 0x43b5d0
mov edx, 0x506dff3e
jmp 0x43b5d0
mov edx, 0x506dff3e
test al, 1
je 0x43b5d0
movsx eax, byte [edi]
xor edx, eax
mov eax, edx
and eax, 0x1000193
mov ecx, edx
or edx, 0x1000193
imul edx, eax
xor eax, 0x1000193
and ecx, 0xfefffe6c
imul ecx, eax
add edx, ecx
xor eax, eax
cmp edx, dword [ebp + 0xc]
setne al
jmp dword [eax*4 + 0x447540]
mov eax, dword [esi + 0x1c]
mov ecx, dword [esi + 4]
movzx eax, word [eax + ecx*2]
mov ecx, dword [esi + 0x18]
mov eax, dword [ecx + eax*4]
xor ecx, ecx
cmp eax, dword [esi + 0x10]
setae cl
jmp dword [ecx*4 + 0x447548]
xor eax, eax
jmp case.0x43b35d.7
jmp dword [ecx*4 + 0x447558]
lea esp, [ebp - 0xc]
pop esi
pop edi
pop ebx
pop ebp
ret