Function at 0x41bc30
Capabilities:
Encode data using xor

Disassembly:
push ebp
mov ebp, esp
push ebx
push edi
push esi
and esp, 0xffffffc0
sub esp, 0x140
mov esi, dword [ebp + 8]
mov eax, dword [esi + 0x24]
mov edi, dword [esi + 0x2c]
mov dword [esp + 0x3c], eax
mov al, byte [esi + 0x28]
mov byte [esp + 0x1f], al
mov eax, dword [esi + 0x30]
mov dword [esp + 0x24], eax
push 4
push 0x2f8
call fcn.00406c70
add esp, 8
test eax, eax
je 0x41c261
lea ecx, [esi + 0x14]
mov dword [esp + 0x38], edi
mov dword [esp + 0x30], ecx
push 0x2f8
push 0
mov dword [esp + 0x3c], eax
push eax
call sub.VCRUNTIME140.dll_memset
add esp, 0xc
mov eax, 1
mov esi, 0x70656462
mov edi, 0x70656462
lock xadd dword [0x4c10e0], eax
mov ebx, eax
xor ebx, 0x79746573
mov edx, ebx
mov ecx, ebx
mov dword [esp + 0x10], ebx
add edx, 0x6e657261
adc esi, 0x6c796765
shld ecx, edi, 0x10
xor ecx, edx
mov edx, 0x70656462
shld edx, ebx, 0x10
mov ebx, ecx
xor edx, esi
add ebx, 0xd7dedfc6
mov esi, ecx
mov edi, edx
adc edi, 0xded7d4e2
shld esi, edx, 0x15
shld edx, ecx, 0x15
mov ecx, 0x70656462
xor edx, edi
xor esi, ebx
add dword [esp + 0x10], 0xc19fead0
mov dword [esp + 0x14], edi
adc ecx, 0xa60c596f
xor ebx, eax
mov eax, dword [esp + 0x10]
xor dword [esp + 0x14], 0x4000000
mov edi, ecx
xor ecx, 0xff
mov dword [esp + 0x18], ecx
xor edi, 0xe414a674
mov ecx, 0xf2651ba4
xor eax, 0xf0de7325
add ebx, eax
adc dword [esp + 0x14], edi
shld edi, eax, 0xd
shld eax, ecx, 0xd
mov ecx, esi
xor edi, dword [esp + 0x14]
xor eax, ebx
add dword [esp + 0x18], esi
adc dword [esp + 0x10], edx
shld ecx, edx, 0x10
shrd esi, edx, 0x10
xor ecx, dword [esp + 0x18]
xor esi, dword [esp + 0x10]
add dword [esp + 0x14], ecx
mov edx, ecx
adc ebx, esi
shld edx, esi, 0x15
shrd ecx, esi, 0xb
mov esi, eax
xor ecx, ebx
xor edx, dword [esp + 0x14]
add dword [esp + 0x18], eax
adc dword [esp + 0x10], edi
shld esi, edi, 0x11
shrd eax, edi, 0xf
mov edi, ebx
xor esi, dword [esp + 0x18]
xor eax, dword [esp + 0x10]
add dword [esp + 0x14], esi
mov ebx, esi
adc edi, eax
shld ebx, eax, 0xd
shrd esi, eax, 0x13
mov eax, dword [esp + 0x10]
mov dword [esp + 0x20], edi
xor esi, edi
xor ebx, dword [esp + 0x14]
mov edi, edx
add eax, edx
adc dword [esp + 0x18], ecx
shld edi, ecx, 0x10
shrd edx, ecx, 0x10
mov dword [esp + 0x10], eax
xor edi, eax
xor edx, dword [esp + 0x18]
mov eax, dword [esp + 0x14]
add dword [esp + 0x20], edi
mov ecx, edi
adc eax, edx
shld ecx, edx, 0x15
shrd edi, edx, 0xb
mov edx, dword [esp + 0x18]
xor edi, eax
xor ecx, dword [esp + 0x20]
add dword [esp + 0x10], ebx
mov dword [esp + 0x14], eax
mov eax, ebx
adc edx, esi
shld ebx, esi, 0x11
shrd eax, esi, 0xf
mov esi, dword [esp + 0x20]
xor ebx, dword [esp + 0x10]
xor eax, edx
mov dword [esp + 0x18], edx
mov edx, eax
add esi, ebx
adc dword [esp + 0x14], eax
mov eax, ebx
shrd ebx, edx, 0x13
shld eax, edx, 0xd
mov edx, dword [esp + 0x18]
xor ebx, dword [esp + 0x14]
xor eax, esi
mov esi, edi
mov dword [esp + 0x20], eax
mov eax, dword [esp + 0x10]
add edx, ecx
adc eax, edi
shld esi, ecx, 0x10
shld ecx, edi, 0x10
xor ecx, edx
xor esi, eax
mov edi, ecx
shld edi, esi, 0x15
shld esi, ecx, 0x15
add edx, dword [esp + 0x20]
mov ecx, ebx
mov dword [esp + 0x18], edx
mov edx, dword [esp + 0x20]
adc eax, ebx
shld ecx, edx, 0x11
shrd ebx, edx, 0xf
mov edx, dword [esp + 0x18]
xor ebx, edi
xor ecx, esi
xor ebx, eax
xor ecx, edx
xor ebx, edx
xor ecx, eax
mov edx, ebx
or edx, ecx
je 0x41bc90
mov edx, dword [esp + 0x30]
mov eax, dword [esp + 0x34]
mov edi, dword [esp + 0x24]
movsd xmm0, qword [edx]
movsd xmm1, qword [edx + 8]
mov edx, dword [esp + 0x3c]
movsd qword [esp + 0xd0], xmm1
movsd qword [esp + 0xc8], xmm0
mov dword [esp + 0xd8], edx
mov dl, byte [esp + 0x1f]
mov byte [esp + 0xdc], dl
mov dword [esp + 0x40], 0
mov dword [esp + 0x44], eax
mov dword [esp + 0x80], 0
mov dword [esp + 0x84], eax
mov eax, dword [esp + 0x38]
mov dword [esp + 0xe0], edi
mov dword [esp + 0xc4], ecx
mov dword [esp + 0xc0], ebx
mov dword [esp + 0xe4], eax
push 0
push 0x4c1010
call fcn.0041cfd0
add esp, 8
test eax, eax
je 0x41c241
cmp dword [eax], 0
jne 0x41c272
lea ecx, [esp + 0x40]
mov dword [eax], ecx
mov esi, dword [esp + 0xe4]
mov eax, dword [esi + 0xd0]
cmp eax, edi
jbe 0x41c227
mov ebx, dword [esi + 0xc8]
lea edi, [edi + edi*4]
lea eax, [ebx + edi*8]
mov dword [esp + 0x14], eax
push eax
call dword [sym.imp.kernel32.dll_AcquireSRWLockExclusive]
mov eax, dword [0x4c1080]
mov eax, dword [eax]
test eax, 0x7fffffff
jne 0x41c176
mov dword [esp + 0x10], 0
mov al, byte [ebx + edi*8 + 4]
test al, al
jne 0x41c1cd
lea eax, [ebx + edi*8 + 8]
mov byte [ebx + edi*8 + 5], 1
push eax
call fcn.00463470
add esp, 4
cmp byte [esp + 0x10], 0
jne 0x41bf9b
mov eax, dword [0x4c1080]
mov eax, dword [eax]
test eax, 0x7fffffff
jne 0x41c1f5
push dword [esp + 0x14]
call dword [sym.imp.kernel32.dll_ReleaseSRWLockExclusive]
mov eax, dword [esi + 0x108]
mov ebx, dword [esp + 0x24]
test eax, eax
je 0x41bfc1
mov ecx, dword [esi + 0x10c]
push ebx
push eax
call dword [ecx + 0x14]
add esp, 8
mov eax, dword [esi + 0xd0]
cmp eax, ebx
jbe 0x41c230
mov eax, dword [esi + 0xc8]
mov ecx, dword [eax + edi*8 + 0x18]
cmp ecx, 3
jne 0x41c18f
mov eax, dword [esi + 0xd0]
cmp eax, ebx
jbe 0x41c1af
mov ebx, dword [esi + 0xc8]
lea eax, [ebx + edi*8 + 0xc]
mov dword [esp + 0x14], eax
push eax
call dword [sym.imp.kernel32.dll_AcquireSRWLockExclusive]
mov eax, dword [0x4c1080]
mov eax, dword [eax]
test eax, 0x7fffffff
jne 0x41c1b6
mov dword [esp + 0x10], 0
mov al, byte [ebx + edi*8 + 0x10]
test al, al
jne 0x41c1cd
lea eax, [ebx + edi*8 + 0x14]
mov byte [ebx + edi*8 + 0x11], 1
push eax
call fcn.00463470
add esp, 4
cmp byte [esp + 0x10], 0
jne 0x41c056
mov eax, dword [0x4c1080]
mov eax, dword [eax]
test eax, 0x7fffffff
jne 0x41c20e
push dword [esp + 0x14]
call dword [sym.imp.kernel32.dll_ReleaseSRWLockExclusive]
mov eax, dword [esi + 0x110]
test eax, eax
je 0x41c07b
mov ecx, dword [esi + 0x114]
push dword [esp + 0x24]
push eax
call dword [ecx + 0x14]
add esp, 8
push 0
push 0x4c1010
call fcn.0041cfd0
add esp, 8
test eax, eax
je 0x41c241
lea ecx, [esp + 0x40]
cmp dword [eax], ecx
jne 0x41c280
mov dword [eax], 0
mov eax, dword [esp + 0xc8]
lock dec dword [eax]
jne 0x41c0c0
lea eax, [esp + 0xc8]
push eax
call fcn.00407c70
add esp, 4
mov eax, dword [esp + 0xd8]
lock dec dword [eax]
jne 0x41c0dc
lea eax, [esp + 0xd8]
push eax
call fcn.00407c70
add esp, 4
mov esi, dword [esp + 0x40]
mov edi, dword [esp + 0x80]
mov eax, dword [esp + 0x44]
and esi, 0xfffffffe
and edi, 0xfffffffe
cmp esi, edi
jne 0x41c157
push 4
push 0x2f8
push eax
call fcn.00406c80
add esp, 0xc
mov eax, dword [esp + 0xe4]
lock dec dword [eax]
jne 0x41c121
lea eax, [esp + 0xe4]
push eax
call fcn.0041e190
add esp, 4
mov ecx, dword [ebp + 8]
mov eax, dword [ecx]
test eax, eax
je 0x41c13d
mov ecx, dword [ecx + 4]
test ecx, ecx
je 0x41c13d
push 1
push ecx
push eax
call fcn.00406c80
add esp, 0xc
lea esp, [ebp - 0xc]
pop esi
pop edi
pop ebx
pop ebp
ret
add esi, 2
cmp edi, esi
je 0x41c0f5
mov ecx, esi
not ecx
test cl, 0x7e
jne 0x41c150
mov ebx, dword [eax]
push 4
push 0x2f8
push eax
call fcn.00406c80
add esp, 0xc
mov eax, ebx
jmp 0x41c150
call fcn.00480310
xor al, 1
mov dword [esp + 0x10], eax
mov al, byte [ebx + edi*8 + 4]
test al, al
je 0x41bf70
jmp 0x41c1cd
lea eax, [eax + edi*8 + 0x18]
push eax
lea eax, [esp + 0x44]
push eax
call fcn.0047dc70
add esp, 8
mov eax, dword [esi + 0xd0]
cmp eax, ebx
ja 0x41bff0
push 0x4a8f58
jmp 0x41c235
call fcn.00480310
xor al, 1
mov dword [esp + 0x10], eax
mov al, byte [ebx + edi*8 + 0x10]
test al, al
je 0x41c02b
mov eax, dword [esp + 0x14]
mov dword [esp + 0x28], eax
mov eax, dword [esp + 0x10]
mov byte [esp + 0x2c], al
lea eax, [esp + 0x28]
push 0x4a8e74
push 0x4a8e04
push eax
push 0x2b
push 0x4a8dd8
jmp 0x41c257
call fcn.00480310
test al, al
jne 0x41bf9b
lea eax, [ebx + edi*8 + 4]
mov byte [eax], 1
jmp 0x41bf9b
call fcn.00480310
test al, al
jne 0x41c056
lea eax, [ebx + edi*8 + 0x10]
mov byte [eax], 1
jmp 0x41c056
push 0x4a8f38
push eax
push edi
jmp 0x41c237
push 0x4a8f48
push eax
push ebx
call fcn.00480580
add esp, 0xc
ud2
lea eax, [esp + 0x28]
push 0x4a90bc
push 0x4a90cc
push eax
push 0x46
push 0x4a9024
call fcn.004806c0
add esp, 0x14
ud2
push 4
push 0x2f8
call fcn.004804a0
add esp, 8
ud2
push 0x4a91a4
push 0x23
push str.assertion_failed:_t.get__.is_null__
jmp 0x41c28c
push 0x4a9170
push 0x31
push str.assertion_failed:_t.get__.eq__self_as_const____C:Users_appveyor.cargo_registry_srcgithub.com_1285ae84e5963aae_rayon_core_1.10.2_src_registry.rs_r
call fcn.00480530
add esp, 0xc
ud2