Function at 0x43f860
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, 0xb8
mov esi, ecx
lea eax, [esp + 0x74]
lea ecx, [esp + 0x30]
push 0x5a890b
push eax
push dword [ebp + 8]
call sym.http::header::name::parse_hdr::h302fc5a6ab083168
add esp, 0xc
movzx ebx, byte [esp + 0x38]
cmp bl, 3
je 0x43fc9e
mov eax, dword [esi + 0x28]
test eax, eax
mov dword [esp + 0x24], eax
je 0x43fc9e
mov ecx, dword [esi]
mov eax, dword [esp + 0x30]
mov edx, dword [esp + 0x34]
mov byte [esp + 0xb], bl
xor ecx, 2
mov dword [esp + 0x18], eax
mov dword [esp + 0x14], edx
or ecx, dword [esi + 4]
jne 0x43f942
movdqu xmm0, xmmword [esi + 8]
xor eax, eax
cmp bl, 2
lea ecx, [esp + 0x30]
lea edx, [esp + 0x20]
setne al
mov dword [esp + 0x20], eax
pshufd xmm1, xmm0, 0x44
pshufd xmm2, xmm0, 0xee
pxor xmm1, xmmword [0x5764f0]
pxor xmm2, xmmword [0x576500]
movdqu xmmword [esp + 0x30], xmm1
movdqu xmmword [esp + 0x40], xmm2
movdqu xmmword [esp + 0x50], xmm0
pxor xmm0, xmm0
movq qword [esp + 0x60], xmm0
movq qword [esp + 0x68], xmm0
push 4
call sym.__LT_std..hash..random..DefaultHasher_u20_as_u20_core..hash..Hasher_GT_::write::h6fee52218ffb22b0
add esp, 4
cmp bl, 2
mov dword [esp + 0x1c], esi
jne 0x43f976
movzx eax, byte [esp + 0x18]
lea ecx, [esp + 0x30]
lea edx, [esp + 0x20]
mov dword [esp + 0x20], eax
push 4
jmp 0x43f98b
xor ecx, ecx
cmp bl, 2
mov edx, 0x5635bc91
setne cl
xor ecx, 0x84222325
mov eax, ecx
mul edx
cmp bl, 2
mov edi, eax
jne 0x43fcac
movzx eax, byte [esp + 0x18]
xor edi, eax
imul edi, edi, 0xffffbc91
jmp 0x43fb7c
test bl, 1
je 0x43fd0d
mov edx, dword [esp + 0x18]
lea ecx, [esp + 0x30]
push dword [esp + 0x14]
call sym.__LT_std..hash..random..DefaultHasher_u20_as_u20_core..hash..Hasher_GT_::write::h6fee52218ffb22b0
add esp, 4
mov edx, dword [esp + 0x68]
mov edi, dword [esp + 0x4c]
mov eax, dword [esp + 0x60]
mov ecx, dword [esp + 0x40]
mov esi, dword [esp + 0x44]
mov ebx, dword [esp + 0x38]
shl edx, 0x18
mov dword [esp + 0x2c], eax
or edx, dword [esp + 0x64]
mov dword [esp + 0x28], edx
xor edi, edx
mov edx, dword [esp + 0x48]
xor edx, eax
mov eax, dword [esp + 0x30]
add eax, ecx
mov dword [esp + 4], eax
mov eax, dword [esp + 0x34]
adc eax, esi
add ebx, edx
mov dword [esp], eax
mov eax, dword [esp + 0x3c]
adc eax, edi
mov dword [esp + 0xc], eax
mov eax, ecx
shld eax, esi, 0xd
shld esi, ecx, 0xd
mov ecx, edx
shrd edx, edi, 0x10
shld ecx, edi, 0x10
mov edi, dword [esp]
xor eax, dword [esp + 4]
xor edx, dword [esp + 0xc]
xor ecx, ebx
xor esi, edi
add ebx, eax
adc dword [esp + 0xc], esi
add edi, ecx
mov dword [esp + 0x10], ebx
mov ebx, ecx
adc dword [esp + 4], edx
shld ebx, edx, 0x15
shrd ecx, edx, 0xb
mov dword [esp], edi
mov edi, eax
shrd eax, esi, 0xf
mov edx, dword [esp + 4]
shld edi, esi, 0x11
mov esi, dword [esp]
xor edi, dword [esp + 0x10]
xor ecx, edx
xor edx, dword [esp + 0x28]
xor ebx, esi
xor esi, dword [esp + 0x2c]
mov dword [esp + 4], edx
mov edx, dword [esp + 0xc]
xor eax, edx
xor edx, 0xff
add esi, edi
adc dword [esp + 4], eax
add edx, ebx
mov dword [esp], esi
mov esi, ebx
mov dword [esp + 0xc], edx
mov edx, edi
adc dword [esp + 0x10], ecx
shrd edi, eax, 0x13
shld esi, ecx, 0x10
shrd ebx, ecx, 0x10
shld edx, eax, 0xd
mov ecx, dword [esp + 0x10]
mov eax, dword [esp + 0xc]
xor edi, dword [esp + 4]
xor edx, dword [esp]
xor ebx, ecx
xor esi, eax
add eax, edx
adc ecx, edi
add dword [esp + 4], esi
mov dword [esp + 0xc], eax
mov eax, esi
mov dword [esp + 0x10], ecx
mov ecx, edx
adc dword [esp], ebx
shld ecx, edi, 0x11
shrd edx, edi, 0xf
shld eax, ebx, 0x15
shrd esi, ebx, 0xb
mov edi, dword [esp + 4]
mov ebx, dword [esp]
xor ecx, dword [esp + 0xc]
xor edx, dword [esp + 0x10]
xor eax, edi
xor esi, ebx
add edi, ecx
adc ebx, edx
mov dword [esp + 4], edi
add dword [esp + 0x10], eax
mov edi, dword [esp + 0xc]
mov dword [esp], ebx
mov ebx, ecx
adc edi, esi
shld ebx, edx, 0xd
shrd ecx, edx, 0x13
mov edx, eax
shrd eax, esi, 0x10
shld edx, esi, 0x10
mov esi, dword [esp + 0x10]
xor ebx, dword [esp + 4]
xor ecx, dword [esp]
xor eax, edi
xor edx, esi
add esi, ebx
adc edi, ecx
add dword [esp], edx
mov dword [esp + 0x10], esi
mov esi, ebx
mov dword [esp + 0xc], edi
mov edi, edx
adc dword [esp + 4], eax
shld esi, ecx, 0x11
shrd edx, eax, 0xb
shrd ebx, ecx, 0xf
shld edi, eax, 0x15
mov ecx, dword [esp + 0xc]
mov eax, dword [esp]
xor esi, dword [esp + 0x10]
xor edx, dword [esp + 4]
xor ebx, ecx
xor edi, eax
add eax, esi
mov dword [esp], eax
mov eax, dword [esp + 4]
adc eax, ebx
add ecx, edi
mov dword [esp + 0xc], ecx
mov ecx, esi
adc dword [esp + 0x10], edx
shrd esi, ebx, 0x13
shrd edi, edx, 0x10
shld ecx, ebx, 0xd
xor esi, eax
mov eax, dword [esp + 0x10]
xor ecx, dword [esp]
xor edi, eax
add ecx, dword [esp + 0xc]
adc eax, esi
shr esi, 0xf
shr edi, 0xb
xor esi, eax
xor edi, esi
xor edi, ecx
mov esi, dword [esp + 0x1c]
movzx ecx, word [esi + 0x38]
and edi, 0x7fff
mov dword [esp], 0
mov eax, edi
mov dword [esp + 4], ecx
and eax, ecx
mov ecx, dword [esi + 0x18]
mov dword [esp + 0x10], ecx
mov ecx, esi
mov esi, dword [esi + 0x1c]
mov ecx, dword [ecx + 0x24]
mov dword [esp + 0x1c], ecx
nop dword [eax + eax]
mov ebx, eax
xor eax, eax
cmp ebx, esi
jae 0x43fbb0
mov eax, dword [esp + 0x10]
movzx ecx, word [eax + ebx*4]
cmp ecx, 0xffff
je 0x43fc9e
movzx eax, word [eax + ebx*4 + 2]
mov dword [esp + 0xc], ecx
mov ecx, edi
mov edi, ebx
mov edx, eax
and edx, dword [esp + 4]
sub edi, edx
and edi, dword [esp + 4]
cmp dword [esp], edi
ja 0x43fc9e
mov edi, ecx
cmp ax, di
jne 0x43fc8d
mov ecx, dword [esp + 0xc]
cmp dword [esp + 0x24], ecx
jbe 0x43fdae
mov edx, dword [esp + 0x1c]
imul ecx, ecx, 0x34
cmp dword [edx + ecx + 0x20], 0
lea eax, [edx + ecx + 0x20]
je 0x43fc49
cmp byte [esp + 0xb], 2
je 0x43fc8d
test byte [esp + 0xb], 1
je 0x43fc5b
mov ecx, dword [esp + 0x14]
cmp dword [eax + 8], ecx
jne 0x43fc8d
push dword [esp + 0x14]
push dword [esp + 0x1c]
push dword [eax + 4]
call sub.msvcrt.dll_memcmp
add esp, 0xc
test eax, eax
jne 0x43fc8d
jmp 0x43fca8
cmp byte [esp + 0xb], 2
jne 0x43fc8d
mov ecx, dword [esp + 0x18]
cmp byte [eax + 4], cl
jne 0x43fc8d
jmp 0x43fca8
mov ecx, dword [esp + 0x14]
cmp dword [eax + 8], ecx
jne 0x43fc8d
mov eax, dword [eax + 4]
xor ecx, ecx
nop dword [eax]
cmp dword [esp + 0x14], ecx
je 0x43fca8
mov edx, dword [esp + 0x18]
movzx edx, byte [edx + ecx]
movzx edx, byte [edx + 0x5a890b]
cmp dl, byte [eax + ecx]
lea ecx, [ecx + 1]
je 0x43fc70
inc ebx
je 0x43fda4
inc dword [esp]
mov eax, ebx
jmp 0x43fbb0
xor eax, eax
lea esp, [ebp - 0xc]
pop esi
pop edi
pop ebx
pop ebp
ret
mov al, 1
jmp 0x43fca0
imul eax, ecx, 0x9ffaac08
test bl, 1
lea ecx, [edx + eax - 0x3d29b2dc]
je 0x43fd57
cmp dword [esp + 0x14], 0
je 0x43fb7c
mov dword [esp + 0x1c], esi
mov ebx, dword [esp + 0x14]
mov esi, dword [esp + 0x18]
nop dword [eax]
movzx eax, byte [esi]
mov edx, 0x100
inc esi
xor eax, edi
mov edi, eax
imul edi, edx
mov edx, 0x1b3
mul edx
add edx, edi
mov edi, 0x1b3
imul ecx, edi
mov edi, eax
add ecx, edx
dec ebx
jne 0x43fce0
jmp 0x43fb78
cmp dword [esp + 0x14], 0
je 0x43f993
mov ebx, dword [esp + 0x14]
mov esi, dword [esp + 0x18]
lea edi, [esp + 0x20]
nop word cs:[eax + eax]
nop
movzx eax, byte [esi]
inc esi
lea ecx, [esp + 0x30]
mov edx, edi
movzx eax, byte [eax + 0x5a890b]
mov byte [esp + 0x20], al
push 1
call sym.__LT_std..hash..random..DefaultHasher_u20_as_u20_core..hash..Hasher_GT_::write::h6fee52218ffb22b0
add esp, 4
dec ebx
jne 0x43fd30
jmp 0x43f993
cmp dword [esp + 0x14], 0
je 0x43fb7c
mov dword [esp + 0x1c], esi
mov ebx, dword [esp + 0x14]
mov esi, dword [esp + 0x18]
nop
movzx eax, byte [esi]
mov edx, 0x100
inc esi
movzx eax, byte [eax + 0x5a890b]
xor eax, edi
mov edi, eax
imul edi, edx
mov edx, 0x1b3
mul edx
add edx, edi
mov edi, 0x1b3
imul ecx, edi
mov edi, eax
add ecx, edx
dec ebx
jne 0x43fd70
jmp 0x43fb78
mov ecx, 0x5a8330
call sym.core::panicking::panic_const::panic_const_add_overflow::hf3b41c4c75c49a6d
mov edx, dword [esp + 0x24]
push 0x5a8320
call sym.core::panicking::panic_bounds_check::hf1cd1614d6353f3c
nop dword [eax]