Function at 0x43e5c0
Capabilities:
Encode data using xor

Disassembly:
push ebp
mov ebp, esp
push ebx
push edi
push esi
and esp, 0xfffffff0
sub esp, 0x80
mov eax, dword [ecx + 0xc]
mov dword [esp + 0x14], edx
mov dword [esp + 0x2c], eax
inc eax
je 0x43f067
mov ebx, dword [ecx + 4]
mov edi, ecx
mov dword [esp + 0x24], edi
lea edx, [ebx + 1]
mov dword [esp + 0x20], ebx
mov ecx, edx
mov esi, edx
shr ecx, 3
and esi, 0xfffffff8
sub esi, ecx
cmp ebx, 8
cmovb esi, ebx
mov ecx, esi
shr ecx, 1
cmp eax, ecx
jbe 0x43e632
inc esi
mov dword [esp + 0x18], edx
cmp eax, esi
cmova esi, eax
cmp esi, 8
jae 0x43e6b6
xor eax, eax
cmp esi, 4
setae al
lea edi, [eax*4 + 4]
jmp 0x43e6ef
mov ecx, edx
mov edi, dword [edi]
xor eax, eax
mov dword [esp + 0x4c], esi
mov esi, edx
shr ecx, 4
test dl, 0xf
setne al
add eax, ecx
je 0x43e676
movdqa xmm0, xmmword [0x5a4cd0]
mov ecx, edi
nop word cs:[eax + eax]
nop
pxor xmm1, xmm1
dec eax
pcmpgtb xmm1, xmmword [ecx]
por xmm1, xmm0
movdqa xmmword [ecx], xmm1
lea ecx, [ecx + 0x10]
jne 0x43e660
mov ecx, esi
cmp esi, 0x10
mov esi, dword [esp + 0x14]
jae 0x43e763
lea eax, [edi + 0x10]
push ecx
push edi
push eax
mov dword [esp + 0x24], ecx
call sub.msvcrt.dll_memmove
add esp, 0xc
cmp dword [esp + 0x18], 0
jne 0x43e777
mov ecx, dword [esp + 0x4c]
mov eax, dword [esp + 0x24]
sub ecx, dword [esp + 0x2c]
mov dword [eax + 8], ecx
jmp 0x43f05a
cmp esi, 0x20000000
jae 0x43f067
shl esi, 3
mov edi, 1
cmp esi, 0xe
jb 0x43e6ef
mov ecx, 0x24924925
mov eax, esi
mov edi, 0xffffffff
mul ecx
sub esi, edx
shr esi, 1
add esi, edx
shr esi, 2
dec esi
bsr ecx, esi
not ecx
shr edi, cl
inc edi
mov ecx, 0xc
mov eax, edi
mul ecx
jo 0x43f067
mov ecx, eax
add ecx, 0xf
jb 0x43f067
and ecx, 0xfffffff0
lea edx, [edi + 0x10]
mov ebx, ecx
add ebx, edx
jb 0x43f067
cmp ebx, 0x7ffffff1
jae 0x43f067
test ebx, ebx
mov dword [esp + 8], edi
je 0x43eec9
mov eax, dword [0x6074b4]
movzx eax, byte [eax]
push 0x10
push ebx
mov edi, ecx
mov esi, edx
call fcn.00401610
mov edx, esi
mov ecx, edi
add esp, 8
mov edi, eax
test eax, eax
jne 0x43eece
push ebx
push 0x10
call fcn.0041a8c0
add esp, 8
ud2
movq xmm0, qword [edi]
movq xmm1, qword [edi + 8]
movq qword [edi + ecx + 8], xmm1
movq qword [edi + ecx], xmm0
movd xmm1, dword [ebp + 8]
movd xmm0, esi
movd xmm2, dword [ebp + 0x10]
lea eax, [edi - 0xc]
xor edx, edx
mov dword [esp + 0x18], edi
mov dword [esp + 0x50], eax
punpckldq xmm0, xmm1
pshufd xmm0, xmm0, 0x44
pxor xmm0, xmmword [0x5a4ce0]
movdqa xmmword [esp + 0x60], xmm0
movd xmm0, dword [ebp + 0xc]
punpckldq xmm0, xmm2
pshufd xmm2, xmm0, 0x44
pxor xmm2, xmmword [0x5a4cf0]
jmp 0x43e7f2
mov edx, dword [esp + 0x28]
mov edi, dword [esp + 0x18]
shr eax, 0x19
lea ecx, [edx - 0x10]
mov byte [edi + edx], al
and ecx, ebx
mov byte [ecx + edi + 0x10], al
cmp edx, ebx
lea edx, [edx + 1]
je 0x43e6a2
cmp byte [edi + edx], 0x80
jne 0x43e7e7
lea eax, [edx*4]
mov ecx, dword [esp + 0x50]
mov dword [esp + 0x28], edx
lea eax, [eax + eax*2]
sub edi, eax
mov eax, edx
neg eax
add edi, 0xfffffff4
lea eax, [eax + eax*2]
mov dword [esp + 0x30], edi
lea eax, [ecx + eax*4]
mov dword [esp + 0x54], eax
nop word cs:[eax + eax]
nop dword [eax + eax]
mov eax, dword [esp + 0x54]
movaps xmm4, xmmword [esp + 0x60]
xor ebx, ebx
movdqa xmm1, xmm2
mov edx, 0
mov edi, dword [eax + 8]
mov esi, dword [eax]
mov eax, edi
mov ecx, edi
mov dword [esp + 0x10], edi
and eax, 7
and ecx, 0xfffffff8
mov dword [esp + 8], eax
je 0x43e93f
movdqa xmm4, xmmword [esp + 0x60]
xor edx, edx
movdqa xmm1, xmm2
nop dword [eax]
mov ebx, dword [esi + edx]
mov edi, dword [esi + edx + 4]
movd eax, xmm1
pshufd xmm5, xmm1, 0x55
movdqa xmm7, xmm1
add edx, 8
psrlq xmm7, 0x33
xor eax, ebx
movd xmm6, eax
movd eax, xmm5
xor eax, edi
movd xmm5, eax
punpcklqdq xmm5, xmm6
shufps xmm5, xmm1, 0xe2
psllq xmm1, 0xd
movaps xmm6, xmm5
paddq xmm4, xmm5
psllq xmm5, 0x10
psrlq xmm6, 0x30
movsd xmm1, xmm5
movsd xmm7, xmm6
orpd xmm1, xmm7
xorpd xmm1, xmm4
pshufd xmm4, xmm4, 0x4b
paddq xmm4, xmm1
movdqa xmm7, xmm1
movdqa xmm3, xmm1
pshufd xmm5, xmm4, 0x55
psrlq xmm7, 0x2b
psrlq xmm3, 0x2f
movd eax, xmm5
movsd xmm3, xmm7
movdqa xmm7, xmm1
psllq xmm1, 0x11
xor eax, edi
movd edi, xmm4
psllq xmm7, 0x15
xor edi, ebx
movsd xmm1, xmm7
movd xmm6, eax
cmp edx, ecx
movd xmm5, edi
orpd xmm1, xmm3
punpcklqdq xmm6, xmm5
xorpd xmm1, xmm4
shufps xmm4, xmm6, 0x2b
jb 0x43e870
dec ecx
mov edi, dword [esp + 0x10]
mov eax, dword [esp + 8]
xor ebx, ebx
and ecx, 0xfffffff8
add ecx, 8
mov edx, ecx
cmp eax, 3
jbe 0x43e970
mov ecx, dword [esi + edx]
mov dword [esp + 0x14], 0
mov ebx, 4
mov dword [esp + 0xc], ecx
mov ecx, ebx
or ecx, 1
cmp ecx, eax
jb 0x43e989
jmp 0x43e9c3
mov dword [esp + 0xc], 0
mov dword [esp + 0x14], 0
mov ecx, ebx
or ecx, 1
cmp ecx, eax
jae 0x43e9c3
lea ecx, [ebx + edx]
mov eax, ebx
movzx edi, word [esi + ecx]
lea ecx, [ebx*8]
xor ebx, ebx
shld ebx, edi, cl
shl edi, cl
test cl, 0x20
mov ecx, 0
cmovne ebx, edi
cmovne edi, ecx
or dword [esp + 0x14], ebx
mov ebx, eax
or dword [esp + 0xc], edi
mov edi, dword [esp + 0x10]
mov eax, dword [esp + 8]
or ebx, 2
movd ecx, xmm4
cmp ebx, eax
pshufd xmm7, xmm4, 0x55
pshufd xmm6, xmm4, 0xff
pshufd xmm5, xmm4, 0xee
mov dword [esp + 0x1c], ecx
jae 0x43ea10
add edx, ebx
shl ebx, 3
movzx edx, byte [esi + edx]
xor esi, esi
mov ecx, ebx
shld esi, edx, cl
shl edx, cl
test bl, 0x20
mov ecx, 0
mov ebx, dword [esp + 0x14]
cmovne esi, edx
cmovne edx, ecx
inc edi
or dword [esp + 0xc], edx
or ebx, esi
jmp 0x43ea1d
inc edi
test eax, eax
je 0x43eb22
mov ebx, dword [esp + 0x14]
lea ecx, [eax*8]
xor esi, esi
mov edx, 0xff
shld esi, edx, cl
shl edx, cl
test cl, 0x20
mov ecx, 0
cmovne esi, edx
cmovne edx, ecx
or edx, dword [esp + 0xc]
or esi, ebx
cmp eax, 7
jne 0x43eb10
pshufd xmm3, xmm1, 0x55
movd eax, xmm1
movdqa xmm6, xmm1
movd ecx, xmm3
xor eax, edx
psrlq xmm6, 0x33
xor ecx, esi
movd xmm3, eax
movd xmm5, ecx
punpcklqdq xmm5, xmm3
shufps xmm5, xmm1, 0xe2
psllq xmm1, 0xd
movaps xmm3, xmm5
paddq xmm4, xmm5
psllq xmm5, 0x10
psrlq xmm3, 0x30
movsd xmm1, xmm5
movsd xmm6, xmm3
orpd xmm1, xmm6
xorpd xmm1, xmm4
pshufd xmm4, xmm4, 0x4b
paddq xmm4, xmm1
movdqa xmm3, xmm1
movdqa xmm5, xmm1
movdqa xmm6, xmm1
psllq xmm1, 0x11
psllq xmm6, 0x15
pshufd xmm0, xmm4, 0xee
psrlq xmm3, 0x2b
psrlq xmm5, 0x2f
movd ebx, xmm4
movd dword [esp + 8], xmm0
pshufd xmm0, xmm4, 0x55
movsd xmm5, xmm3
movsd xmm1, xmm6
xor ebx, edx
xor edx, edx
orpd xmm1, xmm5
movd eax, xmm0
pshufd xmm5, xmm4, 0xff
xor eax, esi
xorpd xmm1, xmm4
xor esi, esi
movd dword [esp + 0x1c], xmm5
mov dword [esp + 0xc], eax
jmp 0x43eb40
movd dword [esp + 8], xmm7
movd dword [esp + 0xc], xmm6
movd ebx, xmm5
jmp 0x43eb40
xor esi, esi
movd dword [esp + 8], xmm7
movd dword [esp + 0xc], xmm6
movd ebx, xmm5
mov edx, 0xff
nop dword [eax]
shl edi, 0x18
pshufd xmm3, xmm1, 0x55
mov dword [esp + 0x5c], edx
or edi, esi
movd ecx, xmm3
movd esi, xmm1
pshufd xmm3, xmm1, 0xff
pshufd xmm1, xmm1, 0xee
mov dword [esp + 0x10], edi
xor ecx, edi
movd edi, xmm1
xor esi, edx
movd edx, xmm3
add ebx, edi
mov eax, edi
adc dword [esp + 0xc], edx
shld eax, edx, 0xd
shld edx, edi, 0xd
mov edi, dword [esp + 8]
mov dword [esp + 0x14], ebx
mov ebx, esi
mov dword [esp + 0x58], eax
mov eax, dword [esp + 0x1c]
add eax, esi
adc edi, ecx
shld ebx, ecx, 0x10
shrd esi, ecx, 0x10
mov ecx, dword [esp + 0xc]
xor ebx, eax
xor esi, edi
add ecx, ebx
mov dword [esp + 0x1c], ecx
mov ecx, dword [esp + 0x14]
movd xmm7, dword [esp + 0x1c]
adc ecx, esi
xor edx, dword [esp + 0xc]
mov dword [esp + 8], ecx
mov ecx, ebx
shrd ebx, esi, 0xb
shld ecx, esi, 0x15
mov esi, dword [esp + 0x58]
movd xmm1, dword [esp + 8]
movd xmm6, edx
xor esi, dword [esp + 0x14]
punpckldq xmm7, xmm1
pshufd xmm1, xmm7, 0x44
add eax, esi
movd xmm0, esi
adc edi, edx
punpckldq xmm0, xmm6
movd xmm4, eax
movd xmm3, edi
movdqa xmm5, xmm0
mov edi, dword [esp + 0x18]
punpckldq xmm4, xmm3
movdqa xmm3, xmm0
psrlq xmm5, 0x2f
psllq xmm0, 0x11
punpcklqdq xmm3, xmm4
punpcklqdq xmm4, xmmword [0x5a4d00]
movdqa xmm6, xmm3
psllq xmm3, 0x20
psrlq xmm6, 0x20
shufps xmm0, xmm3, 0xe4
movd xmm3, ebx
mov ebx, dword [esp + 0x20]
shufps xmm5, xmm6, 0xe4
movd xmm6, dword [esp + 0x10]
orps xmm0, xmm5
movd xmm5, ecx
punpckldq xmm5, xmm3
movd xmm3, dword [esp + 0x5c]
pxor xmm4, xmm0
movdqa xmm0, xmm4
psrlq xmm0, 0x33
punpckldq xmm3, xmm6
punpcklqdq xmm3, xmm5
movdqa xmm5, xmm4
psllq xmm4, 0xd
pxor xmm3, xmm1
movdqa xmm1, xmm3
paddq xmm5, xmm3
psllq xmm3, 0x10
psrlq xmm1, 0x30
movsd xmm3, xmm4
pshufd xmm4, xmm5, 0x1e
movsd xmm1, xmm0
orpd xmm3, xmm1
xorpd xmm3, xmm5
movapd xmm0, xmm3
movapd xmm1, xmm3
paddq xmm4, xmm3
psrlq xmm0, 0x2f
psrlq xmm1, 0x2b
movsd xmm1, xmm0
movdqa xmm0, xmm3
psllq xmm3, 0x15
psllq xmm0, 0x11
movsd xmm3, xmm0
orpd xmm3, xmm1
xorpd xmm3, xmm4
pshufd xmm4, xmm4, 0x1e
movapd xmm0, xmm3
movapd xmm1, xmm3
paddq xmm4, xmm3
psrlq xmm0, 0x33
psrlq xmm1, 0x30
movsd xmm1, xmm0
movdqa xmm0, xmm3
psllq xmm3, 0x10
psllq xmm0, 0xd
movsd xmm3, xmm0
orpd xmm3, xmm1
xorpd xmm3, xmm4
pshufd xmm4, xmm4, 0x1e
movapd xmm0, xmm3
movapd xmm1, xmm3
paddq xmm4, xmm3
psrlq xmm0, 0x2f
psrlq xmm1, 0x2b
movsd xmm1, xmm0
movdqa xmm0, xmm3
psllq xmm3, 0x15
psllq xmm0, 0x11
movsd xmm3, xmm0
orpd xmm3, xmm1
xorpd xmm3, xmm4
pshufd xmm4, xmm4, 0x1e
movapd xmm0, xmm3
movapd xmm1, xmm3
paddq xmm4, xmm3
psrlq xmm0, 0x33
psrlq xmm1, 0x30
movsd xmm1, xmm0
movdqa xmm0, xmm3
psllq xmm3, 0x10
psllq xmm0, 0xd
movsd xmm3, xmm0
orpd xmm3, xmm1
xorpd xmm3, xmm4
movapd xmm0, xmm3
movapd xmm1, xmm3
pshufd xmm5, xmm3, 0x44
psrlq xmm0, 0x2f
psrlq xmm1, 0x2b
paddq xmm5, xmm4
movsd xmm1, xmm0
movdqa xmm0, xmm3
psllq xmm3, 0x15
pshufd xmm4, xmm5, 0xee
psllq xmm0, 0x11
movd eax, xmm4
movsd xmm3, xmm0
orpd xmm3, xmm1
pshufd xmm0, xmm3, 0xee
pxor xmm0, xmm3
pshufd xmm3, xmm5, 0xff
movd ecx, xmm3
xor ecx, eax
movd eax, xmm0
xor eax, ecx
mov ecx, ebx
and ecx, eax
movdqu xmm0, xmmword [edi + ecx]
mov esi, ecx
pmovmskb edx, xmm0
test edx, edx
jne 0x43ee1a
mov dword [esp + 0x10], eax
mov eax, edi
mov edi, 0x10
mov esi, ecx
nop word cs:[eax + eax]
nop
add esi, edi
add edi, 0x10
and esi, ebx
movdqu xmm0, xmmword [eax + esi]
pmovmskb edx, xmm0
test edx, edx
je 0x43ee00
mov edi, eax
mov eax, dword [esp + 0x10]
tzcnt edx, edx
add edx, esi
and edx, ebx
cmp byte [edi + edx], 0
js 0x43ee34
movdqa xmm0, xmmword [edi]
pmovmskb edx, xmm0
tzcnt edx, edx
mov esi, dword [esp + 0x28]
mov edi, edx
sub edi, ecx
sub esi, ecx
xor edi, esi
and edi, ebx
cmp edi, 0x10
jb 0x43e7d0
mov edi, dword [esp + 0x18]
lea esi, [edx - 0x10]
shr eax, 0x19
and esi, ebx
movzx ecx, byte [edi + edx]
mov byte [edi + edx], al
mov byte [esi + edi + 0x10], al
lea eax, [edx*4]
lea eax, [eax + eax*2]
neg eax
lea eax, [edi + eax - 0xc]
cmp cl, 0xff
je 0x43eea0
mov esi, dword [esp + 0x30]
mov edx, dword [eax]
mov ecx, dword [esi]
mov dword [esi], edx
mov dword [eax], ecx
mov ecx, dword [esi + 4]
mov edx, dword [eax + 4]
mov dword [esi + 4], edx
mov dword [eax + 4], ecx
mov ecx, dword [esi + 8]
mov edx, dword [eax + 8]
mov dword [esi + 8], edx
mov dword [eax + 8], ecx
jmp 0x43e830
mov edx, dword [esp + 0x28]
mov esi, dword [esp + 0x30]
lea ecx, [edx - 0x10]
mov byte [edi + edx], 0xff
and ecx, ebx
mov byte [ecx + edi + 0x10], 0xff
mov ecx, dword [esi + 8]
mov dword [eax + 8], ecx
movq xmm0, qword [esi]
movq qword [eax], xmm0
jmp 0x43e7e7
mov edi, 0x10
mov esi, dword [esp + 8]
mov eax, esi
lea ebx, [esi - 1]
and esi, 0xfffffff8
shr eax, 3
sub esi, eax
cmp ebx, 8
cmovb esi, ebx
add edi, ecx
push edx
push 0xff
push edi
call sub.msvcrt.dll_memset
add esp, 0xc
sub esi, dword [esp + 0x2c]
cmp dword [esp + 0x20], 0xffffffff
je 0x43f015
mov eax, dword [esp + 0x24]
mov dword [esp + 8], esi
xor esi, esi
mov eax, dword [eax]
mov dword [esp + 0x10], eax
add eax, 0xfffffff4
mov dword [esp + 0x1c], eax
jmp 0x43ef69
lea ecx, [edx - 0x10]
shr eax, 0x19
and ecx, ebx
mov byte [edi + edx], al
shl edx, 2
mov byte [ecx + edi + 0x10], al
mov ecx, dword [esp + 0x10]
lea eax, [esi*4]
lea eax, [eax + eax*2]
sub ecx, eax
lea eax, [edx + edx*2]
mov edx, edi
movq xmm0, qword [ecx - 0xc]
sub edx, eax
neg eax
movq qword [edi + eax - 0xc], xmm0
mov eax, dword [ecx - 4]
mov dword [edx - 4], eax
cmp esi, dword [esp + 0x20]
lea esi, [esi + 1]
je 0x43effb
mov eax, dword [esp + 0x10]
cmp byte [eax + esi], 0
js 0x43ef5c
mov eax, esi
mov dword [esp + 0xc], esi
mov ecx, dword [esp + 0x14]
mov edx, dword [ebp + 8]
mov esi, dword [esp + 0x1c]
neg eax
lea eax, [eax + eax*2]
push dword [esi + eax*4 + 8]
push dword [esi + eax*4]
push dword [ebp + 0x10]
push dword [ebp + 0xc]
call fcn.0043c3f0
add esp, 0x10
mov ecx, ebx
and ecx, eax
movdqu xmm0, xmmword [edi + ecx]
pmovmskb edx, xmm0
test edx, edx
jne 0x43efd4
mov esi, 0x10
nop word cs:[eax + eax]
nop
add ecx, esi
add esi, 0x10
and ecx, ebx
movdqu xmm0, xmmword [edi + ecx]
pmovmskb edx, xmm0
test edx, edx
je 0x43efc0
tzcnt edx, edx
mov esi, dword [esp + 0xc]
add edx, ecx
and edx, ebx
cmp byte [edi + edx], 0
js 0x43ef20
movdqa xmm0, xmmword [edi]
pmovmskb ecx, xmm0
tzcnt edx, ecx
jmp 0x43ef20
mov esi, dword [esp + 0x20]
mov eax, dword [esp + 0x24]
mov ecx, dword [esp + 8]
test esi, esi
mov dword [eax], edi
mov dword [eax + 4], ebx
mov dword [eax + 8], ecx
jne 0x43f02b
jmp 0x43f05a
mov eax, dword [esp + 0x24]
mov ecx, dword [eax]
mov dword [eax], edi
mov dword [eax + 4], ebx
mov dword [eax + 8], esi
mov esi, dword [esp + 0x20]
mov dword [esp + 0x10], ecx
mov eax, dword [esp + 0x18]
mov ecx, 0xc
mul ecx
add eax, 0xf
and eax, 0xfffffff0
add esi, eax
cmp esi, 0xffffffef
je 0x43f05a
mov ecx, dword [esp + 0x10]
sub ecx, eax
mov eax, dword [0x6074a0]
push dword [ecx - 4]
push 0
push dword [eax]
call sub.KERNEL32.dll_HeapFree
mov eax, 0x80000001
lea esp, [ebp - 0xc]
pop esi
pop edi
pop ebx
pop ebp
ret
mov dword [esp + 0x34], str.Hash_table_capacity_overflow
mov dword [esp + 0x38], 1
mov dword [esp + 0x44], 0
mov dword [esp + 0x3c], str.C:Users_runneradmin.cargo_registry_srcindex.crates.io_1cd66030c949c28dhashbrown_0.14.0_src_rawmod.rs
mov dword [esp + 0x40], 0
lea eax, [esp + 0x34]
push 0x5a9644
push eax
call fcn.00425150
add esp, 8
ud2