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

Disassembly:
sub rsp, 8
mov rax, 0xffffffffffffffff
test rcx, rcx
je 0x1400036f7
test r8, r8
je 0x1400036f7
movups xmm0, xmmword [rcx]
xorps xmm4, xmm4
lea r10, [0x140144390]
mov r10d, dword [r10 + 4]
and r10d, 0x10000800
lea rax, [r8 + 0x10]
cmp edx, 0x100
je 0x140003570
cmp edx, 0xc0
je 0x140003450
cmp edx, 0x80
jne 0x1400036f0
mov edx, 9
cmp r10d, 0x10000000
je 0x140003350
movups xmmword [r8], xmm0
aeskeygenassist xmm1, xmm0, 1
call 0x140003727
aeskeygenassist xmm1, xmm0, 2
call 0x168ecb631
mov qword [rsp + 0x20], rcx
mov rcx, qword [rsp + 0x20]
call fcn.140003305
nop
add rsp, 0x28
ret
mov r14, qword [rcx + 0x30]
mov edx, 1
test dl, 1
jne 0x1400033bc
add dword [rbp + 0x69], esi
mov rcx, qword [rcx]
mov rbp, qword [rcx + 0x60]
test rbp, rbp
je 0x1400033b5
test r8d, r8d
je 0x140003345
movzx edi, word [rbp]
xor edx, edx
mov ebx, 0
test di, di
je 0x1400033a4
add rbp, 2
xor ebx, ebx
nop word cs:[rax + rax]
lea esi, [rdi - 0x41]
lea eax, [rdi + 0x20]
cmp si, 0x1a
cmovae eax, edi
movzx eax, ax
add ebx, eax
movzx edi, word [rbp]
add rbp, 2
test di, di
jne 0x140003385
cmp ebx, r8d
je 0x140003345
jmp 0x14000334e
mov edx, 2
jmp 0x14000334e
mov qword [rsp + 0x60], r9
mov r8d, dword [r9 + 0x54]
mov rcx, qword gs:[0x60]
mov rcx, qword [rcx + 0x18]
add rcx, 0x10
jmp 0x1400033f3
mov r12, qword [rcx + 0x30]
mov edx, 1
test dl, 1
jne 0x14000345c
mov rcx, qword [rcx]
mov rbp, qword [rcx + 0x60]
test rbp, rbp
je 0x140003455
test r8d, r8d
je 0x1400033e5
movzx esi, word [rbp]
xor edx, edx
mov edi, 0
test si, si
je 0x140003444
add rbp, 2
xor edi, edi
nop word cs:[rax + rax]
lea ebx, [rsi - 0x41]
lea eax, [rsi + 0x20]
cmp bx, 0x1a
cmovae eax, esi
movzx eax, ax
add edi, eax
movzx esi, word [rbp]
add rbp, 2
test si, si
jne 0x140003425
cmp edi, r8d
je 0x1400033e5
jmp 0x1400033ee
add byte [rax], al
add byte [rax], al
add byte [rdx + 2], bh
mov edx, 2
jmp 0x1400033ee
mov rsi, qword [rsp + 0x60]
mov edx, dword [rsi + 0x38]
mov rcx, r14
mov r8, rsi
call fcn.1400040e5
mov r15, rax
mov ecx, dword [rsi + 0xd4]
mov edx, 0x3f5
call rax
mov r13, rax
mov edx, dword [rsi + 0xf0]
mov rcx, r14
mov r8, rsi
call fcn.1400040e5
mov qword [r13 + 0x80], rax
mov edx, dword [rsi + 0x120]
mov rcx, r14
mov r8, rsi
call fcn.1400040e5
mov qword [r13 + 0x98], rax
mov edx, dword [rsi + 0x128]
mov rcx, r12
mov r8, rsi
call fcn.1400040e5
mov qword [r13], rax
mov qword [r13 + 0x48], r12
mov edx, dword [rsi + 0x114]
mov rcx, r14
mov r8, rsi
call fcn.1400040e5
mov qword [r13 + 0xb8], rax
mov edx, dword [rsi + 0x7c]
mov rcx, r14
mov r8, rsi
call fcn.1400040e5
mov qword [r13 + 0x28], rax
mov edx, dword [rsi + 0xfc]
mov rcx, r14
mov r8, rsi
call fcn.1400040e5
mov qword [r13 + 0x78], rax
mov edx, dword [rsi]
mov rcx, r14
mov r8, rsi
call fcn.1400040e5
mov qword [r13 + 0x40], rax
mov edx, dword [rsi + 0x50]
mov rcx, r12
mov r8, rsi
call fcn.1400040e5
mov qword [r13 + 0xa8], rax
mov edx, dword [rsi + 0x8c]
mov rcx, r14
mov r8, rsi
call fcn.1400040e5
mov qword [r13 + 0xd0], rax
mov edx, dword [rsi + 0xa4]
mov rcx, r12
mov r8, rsi
call fcn.1400040e5
mov qword [r13 + 0x68], rax
mov edx, dword [rsi + 0x10]
mov rcx, r14
mov r8, rsi
call fcn.1400040e5
mov qword [r13 + 0x50], rax
mov edx, dword [rsi + 0x24]
mov rcx, r14
push rsi
and al, 0x4c
mov ecx, esi
mov r8, rsi
call fcn.1400040e5
mov qword [r13 + 0xa0], rax
mov qword [r13 + 0xd8], r14
mov edx, dword [rsi + 0xc]
mov rcx, r14
mov r8, rsi
call fcn.1400040e5
mov qword [r13 + 0x58], rax
mov edx, dword [rsi + 0x4c]
mov rcx, r12
mov r12, rsi
mov r8, rsi
call fcn.1400040e5
mov qword [r13 + 0xc8], rax
mov edx, dword [rsi + 0x11c]
mov rcx, r14
mov r8, rsi
call fcn.1400040e5
mov qword [r13 + 0x88], rax
mov edx, dword [rsi + 0x80]
mov rcx, r14
mov r8, rsi
call fcn.1400040e5
mov qword [r13 + 0x70], rax
mov qword [r13 + 0x90], r15
mov edx, dword [rsi + 0xe4]
mov rcx, r14
mov r8, rsi
call fcn.1400040e5
mov qword [r13 + 0xb0], rax
mov qword [r13 + 0x38], rsi
mov ecx, dword [rsi + 0xd4]
mov edx, dword [rsi + 0xf4]
call qword [r13 + 0x90]
mov rsi, rax
mov rcx, r13
mov rdx, r12
mov r8, rax
call fcn.140004275
mov rax, qword [r13 + 0x38]
mov ecx, dword [rax + 0xd4]
mov edx, dword [rax + 0xf4]
call qword [r13 + 0x90]
mov rbx, rax
mov rcx, rsi
call fcn.1400056c5
test eax, eax
je 0x140003665
mov eax, eax
xor ecx, ecx
nop
movzx edx, word [rsi + rcx*2]
mov word [rbx + rcx*2], dx
inc rcx
cmp rax, rcx
jne 0x140003655
mov rcx, rbx
call qword [r13 + pe_nt_image_headers64]
mov rsi, rax
mov edx, dword [r12 + 0xb0]
mov rcx, rax
mov r8, r12
call fcn.1400040e5
mov qword [rsp + 0xe8], rax
mov edx, dword [r12 + 0xf8]
mov rcx, rsi
mov r8, r12
call fcn.1400040e5
mov qword [rsp + 0xd8], rax
mov edx, dword [r12 + 0x70]
mov rcx, rsi
mov r8, r12
call fcn.1400040e5
mov qword [rsp + 0xe0], rax
mov edx, dword [r12 + 0x44]
mov rcx, rsi
mov r8, r12
call fcn.1400040e5
mov qword [rsp + 0xb8], rax
mov edx, dword [r12 + 0xcc]
mov rcx, rsi
mov r8, r12
call fcn.1400040e5
mov qword [rsp + 0xf0], rax
mov edx, dword [r12 + 0xbc]
mov rcx, rsi
add byte [rax - 0x77], cl
int1
mov r8, r12
call fcn.1400040e5
mov qword [rsp + 0xd0], rax
mov edx, dword [r12 + 0xd0]
mov rcx, rsi
mov r8, r12
call fcn.1400040e5
mov qword [rsp + 0xc8], rax
mov edx, dword [r12 + 0x14]
mov rcx, rsi
mov r8, r12
call fcn.1400040e5
mov qword [rsp + 0xc0], rax
mov rax, qword [r13 + 0x38]
mov ecx, dword [rax + 0xd4]
mov edx, dword [rax + 0xf4]
call qword [r13 + 0x90]
mov rsi, rax
mov rcx, r13
mov rdx, r12
mov r8, rax
call fcn.1400043c5
mov rax, qword [r13 + 0x38]
mov ecx, dword [rax + 0xd4]
mov edx, dword [rax + 0xf4]
call qword [r13 + 0x90]
mov rbx, rax
mov rcx, rsi
call fcn.1400056c5
test eax, eax
je 0x1400037a5
mov eax, eax
xor ecx, ecx
nop dword [rax + rax]
movzx edx, word [rsi + rcx*2]
mov word [rbx + rcx*2], dx
inc rcx
cmp rax, rcx
jne 0x140003795
mov rcx, rbx
call qword [r13 + pe_nt_image_headers64]
mov r15, rax
mov edx, dword [r12 + 0x74]
mov rcx, rax
mov r8, r12
call fcn.1400040e5
mov qword [r13 + 0xc0], rax
mov edx, dword [r12 + 0x6c]
mov rcx, r15
mov r8, r12
call fcn.1400040e5
mov qword [r13 + 0x20], rax
mov edx, dword [r12 + 0xac]
mov rcx, r15
mov r8, r12
call fcn.1400040e5
mov qword [r13 + 0x18], rax
mov rax, qword [r13 + 0x38]
mov ecx, dword [rax + 0xd4]
mov edx, dword [rax + 0xf4]
call qword [r13 + 0x90]
mov rbp, rax
mov rcx, r13
mov rdx, rax
mov r8, r12
call fcn.140004495
cmp byte [rbp + 1], 0
jne 0x140003825
cmp byte [rbp + 5], 0
je 0x14000385d
mov ebx, 0x20
lea rsi, [rsp + 0x90]
nop dword [rax]
mov rdi, qword [r13 + 0x68]
mov edx, 8
mov rcx, rsi
call fcn.1400055c5
mov qword [rsp + 0x90], 0xffffffffff318c70
xor ecx, ecx
mov rdx, rsi
call rdi
dec ebx
jne 0x140003835
xor ecx, ecx
call qword [r13 + 0x40]
cmp byte [rbp + 6], 0
jne 0x140003903
cmp byte [rbp + 7], 0
jne 0x140003903
mov rsi, rax
mov eax, dword [r12 + 0x78]
add rsi, rax
mov qword [rsp + 0x40], 0
lea r8, [rsp + 0x40]
lea r9, [rsp + 0xb8]
mov rcx, r13
mov rdx, rsi
call fcn.1400046d5
test eax, eax
jg 0x1400038fe
lea rbp, [rsp + 0x90]
lea rbx, [rsp + 0x40]
lea r12, [rsp + 0xb8]
nop word [rax + rax]
mov rdi, qword [r13 + 0x68]
mov edx, 8
mov rcx, rbp
call fcn.1400055c5
mov qword [rsp + 0x90], 0xfffffffffe217c00
xor ecx, ecx
mov rdx, rbp
call rdi
mov rcx, r13
mov rdx, rsi
mov r8, rbx
mov r9, r12
call fcn.1400046d5
test eax, eax
jle 0x1400038c5
mov r12, qword [rsp + 0x60]
mov qword [rsp + 0xa8], r13
mov edx, dword [r12 + 0x108]
mov rcx, r15
mov r8, r12
call fcn.1400040e5
mov qword [rsp + 0x90], rax
mov edx, dword [r12 + 0xa8]
mov rcx, r15
mov r8, r12
call fcn.1400040e5
mov qword [rsp + 0x98], rax
mov edx, dword [r12 + 0x30]
mov rcx, r14
mov r8, r12
call fcn.1400040e5
mov qword [rsp + 0xb0], rax
mov rax, qword [r13 + 0x38]
mov ecx, dword [rax + 0xd4]
mov edx, dword [rax + 0xf4]
call qword [r13 + 0x90]
mov rbx, rax
xor r15d, r15d
xor ecx, ecx
mov rdx, rax
mov r8d, 0x104
call qword [r13 + 0x50]
mov qword [rsp + 0x30], 0
mov dword [rsp + 0x28], 0x80
mov dword [rsp + 0x20], 3
mov rcx, rbx
mov edx, 0x80000000
mov r8d, 1
xor r9d, r9d
call qword [r13 + 0x80]
cmp rax, 0xffffffffffffffff
je 0x140003a2e
mov rbx, rax
mov rcx, rax
xor edx, edx
call qword [r13 + 0xb0]
test eax, eax
je 0x140003a21
mov esi, eax
mov edx, eax
mov rax, qword [r13 + 0x38]
mov ecx, dword [rax + 0xd4]
call qword [r13 + 0x90]
mov rbp, rax
mov dword [rsp + 0x40], 0
mov qword [rsp + 0x20], 0
lea r9, [rsp + 0x40]
mov rcx, rbx
mov rdx, rax
mov r8d, esi
call qword [r13 + 0x28]
mov esi, eax
mov rcx, rbx
call qword [r13 + 0xa0]
xor r15d, r15d
test esi, esi
cmovne r15, rbp
jmp 0x140003a2e
mov rcx, rbx
call qword [r13 + 0xa0]
xor r15d, r15d
mov edx, dword [r12 + 0x100]
mov rcx, r14
mov r8, r12
call fcn.1400040e5
mov ecx, dword [r12 + 0xb4]
xor ecx, dword [r12 + 0x90]
movsxd rbp, dword [r12 + 0xa0]
mov ebx, dword [r15 + rbp]
mov esi, dword [r15 + rbp + 4]
mov dword [rsp + 0x3c], 0
mov qword [rsp + 0x50], 0
mov qword [rsp + 0x78], 0
cmp ebx, ecx
mov qword [rsp + 0x88], rax
jne 0x140003b31
lea rdx, [r12 + 0x34]
lea rdi, [r15 + rbp]
add rdi, 4
mov esi, dword [rdi]
mov dword [rsp + 0x3c], esi
add rdi, 4
lea rcx, [rsp + 0x40]
mov r8d, 4
call fcn.140004af5
mov word [rsp + 0x44], 0xa0d
lea rbp, [rsp + 0x78]
nop word [rax + rax]
inc rdi
mov rcx, rdi
xor eax, eax
xor edx, edx
jmp 0x140003ade
inc rdx
cmp rdx, 6
je 0x140003b05
movzx ebx, byte [rsp + rdx + 0x40]
cmp byte [rcx + rdx], bl
je 0x140003ad5
cmp bl, 0x3f
je 0x140003ad5
inc rax
inc rcx
cmp rax, 0x1387ffa
jne 0x140003acd
xor edi, edi
jmp 0x140003b0a
mov eax, eax
add rdi, rax
test rdi, rdi
je 0x140003de9
mov qword [rsp + 0x20], r12
mov rcx, rdi
mov edx, esi
mov r8, rbp
mov r9, r13
call fcn.1400050c5
test al, al
je 0x140003ac5
jmp 0x140003de9
add r15, rbp
mov eax, ebx
test ebx, ebx
jne 0x140003b44
mov rax, qword [r13 + 0x38]
mov eax, dword [rax + 0xf4]
mov ecx, dword [r12 + 0x34]
mov dword [rsp + 0x84], ecx
mov ecx, dword [r12 + 0xc4]
mov dword [rsp + 0x68], ecx
mov edx, eax
mov rax, qword [r13 + 0x38]
mov ecx, dword [rax + 0xd4]
call qword [r13 + 0x90]
mov rbp, rax
add r15, 8
mov rcx, rax
mov rdx, r15
mov r8d, ebx
call fcn.140004af5
test ebx, ebx
je 0x140003ba2
xor eax, eax
nop word cs:[rax + rax]
xor dword [rbp + rax], esi
add rax, 4
cmp rax, rbx
jb 0x140003b95
mov rax, qword [r13 + 0x38]
mov ecx, dword [rax + 0xd4]
mov edx, dword [rax + 0xf4]
call qword [r13 + 0x90]
mov rbx, rax
movzx eax, byte [rbp]
test al, al
je 0x140003be8
xor ecx, ecx
nop word cs:[rax + rax]
movsx eax, al
mov word [rbx + rcx*2], ax
movzx eax, byte [rbp + rcx + 1]
inc rcx
test al, al
jne 0x140003bd5
mov rcx, r13
call fcn.140004b65
mov rcx, rbx
call fcn.1400056c5
test eax, eax
je 0x140003c2a
mov ecx, dword [r12 + 0xec]
mov eax, eax
xor edx, edx
xor r14d, r14d
nop word cs:[rax + rax]
imul r14d, ecx
movzx ebp, word [rbx + rdx*2]
add r14d, ebp
inc rdx
cmp rax, rdx
jne 0x140003c15
jmp 0x140003c2d
xor r14d, r14d
mov qword [rsp + 0x28], r12
mov dword [rsp + 0x20], r14d
lea rdx, [rsp + 0x90]
lea r8, [rsp + 0x50]
lea r9, [rsp + 0x3c]
mov rcx, r13
call fcn.140004cd5
test al, al
jne 0x140003dc6
mov rax, qword [r13 + 0x38]
mov ecx, dword [rax + 0xd4]
mov edx, dword [rax + 0xf4]
call qword [r13 + 0x90]
mov r12, rax
mov esi, dword [rsp + 0x3c]
add rax, 2
mov qword [rsp + 0x70], rax
xor r15d, r15d
jmp 0x140003cb8
mov rdi, qword [r13 + 0x68]
mov edx, 8
lea rbp, [rsp + 0x40]
mov rcx, rbp
call fcn.1400055c5
mov qword [rsp + 0x40], 0xfffffffffc7c5780
xor r15d, r15d
xor ecx, ecx
mov rdx, rbp
call rdi
xor eax, eax
test al, al
jne 0x140003d9b
cmp word [r12], 0
je 0x140003cd5
mov rax, qword [rsp + 0x70]
mov word [rax - 2], 0
cmp word [rax], 0
lea rax, [rax + 2]
jne 0x140003cc5
mov rax, r12
nop word cs:[rax + rax]
mov ecx, r15d
movzx ecx, word [rbx + rcx*2]
test ecx, ecx
je 0x140003d05
cmp ecx, 0x3b
je 0x140003d05
mov word [rax], cx
inc r15d
add rax, 2
jmp 0x140003ce5
mov rcx, r12
call fcn.1400056c5
test eax, eax
je 0x140003c85
inc r15d
mov rcx, r13
mov rdx, r12
lea r8, [rsp + 0x50]
lea r9, [rsp + 0xb8]
call fcn.1400046d5
mov esi, eax
cmp eax, 4
jb 0x140003cae
mov rcx, qword [rsp + 0x50]
mov eax, dword [rsp + 0x84]
cmp dword [rcx], eax
jne 0x140003cae
mov al, 1
mov edx, dword [rsp + 0x68]
cmp dword [rcx], edx
je 0x140003cb0
mov r8d, esi
mov edx, esi
mov edi, 1
nop word cs:[rax + rax]
mov rbp, rdi
cmp rdx, rdi
je 0x140003d8a
lea rdi, [rbp + 1]
mov esi, dword [rsp + 0x68]
cmp dword [rcx + rbp], esi
jne 0x140003d75
cmp rbp, rdx
mov esi, r8d
jae 0x140003cae
jmp 0x140003cb0
mov dword [rsp + 0x3c], esi
mov r8, qword [rsp + 0x50]
mov r12, qword [rsp + 0x60]
mov qword [rsp + 0x28], r12
mov dword [rsp + 0x20], r14d
lea rdx, [rsp + 0x90]
mov rcx, r13
mov r9d, esi
call fcn.140004f45
mov edx, dword [rsp + 0x3c]
mov rcx, qword [rsp + 0x50]
mov qword [rsp + 0x20], r12
lea r8, [rsp + 0x78]
mov r9, r13
call fcn.1400050c5
test al, al
je 0x14000402f
mov r14, qword [rsp + 0x78]
lea r15, [r14 + 0x10]
mov esi, dword [r14 + 8]
mov ebx, dword [r14 + 0xc]
mov eax, ebx
test ebx, ebx
jne 0x140003e0a
mov rax, qword [r13 + 0x38]
mov eax, dword [rax + 0xf4]
mov edx, eax
mov rax, qword [r13 + 0x38]
mov ecx, dword [rax + 0xd4]
call qword [r13 + 0x90]
mov rbp, rax
mov dword [rsp + 0x40], 0
lea rax, [rsp + 0x40]
mov qword [rsp + 0x28], rax
mov dword [rsp + 0x20], esi
mov cx, 2
mov rdx, rbp
mov r8d, ebx
mov r9, r15
call qword [r13 + 0xc8]
test eax, eax
jne 0x14000402f
mov r15, rbp
lea rcx, [rbp + 0x90]
call fcn.140005375
test eax, eax
je 0x140003e69
xor eax, eax
jmp 0x140003e70
mov eax, dword [r15 + 0x160]
add rax, rbp
mov ecx, dword [r15 + 8]
lea rdx, [rcx + rax]
add rdx, 0x3dd
mov dword [rsp + 0x5c], 0
mov r9d, dword [r12 + 0x118]
mov qword [rsp + 0x20], r12
lea r8, [rsp + 0x5c]
mov rcx, r13
mov qword [rsp + 0x68], rdx
call fcn.1400053b5
mov qword [rsp + 0x70], rax
mov rax, qword [r13 + 0x38]
mov ecx, dword [rax + 0xd4]
mov edx, dword [rax + 0xf4]
call qword [r13 + 0x90]
mov rsi, rax
add rbp, 0xf4
mov rcx, rbp
call fcn.140005375
test eax, eax
je 0x140003ef9
mov eax, eax
dec rax
mov rcx, rax
nop
movsx edx, byte [rbp + rax + 1]
mov word [rsi + rax*2 + 2], dx
dec rcx
test eax, eax
mov rax, rcx
jne 0x140003ee5
movsx eax, byte [rbp]
mov word [rsi], ax
xor eax, eax
nop dword [rax]
mov ecx, eax
inc eax
cmp word [rsi + rcx*2], 0
jne 0x140003f05
nop dword [rax + rax]
dec eax
cmp word [rsi + rax*2], 0x5c
jne 0x140003f15
mov r12d, eax
lea rbx, [rsi + r12*2]
add rbx, 2
mov rax, qword [r13 + 0x38]
mov ecx, dword [rax + 0xd4]
mov edx, dword [rax + 0xf4]
call qword [r13 + 0x90]
mov rbp, rax
mov rcx, rbx
call fcn.1400056c5
test eax, eax
je 0x140003f76
mov eax, eax
lea rcx, [rsi + r12*2]
add rcx, 2
xor edx, edx
nop word cs:[rax + rax]
movzx ebx, word [rcx + rdx*2]
mov word [rbp + rdx*2], bx
inc rdx
cmp rax, rdx
jne 0x140003f65
mov rcx, rbp
call qword [r13 + pe_nt_image_headers64]
movsxd rcx, dword [rax + 0x3c]
mov esi, dword [rax + rcx + 0x2c]
add rsi, rax
mov ebp, dword [rsp + 0x5c]
mov eax, ebp
test rbp, rbp
jne 0x140003f9d
mov rax, qword [r13 + 0x38]
mov eax, dword [rax + 0xf4]
mov edx, eax
mov rax, qword [r13 + 0x38]
mov ecx, dword [rax + 0xd4]
call qword [r13 + 0x90]
mov rcx, rax
mov rdx, rsi
mov r8d, ebp
call fcn.140004af5
mov dword [rsp + 0x58], 0
mov rbx, qword [rsp + 0x60]
mov r8d, dword [rbx + 0xd4]
lea r12, [rsp + 0x58]
mov rcx, rsi
mov rdx, rbp
mov r9, r12
mov rdi, qword [rsp + 0x88]
call rdi
mov rcx, rsi
mov rdx, qword [rsp + 0x70]
mov r8d, ebp
call fcn.140004af5
mov r8d, dword [rsp + 0x58]
mov rcx, rsi
mov rdx, rbp
mov r9, r12
call rdi
mov eax, dword [rbx + 0xd4]
mov dword [rsp + 0x40], eax
mov qword [rsp + 0x44], rsi
mov dword [rsp + 0x4c], ebp
lea r9, [rsp + 0x40]
mov rcx, r15
mov rdx, qword [rsp + 0x68]
mov r8, r14
call rsi
nop
add rsp, 0xf8
pop rbx
pop rbp
pop rdi
pop rsi
pop r12
pop r13
pop r14
pop r15
ret