Function at 0x1405620
Capabilities:
Encode data using xor

Disassembly:
push ebp
mov ebp, esp
push 0xffffffffffffffff
push 0x14481a0
mov eax, dword fs:[0]
push eax
mov dword fs:[0], esp
sub esp, 0x30
push 0x4580a35
push 0x50
call fcn.01424c76
add esp, 8
mov dword [ebp - 0x14], eax
test eax, eax
je 0x1405aff
lea ecx, [eax + 0x38]
mov dword [eax + 0x38], 0
mov dword [eax + 0x3c], 0
mov dl, 0x57
mov dword [eax + 0x40], 0
add eax, 0x44
push esi
mov esi, dword [ebp + 0xc]
mov dword [ebp - 0x38], ecx
mov ecx, 0x44
mov dword [ebp - 0x28], eax
mov dword [eax], 0
mov dword [eax + 4], 0
mov dword [eax + 8], 0
push edi
mov edi, dword [ebp + 8]
cmp esi, ecx
jbe 0x14056b1
nop dword [eax]
xor byte [ecx + edi], dl
lea eax, [ecx + edi]
mov al, byte [eax]
inc ecx
add al, 0x57
add dl, al
cmp ecx, esi
jb 0x14056a0
lea ecx, [edi + 0x44]
cmp ecx, edi
jb 0x1405ae2
lea edx, [edi + esi]
lea eax, [ecx + 0x18]
cmp eax, edx
jae 0x1405ae2
mov esi, dword [ebp - 0x14]
movups xmm0, xmmword [ecx]
movups xmmword [esi], xmm0
movq xmm0, qword [ecx + 0x10]
movq qword [esi + 0x10], xmm0
xor dword [esi + 8], 0x7a32bc85
xor dword [esi + 0xc], 0x49c042d1
add dword [esi + 0x10], 0xfffffff4
xor dword [esi + 0x14], 0x872c3d47
mov dword [esi + 0x18], 0
mov dword [esi + 0x1c], 0
mov dword [esi + 0x20], 0
mov dword [esi + 0x24], 0
mov dword [esi + 0x28], 0
mov dword [esi + 0x2c], 0
lea esi, [edi + 0x5c]
mov dword [ebp - 0x30], esi
cmp esi, edi
jb 0x1405ae2
mov eax, dword [ebp - 0x14]
movzx eax, word [eax + 4]
lea eax, [eax + eax*4]
lea eax, [esi + eax*4]
cmp eax, edx
jae 0x1405ae2
xor eax, eax
mov dword [ebp - 0x1c], eax
nop dword [eax + eax]
movzx eax, ax
lea eax, [eax + eax*4]
mov edi, dword [esi + eax*4]
lea ecx, [esi + eax*4]
mov eax, dword [ebp + 0x10]
mov esi, dword [ecx + 4]
mov dword [ebp - 0x20], ecx
cmp edi, eax
jb 0x1405ae2
add eax, dword [ebp + 0x14]
lea edx, [esi + edi]
mov dword [ebp - 0x34], edx
cmp edx, eax
jae 0x1405ae2
mov edx, dword [ecx + 8]
cmp esi, edx
jbe 0x140579e
mov eax, esi
sub eax, edx
push eax
lea eax, [edx + edi]
push 0
push eax
call fcn.014277d0
mov ecx, dword [ebp - 0x20]
add esp, 0xc
mov edx, dword [ecx + 8]
mov eax, dword [ecx + 0xc]
add eax, dword [ebp + 8]
push edx
push eax
push edi
call fcn.01427250
add esp, 0xc
cmp word [ebp - 0x1c], 0
jne 0x14057c1
mov eax, dword [ebp - 0x14]
mov dword [eax + 0x20], edi
mov dword [eax + 0x24], esi
jmp 0x1405836
cmp esi, 0x10000
jbe 0x1405833
push 0xa
push 0x44498cc
push esi
push edi
call fcn.01406520
add esp, 0x10
test eax, eax
je 0x1405828
push 9
push 0x44498d8
push esi
push edi
call fcn.01406520
add esp, 0x10
test eax, eax
je 0x1405828
push 0x24
push str.Microsoft_Visual_C_Runtime_Library
push esi
push edi
call fcn.01406520
add esp, 0x10
test eax, eax
je 0x1405833
push 0x24
push str.JanFebMarAprMayJunJulAugSepOctNovDec
push esi
push edi
call fcn.01406520
add esp, 0x10
test eax, eax
mov eax, dword [ebp - 0x14]
je 0x1405836
mov dword [eax + 0x30], edi
mov dword [eax + 0x34], esi
jmp 0x1405836
mov eax, dword [ebp - 0x14]
mov dword [eax + 0x28], edi
mov dword [eax + 0x2c], esi
jmp 0x1405836
mov eax, dword [ebp - 0x14]
mov ecx, dword [eax + 0x1c]
mov edx, dword [eax + 0xc]
lea eax, [ecx + edx]
cmp eax, dword [ebp - 0x34]
jae 0x1405851
sub esi, edx
lea ecx, [esi + edi]
mov esi, dword [ebp - 0x14]
mov dword [esi + 0x1c], ecx
jmp 0x1405854
mov esi, dword [ebp - 0x14]
mov eax, dword [ebp - 0x20]
cmp dword [eax + 0x10], 0
je 0x1405863
mov eax, dword [eax + 0xc]
mov dword [esi + 0x18], eax
mov eax, dword [ebp - 0x1c]
inc eax
cmp ax, word [esi + 4]
mov esi, dword [ebp - 0x30]
mov dword [ebp - 0x1c], eax
jbe 0x1405750
mov esi, dword [ebp + 0x10]
cmp edx, esi
jb 0x1405ae2
mov edi, dword [ebp + 0x14]
lea eax, [edx + ecx]
add edi, esi
mov dword [ebp - 0x34], edi
cmp eax, edi
jae 0x1405ae2
mov edx, dword [ebp - 0x14]
mov ecx, dword [edx + 0x14]
cmp ecx, esi
jb 0x1405ae2
lea eax, [ecx + 0x14]
mov dword [ebp - 0x24], eax
cmp eax, edi
jae 0x1405ae2
mov ecx, dword [ecx + 0xc]
test ecx, ecx
je 0x1405ad0
nop dword [eax]
mov eax, dword [edx + 0xc]
add eax, ecx
xor edx, edx
mov dword [ebp - 0x18], eax
lea ecx, [eax + 1]
nop dword [eax]
cmp eax, esi
jb 0x1405ae2
cmp ecx, edi
jae 0x1405ae2
cmp byte [eax], 0
je 0x14058ed
inc edx
inc eax
inc ecx
cmp edx, 0x40
jb 0x14058d0
push dword [ebp - 0x18]
call dword [sym.imp.KERNEL32.dll_LoadLibraryA]
mov dword [ebp - 0x1c], eax
test eax, eax
je 0x1405ae2
mov edx, dword [ebp - 0x38]
mov ecx, dword [edx + 4]
cmp ecx, dword [edx + 8]
je 0x1405914
mov dword [ecx], eax
add dword [edx + 4], 4
jmp 0x1405920
lea eax, [ebp - 0x1c]
push eax
push ecx
mov ecx, edx
call fcn.014035f0
mov ecx, dword [ebp - 0x24]
mov edx, dword [ebp - 0x14]
mov ecx, dword [ecx - 4]
add ecx, dword [edx + 0xc]
mov dword [ebp - 0x20], ecx
cmp ecx, esi
jb 0x1405ae2
lea eax, [ecx + 4]
mov dword [ebp - 0x30], eax
cmp eax, edi
jae 0x1405ae2
mov esi, dword [ecx]
test esi, esi
je 0x1405ab1
mov eax, dword [ebp + 0x10]
mov byte [ebp - 0xd], 0
test esi, esi
jns 0x1405967
and esi, 0x7fffffff
mov al, 1
mov dword [ebp - 0x2c], esi
jmp 0x14059b9
mov ecx, dword [edx + 0xc]
add ecx, esi
cmp ecx, eax
jb 0x1405ae2
lea eax, [ecx + 4]
cmp eax, edi
jae 0x1405ae2
lea esi, [ecx + 2]
xor eax, eax
mov dword [ebp - 0x2c], esi
lea edi, [ecx + 3]
nop word [eax + eax]
lea edx, [esi + eax]
cmp edx, dword [ebp + 0x10]
jb 0x1405ae2
lea ecx, [edi + eax]
cmp ecx, dword [ebp - 0x34]
jae 0x1405ae2
cmp byte [edx], 0
je 0x14059b3
inc eax
cmp eax, 0x40
jb 0x1405990
mov al, byte [ebp - 0xd]
mov ecx, dword [ebp - 0x20]
test esi, esi
je 0x1405ae2
test al, al
jne 0x1405a78
mov eax, dword [ebp - 0x28]
mov dword [ebp - 0x3c], ecx
mov edi, dword [eax + 4]
cmp edi, dword [eax + 8]
je 0x1405a60
mov edx, dword [ebp - 0x18]
mov eax, dword [ebp - 0x1c]
mov dword [edi], ecx
lea ecx, [edi + 8]
mov dword [edi + 4], eax
lea eax, [edx + 1]
mov dword [ebp - 0x3c], edi
mov dword [ecx], 0
mov dword [ecx + 0x10], 0
mov dword [ecx + 0x14], 0xf
mov dword [ebp - 0x2c], eax
mov al, byte [edx]
inc edx
test al, al
jne 0x1405a06
sub edx, dword [ebp - 0x2c]
push edx
push dword [ebp - 0x18]
call fcn.01405d00
lea ecx, [edi + 0x20]
mov dword [ebp - 4], 0
mov edx, esi
mov dword [ecx], 0
mov dword [ecx + 0x10], 0
mov dword [ecx + 0x14], 0xf
lea edi, [edx + 1]
nop dword [eax]
mov al, byte [edx]
inc edx
test al, al
jne 0x1405a40
sub edx, edi
push edx
push esi
call fcn.01405d00
mov eax, dword [ebp - 0x28]
mov dword [ebp - 4], 0xffffffff
add dword [eax + 4], 0x38
jmp 0x1405a78
lea ecx, [ebp - 0x2c]
push ecx
lea ecx, [ebp - 0x18]
push ecx
lea ecx, [ebp - 0x1c]
push ecx
lea ecx, [ebp - 0x3c]
push ecx
push edi
mov ecx, eax
call fcn.01404c80
push esi
push dword [ebp - 0x1c]
call dword [sym.imp.KERNEL32.dll_GetProcAddress]
mov ecx, dword [ebp - 0x20]
mov edx, dword [ebp - 0x30]
add edx, 4
mov dword [ebp - 0x30], edx
mov dword [ecx], eax
add ecx, 4
mov eax, dword [ebp + 0x10]
mov dword [ebp - 0x20], ecx
cmp ecx, eax
jb 0x1405ae2
mov edi, dword [ebp - 0x34]
cmp edx, edi
jae 0x1405ae2
mov esi, dword [ecx]
mov edx, dword [ebp - 0x14]
test esi, esi
jne 0x1405952
mov eax, dword [ebp - 0x24]
mov esi, dword [ebp + 0x10]
cmp eax, esi
jb 0x1405ae2
lea ecx, [eax + 0x14]
mov dword [ebp - 0x24], ecx
cmp ecx, edi
jae 0x1405ae2
mov ecx, dword [eax + 0xc]
test ecx, ecx
jne 0x14058c0
pop edi
mov eax, edx
pop esi
mov ecx, dword [ebp - 0xc]
mov dword fs:[0], ecx
mov esp, ebp
pop ebp
ret
push dword [ebp - 0x14]
call fcn.01405380
add esp, 4
xor eax, eax
pop edi
pop esi
mov ecx, dword [ebp - 0xc]
mov dword fs:[0], ecx
mov esp, ebp
pop ebp
ret
mov ecx, dword [ebp - 0xc]
xor eax, eax
mov dword fs:[0], ecx
mov esp, ebp
pop ebp
ret