Function at 0x10004ac1
Capabilities:
Encode data using xor

Disassembly:
mov eax, 0x10061c99
call fcn.100616f8
sub esp, 0x68
push ebx
push esi
xor ebx, ebx
mov dword [ebp - 0x44], edx
push edi
mov dword [ebp - 0x10], esp
mov dword [ebp - 0x40], ecx
cmp byte [ebp + 8], bl
je 0x10004e59
mov dword [ebp - 0x24], 0x64ec
cmp dword [ebp - 0x24], 0x6728
jle 0x10004b5b
mov esi, ebx
mov dword [ebp - 0x30], ebx
mov edi, ebx
mov dword [ebp - 0x38], ebx
mov eax, ebx
mov ebx, edi
mov dword [ebp - 0x3c], eax
and ebx, esi
mov esi, eax
mov edi, 0x2d63
mov eax, esi
mov ecx, 0x1007da98
xor eax, ebx
cdq
push edx
push eax
call fcn.1000b132
dec esi
dec edi
jne 0x10004b0f
mov eax, dword [ebp - 0x3c]
inc eax
mov dword [ebp - 0x3c], eax
cmp eax, 0x16b9
jl 0x10004b08
mov edi, dword [ebp - 0x38]
mov esi, dword [ebp - 0x30]
inc edi
mov dword [ebp - 0x38], edi
push 0
pop ebx
cmp edi, 0xf17
jl 0x10004aff
inc esi
mov dword [ebp - 0x30], esi
cmp esi, 0x2c5f
jl 0x10004afa
push ebx
push ebx
call dword [sym.imp.KERNEL32.dll_CompareFileTime]
mov dword [ebp - 4], ebx
cmp dword [ebp - 0x24], 0x6375
jge 0x10004b76
mov edx, str.dud_jpqcxofkt_eucf_niydfre_uxv_tjdetkh_cwanj
mov ecx, 0x1007da98
call fcn.1000d503
or dword [ebp - 4], 0xffffffff
mov esi, dword [ebp + 0x14]
mov dword [esi], ebx
jmp 0x10004e4e
mov dword [ebp - 0x28], 0xfffffff7
lea ecx, [ebp - 0x68]
mov dword [ebp - 0x3c], 0xa1448afe
push 3
call fcn.1000b34a
mov dword [ebp - 4], 2
mov dword [ebp - 0x3c], 0x1a2a
cmp dword [ebp - 0x3c], 0x868
jge 0x10004d4f
lea eax, [ebp - 0x5c]
push eax
lea eax, [ebp - 0x54]
push eax
push str._lld__lld_n
call fcn.1004aa2b
add esp, 0xc
lea ecx, [ebp - 0x74]
push dword [ebp - 0x54]
call fcn.1000b400
mov eax, dword [ebp - 0x50]
xorps xmm0, xmm0
movlpd qword [ebp - 0x34], xmm0
mov dword [ebp - 0x3c], ebx
cmp eax, ebx
jl 0x10004c6b
jg 0x10004c12
cmp dword [ebp - 0x54], ebx
jbe 0x10004c6b
mov eax, dword [ebp - 0x30]
mov edi, dword [ebp - 0x74]
mov ecx, edi
mov dword [ebp - 0x20], eax
mov eax, dword [ebp - 0x34]
mov dword [ebp - 0x38], ecx
mov dword [ebp - 0x1c], eax
push ecx
push 0x1006b384
call fcn.1004aa2b
mov eax, dword [ebp - 0x1c]
pop ecx
pop ecx
mov ecx, dword [ebp - 0x38]
add eax, dword [ecx]
mov dword [ebp - 0x1c], eax
mov eax, dword [ebp - 0x20]
adc eax, dword [ecx + 4]
add ecx, 8
mov dword [ebp - 0x20], eax
mov eax, dword [ebp - 0x3c]
inc eax
mov dword [ebp - 0x38], ecx
mov dword [ebp - 0x3c], eax
cdq
mov dword [ebp - 0x30], eax
mov eax, dword [ebp - 0x50]
cmp edx, eax
jl 0x10004c26
jg 0x10004c7a
mov edx, dword [ebp - 0x30]
cmp edx, dword [ebp - 0x54]
jb 0x10004c26
jmp 0x10004c7a
mov ecx, dword [ebp - 0x30]
mov edi, dword [ebp - 0x74]
mov dword [ebp - 0x20], ecx
mov ecx, dword [ebp - 0x34]
mov dword [ebp - 0x1c], ecx
mov ecx, ebx
mov dword [ebp - 0x3c], ecx
cmp eax, ebx
jl 0x10004d30
jg 0x10004c92
cmp dword [ebp - 0x54], ebx
jbe 0x10004d30
mov esi, dword [ebp - 0x50]
mov eax, dword [ebp - 0x3c]
mov ecx, dword [edi + ecx*8]
mov edx, ecx
sub edx, dword [ebp - 0x1c]
mov eax, dword [edi + eax*8 + 4]
mov dword [ebp - 0x30], eax
sbb eax, dword [ebp - 0x20]
mov dword [ebp - 0x24], eax
mov eax, dword [ebp - 0x5c]
add edx, eax
mov dword [ebp - 0x38], edx
mov edx, dword [ebp - 0x58]
adc dword [ebp - 0x24], edx
cmp dword [ebp - 0x24], ebx
jg 0x10004cd2
jl 0x10004cc8
cmp dword [ebp - 0x38], 1
jae 0x10004cd2
mov dword [ebp - 0x38], 1
mov dword [ebp - 0x24], ebx
sub eax, dword [ebp - 0x54]
sbb edx, esi
add eax, 1
adc edx, ebx
cmp edx, dword [ebp - 0x30]
jl 0x10004cec
jg 0x10004ce7
cmp eax, ecx
jbe 0x10004cec
mov edx, dword [ebp - 0x30]
mov eax, ecx
sub ecx, eax
mov eax, dword [ebp - 0x30]
sbb eax, edx
add ecx, dword [ebp - 0x38]
adc eax, dword [ebp - 0x24]
sub ecx, 1
sbb eax, ebx
push eax
push ecx
push str._lld
call fcn.1004ad2c
mov ecx, dword [ebp - 0x3c]
add esp, 0xc
mov esi, dword [ebp - 0x50]
inc ecx
mov eax, ecx
mov dword [ebp - 0x3c], ecx
cdq
cmp edx, esi
jl 0x10004c95
jg 0x10004d2d
cmp eax, dword [ebp - 0x54]
jb 0x10004c95
mov esi, dword [ebp + 0x14]
push 0x1006a925
call fcn.1004af46
pop ecx
test edi, edi
je 0x10004d4f
push edi
call fcn.1004aef9
pop ecx
mov dword [ebp - 0x74], ebx
mov dword [ebp - 0x70], ebx
mov dword [ebp - 0x6c], ebx
mov dword [ebp - 0x1c], ebx
jmp 0x10004d62
mov eax, dword [ebp - 0x1c]
mov dword [ebp + eax*4 - 0x48], 0xfffffff9
inc dword [ebp - 0x1c]
cmp dword [ebp - 0x1c], 1
jl 0x10004d54
mov dword [ebp - 0x1c], ebx
jmp 0x10004d7d
mov ecx, dword [ebp - 0x1c]
mov eax, dword [ebp - 0x68]
mov dword [eax + ecx*4], 0x46b3257b
inc dword [ebp - 0x1c]
cmp dword [ebp - 0x1c], 3
jl 0x10004d6d
mov eax, dword [esi]
xor ecx, ecx
mov eax, dword [esi]
mov eax, dword [esi]
mov edi, dword [ebp + 0x20]
mov eax, dword [edi]
mov eax, dword [esi]
mov eax, dword [esi]
cmp eax, 1
mov eax, dword [esi]
sete cl
xor edx, edx
cmp ecx, eax
mov eax, dword [ebp + 0x10]
setg dl
xor ecx, ecx
mov eax, dword [eax]
cmp edx, eax
setge cl
mov dword [ebp - 0x28], ecx
cmp dword [ebp - 0x28], ebx
jne 0x10004dc5
mov eax, dword [ebp - 0x40]
mov eax, dword [eax]
cmp dword [eax + 0xc], ebx
jne 0x10004dc5
mov eax, ebx
jmp 0x10004dc8
xor eax, eax
inc eax
mov ecx, dword [ebp + 0x2c]
mov edx, dword [ebp + 0x10]
push 1
mov dword [ecx], eax
mov eax, dword [esi]
mov eax, dword [ebp - 0x28]
mov eax, dword [edx]
mov ecx, dword [edi]
mov eax, dword [edi]
sub ecx, eax
mov eax, dword [edx]
xor edx, edx
add eax, ecx
mov dword [ebp - 0x3c], eax
mov eax, dword [ebp - 0x44]
mov ecx, dword [eax]
mov eax, dword [ebp - 0x3c]
cmp eax, ecx
mov ecx, dword [ebp + 0x24]
setle dl
mov dword [ecx], edx
lea edx, [ebp - 0x28]
mov eax, dword [esi]
mov eax, dword [edi]
mov eax, dword [ebp - 0x48]
mov eax, dword [esi]
mov eax, dword [edi]
mov eax, dword [edi]
mov eax, dword [ecx]
xor ecx, ecx
mov eax, dword [ebp + 0x10]
mov eax, dword [eax]
test eax, eax
setne cl
xor eax, eax
cmp ecx, 0xffffffff
mov ecx, dword [ebp + 0x18]
setl al
mov dword [ecx], eax
lea eax, [ebp - 0x68]
push eax
call fcn.10002859
or dword [ebp - 4], 0xffffffff
cmp dword [ebp - 0x68], 0
pop ecx
pop ecx
je 0x10004e4c
push dword [ebp - 0x68]
call fcn.1004aef9
pop ecx
mov dword [ebp - 0x68], ebx
mov dword [ebp - 0x64], ebx
mov dword [ebp - 0x60], ebx
inc dword [esi]
cmp dword [esi], 3
jle 0x10004ba6
jmp 0x10004e7d
mov byte [ebp - 0x15], bl
cmp byte [ebp - 0x15], bl
je 0x10004e7d
push 0x68b
push 0x699
push ebx
push ebx
push 0x162
push 0x1455
call dword [sym.imp.USER32.dll_ToUnicode]
mov ecx, dword [ebp - 0xc]
pop edi
pop esi
mov dword fs:[0], ecx
pop ebx
mov esp, ebp
pop ebp
ret