Function at 0x180003ad0
Capabilities:
Encode data using xor
Parse pe header
Resolve function by parsing pe exports

Disassembly:
mov dword [rsp + 0x18], r8d
mov dword [rsp + 0x10], edx
mov qword [rsp + 8], rcx
sub rsp, 0x78
mov dword [rsp + 0x30], 0
mov qword [rsp + 0x28], 0
add byte [rax], al
add byte [rax - 0x39], cl
and al, 0x28
add byte [rax], al
add byte [rax], al
mov byte [rsp + 0x20], 0
jnp 0x180003b24
push rbp
nop
pop rbp
jp 0x180003b24
jns 0x180003b7a
or esp, ebx
sbb edx, ebx
mov bl, 0xb3
xchg esp, eax
mov ah, 0xd3
jns 0x180003ae7
imul esi, dword [rcx + 0xb], 0x6bb3e369
push rdi
fist dword [rdx + 0x1b]
fild dword [rax]
push rdx
sbb ecx, dword [rbx]
rol dword [rax], cl
mov bl, 0x94
jrcxz 0x180003b3d
mov ah, 0x6b
mov eax, dword [rsp + 0x90]
mov dword [rsp + 0x30], eax
mov rax, qword [rsp + 0x80]
mov qword [rsp + 0x28], rax
jg 0x180003b68
sub dl, byte [rdi + 0x50]
push rdi
push rax
push rbx
nop
pop rbx
pop rax
pop rdi
jle 0x180003b68
imul edx, dword [rdi - 0x4d], 0xffffffb4
mov bl, 0xd3
mov bl, 0xb3
imul esi, dword [rbx + rdx*8], 0xd37169
add byte [rcx - 0x25], bh
imul esi, dword [rcx - 0x2d], 0xdb790000
xor al, 0xe3
push rdx
imul edx, dword [rdx + 0xb], 0x52
mov bl, 0xe3
push rdi
or esi, dword [rbx + rbx*8 + 0x44c70071]
and al, 0x24
add byte [rax], al
add byte [rax], al
mov dword [rsp + 0x24], 0
jmp 0x180003b7c
mov eax, dword [rsp + 0x24]
inc eax
mov dword [rsp + 0x24], eax
and al, 0x24
mov eax, dword [rsp + 0x88]
cmp dword [rsp + 0x24], eax
jae 0x180003ec0
jb 0x180003bb9
push rsi
push rsp
pop rsp
pop rsi
jae 0x180003bb9
or esi, dword [rcx + 0xb]
jrcxz 0x180003bce
fisttp dword [rbx]
jno 0x180003b52
jno 0x180003bf7
push rdx
sal dword [rbx - 0x4c86ffcc], cl
push rdx
sbb ebx, ebx
fisttp dword [rbx]
imul edx, dword [rdx + 0x34], 0xb
rcl dword [rdx + rdx*2 + 0x6bd39434], cl
jrcxz 0x180003c22
imul eax, dword [rsp + 0x30], 0x343fd
add eax, 0x269ec3
mov dword [rsp + 0x30], eax
ja 0x180003bf6
push rsi
pop rsi
jbe 0x180003bf6
xchg esp, eax
push rdi
imul edx, dword [rdi + 0xb], 0xb3340b71
sbb edi, dword [rcx - 0x2d]
mov ah, 0x71
or ebp, dword [rcx + 0x34]
imul esi, dword [rbx + rbx*8], 0x57
imul eax, dword [rax], 0
xor al, 0x69
fcmovnu st(0), st(3)
jrcxz 0x180003bd1
jno 0x180003c61
invalid
mov eax, dword [rsp + 0x30]
and al, 0x30
shr eax, 0x10
and eax, 0x7fff
mov byte [rsp + 0x20], al
ja 0x180003c32
push rax
push rdi
nop
pop rdi
pop rax
jbe 0x180003c32
imul esp, ebx, 0x6b79d352
sbb ebx, dword [rbx]
mov ah, 0x94
xchg esp, eax
rcl dword [rdi + 0xb], cl
imul edx, ebx, 0x94791b6b
xchg esp, eax
add byte [rbx], cl
or edi, dword [rcx + 0x71]
mov ah, 0xb4
push rdi
xchg esp, eax
mov bl, 0xb3
xor al, 0x69
push rdi
jno 0x180003c42
movzx eax, byte [rsp + 0x20]
mov dh, 0x44
and al, 0x20
mov rcx, qword [rsp + 0x28]
movzx ecx, byte [rcx]
mov dh, 9
xor ecx, eax
mov eax, ecx
mov rcx, qword [rsp + 0x28]
ror dword [rax - 0x75], 0x4c
and al, 0x28
mov byte [rcx], al
jnp 0x180003c76
push rdx
nop
pop rdx
jp 0x180003c76
xchg esp, eax
imul edx, ebx, 0x79
jno 0x180003c2a
push rdx
jns 0x180003c3d
sal dword [rcx + 0x1b], cl
push rdx
or esi, dword [rcx - 0x4d]
fcmovnu st(0), st(3)
add bl, bl
push rdi
or esi, dword [rsp + rsi - 0x4b2c8ea9]
xchg esp, eax
mov bl, 0x6b
sal dword [rbx + rsi*4], cl
mov ah, 0xdb
imul eax, dword [rbx + 0x153e33d], 0
add byte [rdi], cl
test byte [rbx], ch
add al, byte [rax]
add byte [rbx], dh
ror byte [rbx - 0x46dbdbbc], cl
add eax, dword [rax]
add byte [rax], al
cmp dword [0x180019060], 0
je 0x180003eae
xor edx, edx
mov eax, dword [rsp + 0x24]
mov ecx, 3
div ecx
mov eax, edx
test eax, eax
jne 0x180003d45
stosd dword [rdi], eax
add byte [rax], al
add byte [rsi + 0x2a], dh
jbe 0x180003cc6
push rsi
push rdi
push rdx
push rdi
pop rdi
pop rdx
pop rdi
pop rsi
ja 0x180003cc6
mov bl, 0xb4
push rdx
jns 0x180003c5e
jno 0x180003cad
add bl, ah
mov ah, 0x94
jrcxz 0x180003c96
mov bl, 0x6b
jns 0x180003d20
push rdi
or edx, dword [rdx + 0x34]
imul esi, dword [rcx + 0x6b], 0x52571b1b
xor al, 0xb4
imul edx, dword [rdx - 0x75], 0x44
and al, 0x24
mov eax, dword [rsp + 0x24]
mov qword [rsp + 0x38], rax
lea rcx, [0x18001a210]
call qword [0x180019d30]
cmp ah, byte [rbp + 1]
add bh, bh
adc eax, 0x16054
mov qword [rsp + 0x40], rax
xor edx, edx
mov rcx, qword [rsp + 0x38]
mov rax, rcx
mov rcx, qword [rsp + 0x40]
div rcx
mov rax, rdx
lea rcx, [0x18001a210]
movsx eax, byte [rcx + rax]
mov rcx, qword [rsp + 0x28]
movzx ecx, byte [rcx]
add ecx, eax
mov eax, ecx
mov rcx, qword [rsp + 0x28]
mov byte [rcx], al
jns 0x180003d40
sub dl, byte [rcx + 0x56]
push rcx
push rsi
push rsp
push rbp
pop rbp
pop rsp
pop rsi
pop rcx
js 0x180003d40
sbb esi, dword [rbx - 0x24ff24a9]
add byte [rbx + 0x52690034], dh
push rdx
mov ah, 0
xor al, 0x94
fist dword [rdi - 0x2d]
jno 0x180003daf
push rdi
sbb edx, dword [rdi - 0x6c]
push rdx
push rdi
jno 0x180003cd2
sbb esi, dword [rbx + 0x169e9]
add byte [rbx], dh
ror byte [rbx - 0x46dbdbbc], cl
add eax, dword [rax]
add byte [rax], al
jmp 0x180003eae
xor edx, edx
mov eax, dword [rsp + 0x24]
mov ecx, 3
div ecx
mov eax, edx
cmp eax, 1
jne 0x180003e08
jle 0x180003d89
push rdx
push rsi
pop rsi
pop rdx
jg 0x180003d89
imul edx, dword [rdi + 0x69], 0x1b
sbb ebp, dword [rcx - 0x2d]
mov ah, 0x52
or esi, dword [rcx + rdi*2]
xor al, 0xb3
or esi, dword [rsp + rsi - 0x6be4a81d]
xor al, 0x94
xchg esp, eax
xor al, 0
mov ah, 0xb
fstp xword [rcx + 0x6b]
push rdi
add byte [rcx + rsi*2], dh
jno 0x180003d15
mov eax, dword [rsp + 0x24]
and al, 0x24
mov qword [rsp + 0x48], rax
lea rcx, [0x18001a210]
add dword fs:[rax], eax
call qword [0x180019d30]
mov qword [rsp + 0x50], rax
mov dword [rsp + 0x50], eax
xor edx, edx
mov rcx, qword [rsp + 0x48]
mov rax, rcx
mov rcx, qword [rsp + 0x50]
mov ecx, dword [rsp + 0x50]
div rcx
mov rax, rdx
lea rcx, [0x18001a210]
movsx eax, byte [rcx + rax]
mov rcx, qword [rsp + 0x28]
movzx ecx, byte [rcx]
sub ecx, eax
mov eax, ecx
mov rcx, qword [rsp + 0x28]
mov byte [rcx], al
jns 0x180003e03
push rbp
push rax
push rdi
pop rdi
pop rax
pop rbp
js 0x180003e03
jno 0x180003d96
mov bl, 0xb
mov bl, 0
xchg esp, eax
imul ecx, dword [rbx], 0xffffffdb
jns 0x180003da0
mov bl, 0xe3
sbb ebx, dword [rbx]
push rdi
or esi, dword [rcx + 0x34]
xor al, 0xe3
jns 0x180003e50
mov bl, 0xb3
imul esi, dword [rbx + 0x5700e36b], 0xa6e93434
add byte [rax], al
add byte [rdx + rbp + 0x54], dh
jmp 0x180003eae
je 0x180003e34
push rsp
pop rsp
jne 0x180003e34
fcmovnu st(0), st(3)
mov ah, 0x1b
jrcxz 0x180003e14
imul ebp, dword [rbx + 0x69], 0xdbb434e3
xchg esp, eax
push rdi
fld xword [rcx + 0xb]
xchg esp, eax
sbb ebx, dword [rbx]
mov bl, 0xb
jrcxz 0x180003ddb
push rdi
push rdi
xor al, 0xb4
mov bl, 0x69
fld xword [rbx + 0x69]
add byte [rbx + rbx*8 + 0x24448b0b], dh
and al, 0x48
mov dword [rsp + 0x58], eax
mov eax, dword [rsp + 0x24]
mov qword [rsp + 0x58], rax
lea rcx, [0x18001a210]
call qword [0x180019d30]
mov qword [rsp + 0x60], rax
mov dword [rsp + 0x60], eax
xor edx, edx
mov rcx, qword [rsp + 0x58]
ror byte [rax - 0x75], cl
and al, 0x58
mov rax, rcx
mov rcx, qword [rsp + 0x60]
div rcx
mov rax, rdx
lea rcx, [0x18001a210]
movsx eax, byte [rcx + rax]
mov rcx, qword [rsp + 0x28]
movzx ecx, byte [rcx]
xor ecx, eax
mov eax, ecx
mov rcx, qword [rsp + 0x28]
mov byte [rcx], al
jg 0x180003eae
push rsi
push rdi
push rdi
nop
pop rdi
pop rdi
pop rsi
jle 0x180003eae
add byte [rbx + rsi*4 - 0x241c6b4d], dl
mov bl, 0xe3
jno 0x180003e4b
push rdx
jno 0x180003eb6
imul esi, dword [rbx + rsi*4], 0x343469e3
imul esp, ebx, 0x6b
push rdi
push rdi
shr dword [rcx - 0x1d], cl
or esi, dword [rcx + rdi*2 + 0x448b48d3]
and al, 0x28
mov rax, qword [rsp + 0x28]
inc rax
mov qword [rsp + 0x28], rax
jmp 0x180003b72
jnp 0x180003eec
push rbx
push rsi
push rbx
push rsi
pop rsi
pop rbx
pop rsi
pop rbx
jp 0x180003eec
xor al, 0x71
or esp, ebx
imul esp, ebx, 0xffffffd3
add byte [rbx + rbx*8], dh
ror dword [rbx], cl
jns 0x180003f43
mov ah, 0x69
or ebx, ebx
mov bl, 0x34
imul esi, dword [rcx + 0x52], 0x1b715752
imul ecx, dword [rbx], 0x33b30094
ror byte [rax - 0x7d], 0xc4
js 0x180003eb6
xor eax, eax
add rsp, 0x78
ret
int3
and eax, 0xb4347157
jns 0x180003fa1