Function at 0x414b76
Capabilities:
Encode data using xor

Disassembly:
push ebp
push ebx
push edi
push esi
sub esp, 0x78
mov dword [esp + 0x68], edx
mov dword [esp + 0x6c], ecx
push 0
call fcn.0041665c
add esp, 4
test eax, eax
je 0x414bc6
lea edi, [esp + 0x2c]
mov dword [esp + 0x20], eax
push edi
call fcn.00416656
add esp, 4
test eax, eax
je 0x414bd5
xor ebx, ebx
cmp eax, 1
mov ebp, 0
jne 0x414bda
mov ebx, dword [edx]
mov ebp, dword [edx + 4]
add ebx, 1
adc ebp, 0
jae 0x414bda
jmp 0x415133
mov ebp, 0x4d595df4
mov ebx, 0xd0f33173
jmp 0x414e9d
mov ebx, dword [edx]
mov ebp, dword [edx + 4]
push edi
call fcn.00416656
add esp, 4
cmp eax, 2
je 0x414bff
cmp eax, 1
jne 0x414c06
mov ecx, dword [edx]
mov edx, dword [edx + 4]
sub ecx, 1
sbb edx, 0
jae 0x414c0b
jmp 0x415133
xor ecx, ecx
dec ecx
mov edx, ecx
jmp 0x414c17
mov ecx, dword [edx]
mov edx, dword [edx + 4]
cmp ecx, ebx
mov eax, edx
sbb eax, ebp
jb 0x415133
mov eax, ebx
or eax, ebp
jne 0x414c94
mov eax, ecx
and eax, edx
cmp eax, 0xffffffff
jne 0x414c94
mov eax, dword [esp + 0x20]
mov ecx, 0x78bd642f
mov esi, 0xa0761d64
add ecx, dword [eax]
adc esi, dword [eax + 4]
mov edi, ecx
mov dword [eax], ecx
xor edi, 0xa0b428db
mov ebx, esi
mov dword [eax + 4], esi
mov eax, edi
mul ecx
xor ebx, 0xe7037ed1
mov dword [esp], eax
mov eax, ebx
mov dword [esp + 4], edx
mul ecx
mov ecx, eax
mov ebp, edx
mov eax, edi
add ecx, dword [esp + 4]
adc ebp, 0
mul esi
add eax, ecx
mov edi, edx
adc edi, ebp
mov dword [esp + 4], eax
setb al
movzx ecx, al
mov eax, ebx
mul esi
mov ebx, eax
mov ebp, edx
add ebx, edi
adc ebp, ecx
xor ebx, dword [esp]
xor ebp, dword [esp + 4]
jmp 0x414e9d
mov eax, dword [esp + 0x20]
sub ecx, ebx
mov esi, 0x78bd642f
mov edi, 0xa0761d64
mov dword [esp + 0x64], ebx
mov dword [esp + 0x60], ebp
sbb edx, ebp
mov dword [esp + 0x24], ecx
add ecx, 1
mov dword [esp + 0x5c], edx
adc edx, 0
mov dword [esp + 0x10], ecx
mov dword [esp + 0x28], edx
add esi, dword [eax]
adc edi, dword [eax + 4]
mov ecx, esi
mov dword [esp + 4], esi
xor ecx, 0xa0b428db
mov eax, ecx
mul esi
mov dword [esp + 8], edi
xor edi, 0xe7037ed1
mov dword [esp], eax
mov dword [esp + 0xc], edx
mov eax, edi
mul esi
mov ebx, eax
mov eax, ecx
mov ecx, dword [esp + 8]
mov ebp, edx
add ebx, dword [esp + 0xc]
adc ebp, 0
mul ecx
mov esi, eax
mov eax, edi
add esi, ebx
adc ebp, edx
setb byte [esp + 0xc]
mul ecx
mov ecx, dword [esp + 0x10]
movzx edi, byte [esp + 0xc]
mov ebx, eax
add ebx, ebp
adc edi, edx
xor ebx, dword [esp]
xor edi, esi
mov eax, edi
mul ecx
mov dword [esp], eax
mov eax, ecx
mov esi, edx
mul ebx
mov ebp, edx
mov dword [esp + 0x48], eax
mov eax, ebx
add ebp, dword [esp]
adc esi, 0
mov dword [esp], esi
mov esi, dword [esp + 0x28]
mul esi
mov ebx, eax
mov ecx, edx
mov eax, edi
mov edi, esi
add ebx, ebp
adc ecx, dword [esp]
mov edi, ebx
setb byte [esp + 0xc]
mul esi
add eax, ecx
mov ebp, edx
mov edx, dword [esp + 0x10]
mov ecx, esi
mov dword [esp], eax
movzx eax, byte [esp + 0xc]
adc ebp, eax
cmp dword [esp + 0x48], edx
mov eax, dword [esp + 0x20]
sbb ebx, esi
mov esi, dword [esp + 4]
mov ebx, dword [esp + 8]
mov dword [eax], esi
mov dword [eax + 4], ebx
jae 0x414e92
mov ebx, dword [esp + 0x5c]
mov eax, dword [esp + 0x24]
not ebx
not eax
push ecx
push edx
push ebx
push eax
call fcn.004b08f0
cmp dword [esp + 0x48], eax
mov ebx, dword [esp]
sbb edi, edx
jae 0x414e95
mov ecx, esi
mov esi, dword [esp + 8]
mov dword [esp + 0xc], eax
mov dword [esp + 0x24], edx
add ecx, 0x78bd642f
mov edi, ecx
adc esi, 0xa0761d64
mov dword [esp + 4], ecx
xor edi, 0xa0b428db
mov ebx, esi
mov ebp, esi
mov eax, edi
xor ebx, 0xe7037ed1
mul ecx
mov dword [esp], eax
mov eax, ebx
mov dword [esp + 8], edx
mul ecx
mov ecx, eax
mov esi, edx
mov eax, edi
add ecx, dword [esp + 8]
adc esi, 0
mul ebp
add eax, ecx
mov edi, edx
adc edi, esi
mov dword [esp + 8], eax
mov eax, ebx
mov esi, ebp
setb cl
mul ebp
mov ebp, eax
movzx eax, cl
mov ebx, edx
mov ecx, dword [esp + 0x28]
add ebp, edi
mov edi, dword [esp + 0x10]
adc ebx, eax
xor ebp, dword [esp]
xor ebx, dword [esp + 8]
mov eax, edi
mul ebp
imul ecx, ebp
add ecx, edx
imul edi, ebx
mov edx, dword [esp + 0x24]
add ecx, edi
cmp eax, dword [esp + 0xc]
sbb ecx, edx
mov ecx, dword [esp + 4]
jb 0x414dc1
mov eax, dword [esp + 0x20]
mov dword [eax + 4], esi
mov esi, dword [esp + 0x10]
mov dword [eax], ecx
mov eax, ebp
mul esi
mov eax, ebx
mov ecx, edx
mul esi
mov edi, eax
mov eax, ebp
mov ebp, dword [esp + 0x28]
mov esi, edx
add edi, ecx
adc esi, 0
mul ebp
mov ecx, edx
add eax, edi
adc ecx, esi
setb al
movzx esi, al
mov eax, ebx
mul ebp
mov ebx, eax
mov ebp, edx
add ebx, ecx
adc ebp, esi
jmp 0x414e95
mov ebx, dword [esp]
add ebx, dword [esp + 0x64]
adc ebp, dword [esp + 0x60]
lea esi, [esp + 0x14]
xor eax, eax
mov dword [esi], 1
mov dword [esi + 4], eax
mov dword [esi + 8], eax
push eax
push esi
call fcn.00415ca3
add esp, 8
mov eax, dword [esi]
mov ecx, dword [esi + 8]
lea edi, [esp + 0x30]
mov byte [eax + ecx], 0x2e
inc dword [esi + 8]
push edi
call fcn.00477d20
add esp, 4
cmp byte [edi + 0xc], 2
jne 0x414ee6
lea ecx, [esp + 0x30]
call fcn.00408c4a
jmp 0x414f95
movsd xmm0, qword [esp + 0x30]
movsd xmm1, qword [esp + 0x38]
movsd qword [esp + 0x54], xmm1
movsd qword [esp + 0x4c], xmm0
cmp byte [esp + 0x58], 2
je 0x414f95
lea eax, [esp + 0x4c]
push eax
call fcn.0041e2f0
add esp, 4
push edx
push eax
call fcn.0047ff30
add esp, 8
test eax, eax
je 0x414f77
push edx
push eax
lea eax, [esp + 0x38]
push eax
call fcn.004787a0
add esp, 0xc
cmp dword [esp + 0x30], 0
jne 0x414f77
mov eax, dword [esp + 0x34]
test eax, eax
je 0x414f77
mov ecx, dword [esp + 0x38]
add ecx, eax
push ecx
push eax
push esi
call fcn.004155f8
add esp, 0xc
mov eax, dword [esp + 0x1c]
cmp eax, dword [esp + 0x18]
jne 0x414f6b
push eax
push esi
call fcn.00415ca3
add esp, 8
mov eax, dword [esp + 0x1c]
mov ecx, dword [esp + 0x14]
mov byte [ecx + eax], 0x2e
inc dword [esp + 0x1c]
cmp byte [esp + 0x58], 2
je 0x414f95
mov eax, dword [esp + 0x50]
test eax, eax
je 0x414f95
push 1
push eax
push dword [esp + 0x54]
call fcn.00414130
add esp, 0xc
xor edi, edi
add ebx, 0x78bd642f
mov dword [esp + 0x10], edi
mov edi, ebx
adc ebp, 0xa0761d64
xor edi, 0xa0b428db
mov ecx, ebp
mov eax, edi
xor ecx, 0xe7037ed1
mul ebx
mov dword [esp], eax
mov eax, ecx
mov dword [esp + 4], edx
mul ebx
mov esi, eax
mov eax, edi
add esi, dword [esp + 4]
adc edx, 0
mov dword [esp + 4], edx
mul ebp
add eax, esi
adc edx, dword [esp + 4]
imul ecx, ebp
add ecx, edx
mov edx, 0x1a
xor ecx, dword [esp]
lea eax, [ecx + ecx*4]
lea esi, [eax + eax*4]
mov eax, ecx
add esi, ecx
mul edx
cmp esi, 0x15
ja 0x415066
add ebx, 0x78bd642f
mov edi, ebx
adc ebp, 0xa0761d64
mov dword [esp], ebx
xor edi, 0xa0b428db
mov esi, ebp
mov eax, edi
xor esi, 0xe7037ed1
mul ebx
mov dword [esp + 4], eax
mov eax, esi
mov dword [esp + 8], edx
mul ebx
mov ebx, ebp
mov ecx, eax
mov ebp, edx
mov eax, edi
add ecx, dword [esp + 8]
adc ebp, 0
mul ebx
add eax, ecx
mov edi, edx
mov eax, esi
adc edi, ebp
mov ebp, ebx
mov ebx, dword [esp]
mul ebp
add eax, edi
xor eax, dword [esp + 4]
lea ecx, [eax + eax*4]
lea ecx, [ecx + ecx*4]
add ecx, eax
cmp ecx, 0x16
jb 0x414ffb
mov ecx, 0x1a
mul ecx
jmp 0x415069
mov dword [esp], ebx
mov edi, dword [esp + 0x10]
mov bl, byte [edx + str.abcdefghijklmnopqrstuvwxyz.__selfdelete__.exe.__relocated__.exe.__temp__.exeC:Users_runneradmin.cargo_registry_srcindex.crates.io_6f17d22bba15001f_self_replace_1.3.7_srcwindows.rs]
lea esi, [esp + 0x14]
inc edi
test bl, bl
js 0x4150a1
mov eax, dword [esp + 0x1c]
cmp eax, dword [esp + 0x18]
jne 0x415094
push eax
push esi
call fcn.00415ca3
add esp, 8
mov eax, dword [esp + 0x1c]
mov ecx, dword [esp + 0x14]
mov byte [ecx + eax], bl
inc dword [esp + 0x1c]
jmp 0x4150d1
mov eax, ebx
and bl, 0x3f
mov dword [esp + 0x30], 0
shr al, 6
or bl, 0x80
or al, 0xc0
mov byte [esp + 0x30], al
lea eax, [esp + 0x32]
mov byte [esp + 0x31], bl
push eax
lea eax, [esp + 0x34]
push eax
push esi
call fcn.004155f8
add esp, 0xc
mov ebx, dword [esp]
cmp edi, 0x20
jne 0x414f97
mov eax, dword [esp + 0x90]
mov ecx, dword [esp + 0x94]
add ecx, eax
push ecx
push eax
push esi
call fcn.004155f8
add esp, 0xc
mov eax, dword [esp + 0x1c]
movsd xmm0, qword [esp + 0x14]
mov dword [esp + 0x38], eax
lea eax, [esp + 0x30]
movsd qword [esp + 0x30], xmm0
push eax
push dword [esp + 0x90]
push dword [esp + 0x70]
mov esi, dword [esp + 0x78]
push esi
call fcn.004156b2
add esp, 0x10
mov eax, esi
add esp, 0x78
pop esi
pop edi
pop ebx
pop ebp
ret
push edi
call fcn.00416656
add esp, 4
lea esi, [esp + 0x70]
mov dword [esi], eax
mov dword [esi + 4], edx
push edi
call fcn.00416656
add esp, 4
lea ecx, [esp + 0x14]
mov dword [ecx], eax
mov dword [ecx + 4], edx
lea eax, [esp + 0x4c]
mov edx, 0x4165a8
mov dword [eax], esi
mov dword [eax + 4], edx
mov dword [eax + 8], ecx
mov dword [eax + 0xc], edx
lea ecx, [esp + 0x30]
mov edx, 2
mov dword [ecx], 0x4b8cf4
mov dword [ecx + 4], edx
mov dword [ecx + 0x10], 0
mov dword [ecx + 8], eax
mov dword [ecx + 0xc], edx
push 0x4b8d04
push ecx
call fcn.004b4700
add esp, 8
ud2