Function at 0x140003560
Capabilities:
Encode data using xor
Resolve function by parsing pe exports

Disassembly:
add byte [rax], al
call qword [rdi + 0x18]
mov rbx, rax
mov dword [rsp + 0x158], 0x20000
add byte [rdx], al
add byte [rdx + 0x20000], bh
mov rax, qword [rdi + 0x50]
jmp 0x140003425
mov rax, qword [rdi + 0x50]
mov edx, dword [rax + 0x60]
mov ecx, dword [rax + 0x108]
call qword [rdi + 0x18]
mov r14, rax
invalid
test r14, r14
je 0x14000374f
mov rcx, r14
mov edx, dword [rsp + 0x158]
call fcn.140002a9b
mov ecx, 5
mov rdx, r14
mov r8d, dword [rsp + 0x158]
lea r9, [rsp + 0x158]
add bh, bh
push rdi
invalid
test eax, eax
je 0x14000347c
mov edx, dword [rsp + 0x158]
add edx, edx
ror byte [rcx + 0x1582494], cl
add byte [rax], al
je 0x14000341e
jmp 0x140003418
mov rax, qword [rdi + 0x50]
mov edx, 0xc3
mov ecx, dword [rax + 0x108]
call qword [rdi + 0x18]
mov rcx, rax
cmp dword [r14], 0
je 0x14000374f
mov r10, rcx
and r10, 0xf
mov edx, r10d
mov esi, edx
mov eax, edx
neg esi
and eax, 1
add esi, 0x10
adc cl, dl
out dx, al
movdqu xmm3, xmmword [0x1400057db]
movdqu xmm2, xmmword [0x1400057eb]
movdqu xmm1, xmmword [0x1400057fb]
psubw xmm2, xmm3
movdqu xmm0, xmmword [0x14000580b]
psubw xmm1, xmm3
movups xmmword [rsp + 0x90], xmm12
lea ebp, [rsi + 8]
movups xmmword [rsp + 0xa0], xmm13
movdqa xmm13, xmm0
movups xmmword [rsp + 0x70], xmm14
movdqa xmm14, xmm1
movups xmmword [rsp + 0x80], xmm15
movdqa xmm15, xmm2
mov qword [rsp + 0x58], r10
movdqa xmm12, xmm3
mov qword [rsp + 0x50], r15
mov r15, rcx
mov qword [rsp + 0x48], rdi
mov edi, eax
mov qword [rsp + 0x40], r13
mov r13, r14
mov r14d, edx
cmp qword [r13 + 0x40], 0
je 0x14000370d
mov rcx, r15
mov edx, 8
call fcn.140002a9b
mov r11, qword [r13 + 0x40]
xor r10d, r10d
xor r9d, r9d
movzx eax, word [r11 + r9*2]
test eax, eax
je 0x14000356e
inc r10d
mov word [r15 + r9*2], ax
inc r9
cmp r10d, 4
jb 0x140003554
mov rcx, r15
call fcn.1400017db
test eax, eax
je 0x140003660
jbe 0x140003660
cmp eax, 8
jb 0x140004760
test r14d, r14d
je 0x1400035de
test edi, edi
jne 0x140004760
cmp eax, ebp
jb 0x140004760
mov r10d, eax
xor r9d, r9d
sub r10d, esi
and r10d, 7
neg r10d
add r10d, eax
mov r11d, esi
test esi, esi
je 0x1400035f0
movzx ecx, word [r15 + r9*2]
cmp ecx, 0x41
jl 0x1400035cf
cmp ecx, 0x5a
lea edx, [rcx + 0x20]
cmovle ecx, edx
mov word [r15 + r9*2], cx
inc r9
cmp r9, r11
jb 0x1400035bc
jmp 0x1400035f0
mov r10d, eax
and r10d, 7
neg r10d
mov r11, qword [rsp + 0x58]
add r10d, eax
movsxd r10, r10d
pcmpeqd xmm4, xmm4
movdqu xmm1, xmmword [r15 + r11*2]
movdqa xmm0, xmm15
movdqa xmm5, xmm1
psubw xmm5, xmm12
pcmpgtw xmm0, xmm5
pcmpgtw xmm5, xmm14
por xmm0, xmm5
pxor xmm0, xmm4
pand xmm0, xmm13
paddw xmm1, xmm0
movdqu xmmword [r15 + r11*2], xmm1
add r11, 8
cmp r11, r10
jb 0x1400035f7
movsxd rax, eax
cmp r10, rax
jae 0x140003660
movzx r11d, word [r15 + r10*2]
cmp r11d, 0x41
jl 0x140003653
cmp r11d, 0x5a
lea r9d, [r11 + 0x20]
cmovle r11d, r9d
mov word [r15 + r10*2], r11w
inc r10
cmp r10, rax
jb 0x14000363c
mov rcx, r15
call fcn.1400017db
mov r11d, eax
xor r9d, r9d
test r11d, r11d
jbe 0x1400036c8
mov ecx, r11d
mov eax, 1
mov edx, dword [r12 + 8]
xor r10d, r10d
shr ecx, 1
je 0x1400036af
mov eax, ecx
imul r9d, edx
movzx ecx, word [r15 + r10*4]
add r9d, ecx
imul r9d, edx
movzx r8d, word [r15 + r10*4 + 2]
inc r10
add r9d, r8d
cmp r10, rax
jb 0x140003689
lea eax, [r10 + r10 + 1]
lea r10d, [rax - 1]
cmp r10d, r11d
jae 0x1400036c8
imul edx, r9d
movsxd rax, eax
movzx r9d, word [r15 + rax*2 - 2]
add r9d, edx
cmp r9d, dword [r12 + 0xb0]
jne 0x1400036d8
mov byte [rbx + 1], 1
jmp 0x14000370d
cmp r9d, dword [r12 + 0x14]
jne 0x1400036e5
mov byte [rbx + 5], 1
jmp 0x14000370d
cmp r9d, dword [r12 + 0x118]
jne 0x1400036f5
mov byte [rbx + 6], 1
jmp 0x14000370d
cmp r9d, dword [r12 + 0x58]
jne 0x140003702
mov byte [rbx + 7], 1
jmp 0x14000370d
cmp r9d, dword [r12 + 4]
jne 0x14000370d
mov byte [rbx + 8], 1
mov r9d, dword [r13]
add r13, r9
cmp dword [r13], 0
jne 0x140003532
movups xmm12, xmmword [rsp + 0x90]
movups xmm13, xmmword [rsp + 0xa0]
movups xmm14, xmmword [rsp + 0x70]
movups xmm15, xmmword [rsp + 0x80]
mov r15, qword [rsp + 0x50]
mov rdi, qword [rsp + 0x48]
mov r13, qword [rsp + 0x40]
movabs rax, 0xff000000ff00
test qword [rbx], rax
je 0x140003799
xor bpl, bpl
mov edx, 8
lea rcx, [rsp + 0x170]
mov rsi, qword [rdi + 0x30]
call fcn.140002a9b
xor ecx, ecx
lea rdx, [rsp + 0x170]
mov dword [rdx], 0xff54cbe0
mov dword [rdx + 4], 0xffffffff
call rsi
inc bpl
cmp bpl, 0x1f
jl 0x140003761
xor ecx, ecx
call qword [rdi + 0x28]
mov rbp, rax
movzx eax, word [rbx + 6]
test eax, eax
je 0x1400046f8
mov rcx, r15
mov r8, r12
mov edx, dword [r12 + 0xe0]
mov qword [rsp + 0x60], rdi
call fcn.140001c8b
mov qword [rsp + 0x48], rax
mov rcx, r15
mov r8, r12
mov edx, dword [r12 + 0xcc]
call fcn.140001c8b
mov qword [rsp + 0x50], rax
mov rcx, r13
mov r8, r12
mov edx, dword [r12 + 0xf4]
call fcn.140001c8b
mov qword [rsp + 0x58], rax
xor esi, esi
mov rax, qword [rdi + 0x50]
mov edx, dword [rax + 0x60]
mov ecx, dword [rax + 0x108]
call qword [rdi + 0x18]
mov rbx, rax
xor ecx, ecx
mov rdx, rbx
mov r8d, 0x104
call qword [rdi + 0xa8]
mov rax, rsp
mov rcx, rbx
mov edx, 0x80000000
mov r8d, 1
xor r9d, r9d
mov dword [rax + 0x20], 3
mov dword [rax + 0x28], 0x80
mov qword [rax + 0x30], 0
call qword [rdi + 0xb0]
mov r14, rax
cmp r14, 0xffffffffffffffff
je 0x1400038c5
mov rcx, r14
xor edx, edx
call qword [rdi + 0xd8]
mov ebp, eax
test ebp, ebp
je 0x1400038bc
mov rax, qword [rdi + 0x50]
mov rdx, rbp
mov ecx, dword [rax + 0x108]
call qword [rdi + 0x18]
mov rbx, rax
mov rax, rsp
mov rcx, r14
mov dword [rsp + 0x138], 0
mov rdx, rbx
mov r8d, ebp
lea r9, [rsp + 0x138]
mov qword [rax + 0x20], 0
call qword [rdi + 0xc0]
test eax, eax
je 0x1400038bc
mov rcx, r14
mov rsi, rbx
call qword [rdi + reloc.OLEAUT32.dll_VariantTimeToSystemTime]
jmp 0x1400038c5
mov rcx, r14
call qword [rdi + reloc.OLEAUT32.dll_VariantTimeToSystemTime]
mov rcx, r13
mov r8, r12
mov edx, dword [r12 + 0x38]
call fcn.140001c8b
mov rbx, rax
movsxd r15, dword [r12 + 0x2c]
xor r14d, r14d
mov ebp, dword [r12 + 0x104]
xor ebp, dword [r12]
mov eax, dword [r12 + 0x3c]
mov r10d, dword [r12 + 0x94]
mov qword [rsp + 0x160], r14
mov qword [rsp + 0x130], r14
mov r14d, dword [rsi + r15]
mov dword [rsp + 0xc8], eax
mov dword [rsp + 0xc0], r10d
cmp r14d, ebp
mov ebp, dword [rsi + r15 + 4]
jne 0x140003a38
mov r8d, 4
lea rdx, [r12 + 0x3c]
lea rcx, [rsp + 0x150]
call fcn.140001bdb
lea rax, [rsp + 0x154]
mov byte [rax], 0xd
lea r13, [rsi + r15 + 8]
mov byte [rax + 1], 0xa
xor r14d, r14d
mov al, byte [rsp + 0x150]
mov rsi, r14
mov r10b, byte [r13 + rsi + 1]
cmp r10b, al
je 0x140003975
cmp al, 0x3f
jne 0x140004768
mov r10b, byte [r13 + rsi + 2]
mov r11b, byte [rsp + 0x151]
cmp r10b, r11b
je 0x140003991
cmp r11b, 0x3f
jne 0x140004768
mov r10b, byte [r13 + rsi + 3]
mov r11b, byte [rsp + 0x152]
cmp r10b, r11b
je 0x1400039ad
cmp r11b, 0x3f
jne 0x140004768
mov r10b, byte [r13 + rsi + 4]
mov r11b, byte [rsp + 0x153]
cmp r10b, r11b
je 0x1400039c9
cmp r11b, 0x3f
jne 0x140004768
mov r10b, byte [r13 + rsi + 5]
mov r11b, byte [rsp + 0x154]
cmp r10b, r11b
je 0x1400039e5
cmp r11b, 0x3f
jne 0x140004768
mov r10b, byte [r13 + rsi + 6]
mov r11b, byte [rsp + 0x155]
cmp r10b, r11b
je 0x140003a01
cmp r11b, 0x3f
jne 0x140004768
lea r13, [r13 + rsi + 1]
test r13, r13
je 0x140003ed0
mov rax, rsp
mov rcx, r13
mov edx, ebp
lea r8, [rsp + 0x130]
mov r9, rdi
mov qword [rax + 0x20], r12
call fcn.14000181b
test al, al
je 0x140003959
jmp 0x140003ed0
mov rax, qword [rdi + 0x50]
test r14d, r14d
jne 0x140003a46
mov edx, dword [rax + 0x60]
jmp 0x140003a49
mov edx, r14d
mov ecx, dword [rax + 0x108]
call qword [rdi + 0x18]
mov r13, rax
mov rcx, r13
lea rdx, [rsi + r15 + 8]
mov r8d, r14d
call fcn.140001bdb
test r14d, r14d
jbe 0x140003b1e
lea eax, [r14 + 3]
sar eax, 1
shr eax, 0x1e
lea esi, [rax + r14 + 3]
sar esi, 2
movsxd rax, esi
cmp rax, 4
jl 0x1400049e2
mov r10, r13
and r10, 0xf
test r10d, r10d
je 0x140003ab0
test r10d, 3
jne 0x1400049e2
neg r10d
add r10d, 0x10
shr r10d, 2
mov r11d, r10d
lea r14, [r11 + 4]
cmp rax, r14
jl 0x1400049e2
mov r14d, esi
sub r14d, r10d
and r14d, 3
sub esi, r14d
movsxd rsi, esi
test r10d, r10d
mov r10d, 0
jbe 0x140003ae8
xor dword [r13 + r10*4], ebp
inc r10
cmp r10, r11
jb 0x140003adb
movd xmm0, ebp
pshufd xmm0, xmm0, 0
movdqu xmm1, xmmword [r13 + r11*4]
pxor xmm1, xmm0
movdqu xmmword [r13 + r11*4], xmm1
add r11, 4
cmp r11, rsi
jb 0x140003af1
cmp rsi, rax
jae 0x140003b1e
xor dword [r13 + rsi*4], ebp
inc rsi
cmp rsi, rax
jb 0x140003b11
mov rax, qword [rdi + 0x50]
mov edx, dword [rax + 0x60]
mov ecx, dword [rax + 0x108]
call qword [rdi + 0x18]
mov qword [rsp + 0xb8], rax
cmp byte [r13], 0
je 0x140003b67
mov rbp, rax
xor eax, eax
inc rax
movsx edx, byte [r13 + rax*2 - 2]
mov word [rbp + rax*4 - 4], dx
movsx edx, byte [r13 + rax*2 - 1]
test edx, edx
je 0x140003b67
mov word [rbp + rax*4 - 2], dx
cmp byte [r13 + rax*2], 0
jne 0x140003b42
mov rax, qword [rdi + 0x50]
mov edx, dword [rax + 0x60]
mov ecx, dword [rax + 0x108]
call qword [rdi + 0x18]
mov rsi, rax
mov ecx, 0x104
mov rdx, rsi
call qword [rdi + 0x88]
mov rax, qword [rdi + 0x50]
mov edx, 0x2e
mov ecx, dword [rax + 0x108]
call qword [rdi + 0x18]
mov rbp, rax
mov eax, 0x25
mov r10d, 0x78
mov word [rsp + 0x128], ax
xor r11d, r11d
mov word [rsp + 0x12a], r10w
lea rcx, [rsp + 0xd8]
mov word [rcx + 0x54], r11w
mov edx, 8
mov r13, qword [rdi + 0x38]
call fcn.140002a9b
lea rcx, [rsp + 0xd8]
call r13
mov rcx, rbp
lea rdx, [rsp + 0x128]
mov r8d, dword [rdx - 0x50]
call qword [rdi + LoadRegTypeLib]
xor r13d, r13d
movzx eax, word [rsi]
test eax, eax
je 0x140003c21
xor eax, eax
add eax, 2
lea r13d, [rax - 1]
movzx r10d, word [rsi + r13*2]
test r10d, r10d
je 0x140003c21
mov r13d, eax
movzx r10d, word [rsi + rax*2]
test r10d, r10d
jne 0x140003c03
xor eax, eax
lea r10d, [r13 - 1]
movzx r11d, word [rsi + r10*2]
cmp r11d, 0x5c
je 0x140003c44
mov r13d, r13d
mov eax, 0x5c
mov word [rsi + r13*2], ax
mov eax, 1
test rbp, rbp
je 0x1400049d3
xor r10d, r10d
add r13d, eax
movzx eax, word [rbp]
test eax, eax
je 0x140003c9d
xor eax, eax
inc rax
movzx r15d, word [rbp + rax*4 - 4]
lea edx, [r13 + rax*2]
lea r14d, [rdx - 2]
mov word [rsi + r14*2], r15w
lea r11d, [rax + rax]
movzx r14d, word [rbp + rax*4 - 2]
lea r10d, [rax + rax - 1]
test r14d, r14d
je 0x140003c9d
dec edx
mov r10d, r11d
mov word [rsi + rdx*2], r14w
movzx r11d, word [rbp + rax*4]
test r11d, r11d
jne 0x140003c5d
add r13d, r10d
xor eax, eax
mov word [rsi + r13*2], ax
mov rcx, qword [rsp + 0xb8]
call fcn.1400017db
mov edx, eax
xor esi, esi
test edx, edx
jbe 0x140003d1a
mov ebp, edx
mov r11d, 1
mov eax, dword [r12 + 8]
xor r10d, r10d
shr ebp, 1
je 0x140003cfc
mov r14, qword [rsp + 0xb8]
imul esi, eax
movzx r11d, word [r14 + r10*4]
add esi, r11d
imul esi, eax
movzx r13d, word [r14 + r10*4 + 2]
inc r10
add esi, r13d
cmp r10, rbp
jb 0x140003cd8
lea r11d, [r10 + r10 + 1]
lea ebp, [r11 - 1]
cmp ebp, edx
jae 0x140003d1a
imul eax, esi
movsxd r11, r11d
mov rdx, qword [rsp + 0xb8]
movzx esi, word [rdx + r11*2 - 2]
add esi, eax
mov rax, qword [rdi + 0x50]
mov edx, dword [rax + 0x60]
mov ecx, dword [rax + 0x108]
call qword [rdi + 0x18]
mov r14, rax
mov rbp, rsp
mov rcx, rdi
mov r8, r14
lea rdx, [rsp + 0x48]
mov r9d, esi
lea rax, [rsp + 0xe4]
mov dword [rax], 0
mov qword [rbp + 0x28], r12
mov qword [rbp + 0x20], rax
call fcn.1400023cb
mov rax, rsp
mov rcx, r14
mov edx, 0x80000000
mov r8d, 1
xor r9d, r9d
mov dword [rax + 0x20], 3
mov dword [rax + 0x28], 0x80
mov qword [rax + 0x30], 0
call qword [rdi + 0xb0]
mov r15, rax
cmp r15, 0xffffffffffffffff
je 0x14000446a
mov rcx, r15
xor edx, edx
call qword [rdi + 0xd8]
mov ebp, eax
test ebp, ebp
je 0x140004461
mov r10, qword [rdi + 0x50]
mov rdx, rbp
mov ecx, dword [r10 + 0x108]
call qword [rdi + 0x18]
mov r13, rax
mov r10, rsp
mov rcx, r15
mov dword [rsp + 0xe0], 0
mov rdx, r13
mov r8d, ebp
lea r9, [rsp + 0xe0]
mov qword [r10 + 0x20], 0
call qword [rdi + 0xc0]
test eax, eax
je 0x140004461
mov rcx, r15
call qword [rdi + reloc.OLEAUT32.dll_VariantTimeToSystemTime]
mov r11d, dword [rsp + 0xe4]
mov esi, r11d
mov r10d, r11d
mov byte [rsp + 0x43], r11b
shr esi, 0x18
shr r10d, 0x10
shr r11d, 8
mov byte [rsp + 0x40], sil
mov byte [rsp + 0x41], r10b
mov byte [rsp + 0x42], r11b
xor r11d, r11d
test ebp, ebp
jbe 0x140003e91
mov esi, ebp
xor r10d, r10d
mov r15d, 1
shr esi, 1
je 0x140003e80
xor eax, eax
mov dl, byte [rsp + r11 + 0x40]
lea r15d, [r10 + r10]
inc r11d
cmp r11, 4
cmove r11, rax
xor byte [r15 + r13], dl
lea r15d, [r10 + r10 + 1]
inc r10d
mov cl, byte [rsp + r11 + 0x40]
inc r11d
cmp r11, 4
cmove r11, rax
xor byte [r15 + r13], cl
cmp r10d, esi
jb 0x140003e42
lea r15d, [r10 + r10 + 1]
dec r15d
cmp r15d, ebp
jae 0x140003e91
mov r11b, byte [rsp + r11 + 0x40]
xor byte [r15 + r13], r11b
mov qword [rsp + 0x160], r13
test r14, r14
je 0x140003eac
mov rcx, r14
call qword [rdi + 0x10]
mov rcx, r15
call qword [rdi + reloc.OLEAUT32.dll_VariantTimeToSystemTime]
mov rax, qword [rdi + 0x50]
mov edx, dword [rax + 0x60]
mov ecx, dword [rax + 0x108]
call qword [rdi + 0x18]
mov r13, rax
xor r14d, r14d
mov dword [rsp + 0x40], esi
mov qword [rsp + 0xd0], rbx
xor ebx, ebx
mov qword [rsp + 0xb0], r12
xor r12d, r12d
mov rsi, qword [rsp + 0xb8]
mov ebp, dword [rsp + 0xc8]
mov ebx, dword [r12 + 0x74]
mov qword [rsp + 0x148], 0
add rbx, rbp
mov rcx, rdi
mov rdx, rbx
lea r8, [rsp + 0x148]
lea r9, [rsp + 0xe8]
call fcn.140001eab
test eax, eax
jg 0x1400037ad
mov edx, 8
lea rcx, [rsp + 0x140]
mov rbp, qword [rdi + 0x30]
call fcn.140002a9b
xor ecx, ecx
lea rdx, [rsp + 0x140]
mov dword [rdx], 0xfe223f50
mov dword [rdx + 4], 0xffffffff
call rbp
jmp 0x14000470c
xor r10d, r10d
jmp 0x140003634
inc esi
cmp esi, 0x4ecfc7a
jb 0x140003963
jmp 0x140003ed0
inc r13d
xor eax, eax
mov word [rsi + r13*2], ax
jmp 0x140003ca7
xor esi, esi
jmp 0x140003b0c