Function at 0x431ca0
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, 0x2d8
mov dword [esp + 8], ecx
mov ecx, dword [edx + 8]
mov edi, edx
test ecx, ecx
je 0x43256c
mov dword [esp + 4], edi
mov edi, dword [edi + 4]
xor esi, esi
mov eax, 0x811c9dc5
nop
mov dword [esp + 0xc], ecx
movzx ecx, byte [edi]
inc edi
xor ecx, eax
mov eax, 0x100
mov ebx, ecx
imul ebx, eax
mov eax, ecx
mov ecx, 0x1b3
mul ecx
imul esi, ecx
mov ecx, dword [esp + 0xc]
add edx, ebx
add esi, edx
dec ecx
jne 0x431cd0
mov ecx, 0x1b3
xor eax, 0xff
mov edi, 0x100
imul edi, eax
mul ecx
imul esi, ecx
add edx, edi
mov edi, dword [esp + 4]
mov ebx, eax
add esi, edx
call fcn.004b30f0
test eax, eax
je 0x432583
movdqu xmm0, xmmword [eax]
movsd xmm3, qword [0x576608]
movsd xmm2, qword [0x576600]
movd ecx, xmm0
pshufd xmm1, xmm0, 0x55
add ecx, 1
mov dword [eax], ecx
movd ecx, xmm1
adc ecx, 0
xor edx, edx
mov dword [eax + 4], ecx
movsd qword [esp + 0x50], xmm3
movsd qword [esp + 0x48], xmm2
movaps xmm2, xmmword [0x5732e0]
lea ecx, [esp + 0x30]
mov dword [esp + 0x68], ebx
mov dword [esp + 0x6c], esi
movsd xmm3, qword [edi]
mov eax, dword [edi + 8]
mov dword [esp + 0x10c], eax
movsd qword [esp + 0x104], xmm3
mov dword [esp + 0x70], 0
mov dword [esp + 0x100], 0x110000
mov dword [esp + 0x14c], 0x80000000
mov dword [esp + 0x158], 0x80000000
mov dword [esp + 0x78], 0
mov dword [esp + 0x80], 0
mov dword [esp + 0x88], 0
mov dword [esp + 0x90], 0
mov dword [esp + 0x98], 0
mov dword [esp + 0xa0], 0
mov dword [esp + 0xa8], 0
mov dword [esp + 0xb0], 0
mov dword [esp + 0xb8], 0
mov dword [esp + 0x110], 0
mov dword [esp + 0x114], 4
mov dword [esp + 0x118], 0
mov dword [esp + 0x11c], 0
mov dword [esp + 0x120], 4
mov dword [esp + 0x124], 0
mov dword [esp + 0x128], 0
mov dword [esp + 0x12c], 4
mov dword [esp + 0x130], 0
mov dword [esp + 0xc0], 0
mov dword [esp + 0x164], 0x80000000
mov dword [esp + 0xc8], 0
mov dword [esp + 0x10], 0
mov dword [esp + 0x18], 0
mov dword [esp + 0x20], 0
mov dword [esp + 0xd0], 0
movups xmmword [esp + 0xd8], xmm2
mov dword [esp + 0x30], 0
mov dword [esp + 0x34], 8
mov dword [esp + 0x38], 0
mov dword [esp + 0x3c], 0
mov dword [esp + 0x40], 4
mov dword [esp + 0x44], 0
mov dword [esp + 0x134], 0
mov dword [esp + 0x138], 8
mov dword [esp + 0x13c], 0
movdqu xmmword [esp + 0x58], xmm0
mov dword [esp + 0x140], 0
mov dword [esp + 0x144], 8
mov dword [esp + 0x148], 0
mov dword [esp + 0xe8], 0
mov dword [esp + 0x28], 1
mov dword [esp + 0x2c], 0
mov dword [esp + 0xf0], 0
mov dword [esp + 0xf8], 0
call fcn.004371f0
mov ecx, dword [esp + 0x38]
mov eax, dword [esp + 0x34]
lea edi, [esp + 0x170]
lea ecx, [ecx + ecx*4]
shl ecx, 6
mov dword [eax + ecx], 0
mov dword [eax + ecx + 8], 0
mov dword [eax + ecx + 0x10], 0
mov dword [eax + ecx + 0x18], 0
mov dword [eax + ecx + 0x20], 0
mov dword [eax + ecx + 0x28], 0
mov dword [eax + ecx + 0x30], str.help
mov dword [eax + ecx + 0x34], 4
mov dword [eax + ecx + 0x3c], 0x59636393
mov dword [eax + ecx + 0x38], 0xcffbfe5f
mov dword [eax + ecx + 0x40], str.Print_help_informationPrint_version_information__
mov dword [eax + ecx + 0x44], 0x16
mov dword [eax + ecx + 0x48], 0
mov dword [eax + ecx + 0x50], str.help
mov dword [eax + ecx + 0x54], 4
mov dword [eax + ecx + 0x58], 0
mov dword [eax + ecx + 0x60], 0
mov dword [eax + ecx + 0x68], 0
mov dword [eax + ecx + 0x70], 1
mov dword [eax + ecx + 0x74], 0
mov dword [eax + ecx + 0x7c], 0x110000
mov dword [eax + ecx + 0x80], 0x110000
mov dword [eax + ecx + 0x84], 0
mov dword [eax + ecx + 0x88], 8
mov dword [eax + ecx + 0x8c], 0
mov dword [eax + ecx + 0x90], 0
mov dword [eax + ecx + 0x94], 8
mov dword [eax + ecx + 0x98], 0
mov dword [eax + ecx + 0x9c], 0
mov dword [eax + ecx + 0xa0], 8
mov dword [eax + ecx + 0xa4], 0
mov dword [eax + ecx + 0xa8], 0
mov dword [eax + ecx + 0xac], 8
mov dword [eax + ecx + 0xb0], 0
mov dword [eax + ecx + 0xb4], 0
mov dword [eax + ecx + 0xb8], 8
mov dword [eax + ecx + 0xbc], 0
mov dword [eax + ecx + 0xc0], 0
mov dword [eax + ecx + 0xc4], 8
mov dword [eax + ecx + 0xc8], 0
mov dword [eax + ecx + 0xcc], 0
mov dword [eax + ecx + 0xd0], 8
mov dword [eax + ecx + 0xd4], 0
mov dword [eax + ecx + 0xd8], 0
mov dword [eax + ecx + 0xdc], 8
mov dword [eax + ecx + 0xe0], 0
mov dword [eax + ecx + 0xe4], 0
mov dword [eax + ecx + 0xe8], 4
mov dword [eax + ecx + 0xec], 0
mov dword [eax + ecx + 0xf0], 0
mov dword [eax + ecx + 0xf4], 4
mov dword [eax + ecx + 0xf8], 0
mov dword [eax + ecx + 0xfc], 0
mov dword [eax + ecx + 0x100], 4
mov dword [eax + ecx + 0x104], 0
mov dword [eax + ecx + 0x108], 0
mov dword [eax + ecx + 0x10c], 4
mov dword [eax + ecx + 0x110], 0
mov dword [eax + ecx + 0x114], 0
mov dword [eax + ecx + 0x118], 4
mov dword [eax + ecx + 0x11c], 0
mov dword [eax + ecx + 0x120], 0
mov dword [eax + ecx + 0x124], 8
mov dword [eax + ecx + 0x128], 0
mov dword [eax + ecx + 0x12c], 0
mov dword [eax + ecx + 0x130], 4
mov dword [eax + ecx + 0x134], 0
mov dword [eax + ecx + 0x138], 8
mov dword [eax + ecx + 0x13c], 0
inc dword [esp + 0x38]
lea eax, [esp + 0x10]
push 0x160
push eax
push edi
call sub.msvcrt.dll_memcpy
add esp, 0xc
mov edx, dword [esp + 0x198]
mov esi, dword [esp + 0x24c]
mov ebx, dword [esp + 0x248]
cmp edx, dword [esp + 0x190]
jne 0x432287
lea ecx, [esp + 0x190]
call fcn.004371f0
mov edx, dword [esp + 0x198]
mov eax, dword [esp + 0x194]
lea ecx, [edx + edx*4]
shl ecx, 6
mov dword [eax + ecx], 0
mov dword [eax + ecx + 8], 0
mov dword [eax + ecx + 0x10], 0
mov dword [eax + ecx + 0x18], 0
mov dword [eax + ecx + 0x20], 0
mov dword [eax + ecx + 0x28], 0
mov dword [eax + ecx + 0x30], 0x58664b
mov dword [eax + ecx + 0x34], 7
mov dword [eax + ecx + 0x3c], 0x30ff0b7c
mov dword [eax + ecx + 0x38], 0x4d079478
mov dword [eax + ecx + 0x40], 0x574e32
mov dword [eax + ecx + 0x44], 0x19
mov dword [eax + ecx + 0x48], 0
mov dword [eax + ecx + 0x50], 0x58664b
mov dword [eax + ecx + 0x54], 7
mov dword [eax + ecx + 0x58], 0
mov dword [eax + ecx + 0x60], 0
mov dword [eax + ecx + 0x68], 0
mov dword [eax + ecx + 0x70], 1
mov dword [eax + ecx + 0x74], ebx
mov dword [eax + ecx + 0x78], esi
mov dword [eax + ecx + 0x7c], 0x110000
mov dword [eax + ecx + 0x80], 0x110000
mov dword [eax + ecx + 0x84], 0
mov dword [eax + ecx + 0x88], 8
mov dword [eax + ecx + 0x8c], 0
mov dword [eax + ecx + 0x90], 0
mov dword [eax + ecx + 0x94], 8
mov dword [eax + ecx + 0x98], 0
mov dword [eax + ecx + 0x9c], 0
mov dword [eax + ecx + 0xa0], 8
mov dword [eax + ecx + 0xa4], 0
mov dword [eax + ecx + 0xa8], 0
mov dword [eax + ecx + 0xac], 8
mov dword [eax + ecx + 0xb0], 0
mov dword [eax + ecx + 0xb4], 0
mov dword [eax + ecx + 0xb8], 8
mov dword [eax + ecx + 0xbc], 0
mov dword [eax + ecx + 0xc0], 0
mov dword [eax + ecx + 0xc4], 8
mov dword [eax + ecx + 0xc8], 0
mov dword [eax + ecx + 0xcc], 0
mov dword [eax + ecx + 0xd0], 8
mov dword [eax + ecx + 0xd4], 0
mov dword [eax + ecx + 0xd8], 0
mov dword [eax + ecx + 0xdc], 8
mov dword [eax + ecx + 0xe0], 0
mov dword [eax + ecx + 0xe4], 0
mov dword [eax + ecx + 0xe8], 4
mov dword [eax + ecx + 0xec], 0
mov dword [eax + ecx + 0xf0], 0
mov dword [eax + ecx + 0xf4], 4
mov dword [eax + ecx + 0xf8], 0
mov dword [eax + ecx + 0xfc], 0
mov dword [eax + ecx + 0x100], 4
mov dword [eax + ecx + 0x104], 0
mov dword [eax + ecx + 0x108], 0
mov dword [eax + ecx + 0x10c], 4
mov dword [eax + ecx + 0x110], 0
mov dword [eax + ecx + 0x114], 0
mov dword [eax + ecx + 0x118], 4
mov dword [eax + ecx + 0x11c], 0
mov dword [eax + ecx + 0x120], 0
mov dword [eax + ecx + 0x124], 8
mov dword [eax + ecx + 0x128], 0
mov dword [eax + ecx + 0x12c], 0
mov dword [eax + ecx + 0x130], 4
mov dword [eax + ecx + 0x134], 0
mov dword [eax + ecx + 0x138], 8
mov dword [eax + ecx + 0x13c], 0
inc dword [esp + 0x198]
push 0x160
push edi
push dword [esp + 0x10]
call sub.msvcrt.dll_memcpy
add esp, 0xc
lea esp, [ebp - 0xc]
pop esi
pop edi
pop ebx
pop ebp
ret
mov esi, 0x1c9d3adb
mov ebx, 0x639f298e
call fcn.004b30f0
test eax, eax
jne 0x431d29
lea eax, [esp + 0x10]
mov ecx, str.cannot_access_a_Thread_Local_Storage_value_during_or_after_destructionlibrary_std_src_threadlocal.rs
mov edx, 0x46
push 0x5765ec
push 0x574dfc
push eax
call fcn.0046f150
nop word cs:[eax + eax]
nop dword [eax + eax]
push ebp
mov ebp, esp
mov eax, dword [ebp + 8]
mov ecx, dword [ebp + 0xc]
mov edx, dword [eax + 4]
push dword [eax + 8]
call fcn.0046af00
add esp, 4
pop ebp
ret