Function at 0x180015620
Capabilities:
Parse pe header
Resolve function by parsing pe exports

Disassembly:
mov qword [rsp + 8], rcx
sub rsp, 0x308
mov qword [rsp + 0x58], 0
mov qword [rsp + 0x48], 0
mov qword [rsp + 0xb0], 0
mov qword [rsp + 0x70], 0
mov qword [rsp + 0xa8], 0
mov qword [rsp + 0xb8], 0
mov qword [rsp + 0x98], 0
mov dword [rsp + 0xc8], 0
mov qword [rsp + 0x88], 0
mov qword [rsp + 0xd8], 0
mov dword [rsp + 0x6c], 0
mov dword [rsp + 0x94], 0
mov qword [rsp + 0x80], 0
mov qword [rsp + 0xe0], 0
mov dword [rsp + 0x90], 0
xor eax, eax
mov word [rsp + 0x38], ax
xor eax, eax
mov word [rsp + 0x40], ax
xor eax, eax
mov word [rsp + 0x34], ax
mov qword [rsp + 0xd0], 0
mov dword [rsp + 0x68], 0
mov qword [rsp + 0xc0], 0
mov qword [rsp + 0x60], 0
mov dword [rsp + 0x3c], 0
mov dword [rsp + 0x30], 0
mov qword [rsp + 0x78], 0
mov qword [rsp + 0xa0], 0
mov rcx, qword [rsp + 0x310]
call qword [0x18001ad38]
mov qword [rsp + 0x58], rax
cmp qword [rsp + 0x58], 0
jne 0x180015758
mov eax, 1
jmp 0x1800161d8
mov rax, qword [rsp + 0x58]
mov qword [rsp + 0xa8], rax
jb 0x180015791
push rbp
push rbp
push rsp
pop rsp
pop rbp
pop rbp
jae 0x180015791
invalid
mov rax, qword [rsp + 0xa8]
movzx eax, word [rax]
cmp eax, 0x5a4d
je 0x1800157ad
mov eax, 1
jmp 0x1800161d8
mov rax, qword [rsp + 0xa8]
movsxd rax, dword [rax + 0x3c]
mov rcx, qword [rsp + 0xa8]
add rcx, rax
mov rax, rcx
mov qword [rsp + 0xb8], rax
jbe 0x1800157fb
push rax
push rcx
nop
pop rcx
pop rax
ja 0x1800157fb
jmp 0x1408a4165
mov rax, qword [rsp + 0xb8]
cmp dword [rax], 0x4550
je 0x180015815
mov eax, 1
jmp 0x1800161d8
mov r8d, 0x200
xor edx, edx
lea rcx, [rsp + 0x100]
call qword [0x18001ace8]
mov r8d, 0x1ff
lea rdx, [rsp + 0x100]
mov rcx, qword [rsp + 0x58]
call qword [0x18001ad60]
test eax, eax
jne 0x180015852
mov eax, 1
jmp 0x1800161d8
xor edx, edx
lea rcx, [rsp + 0x100]
call fcn.180005a40
mov qword [rsp + 0x48], rax
cmp qword [rsp + 0x48], 0
jne 0x180015878
mov eax, 1
jmp 0x1800161d8
mov rax, qword [rsp + 0x48]
mov qword [rsp + 0xb0], rax
jp 0x1800158b1
and al, 0xb0
add byte [rax], al
add byte [rdx + 0x2a], bh
push rcx
push rsi
push rdx
push rbx
pop rbx
pop rdx
pop rsi
pop rcx
jnp 0x1800158b1
out dx, eax
jrcxz 0x180015880
invalid
mov rax, qword [rsp + 0xb0]
movzx eax, word [rax]
cmp eax, 0x5a4d
je 0x1800158e0
mov r8d, 0x8000
xor edx, edx
mov rcx, qword [rsp + 0x48]
call qword [0x18001ad70]
mov eax, 1
jmp 0x1800161d8
mov rax, qword [rsp + 0xb0]
movsxd rax, dword [rax + 0x3c]
mov rcx, qword [rsp + 0xb0]
add rcx, rax
mov rax, rcx
mov qword [rsp + 0x70], rax
jp 0x18001592b
push rbx
nop
pop rbx
jnp 0x18001592b
mov byte [rsi], bl
jrcxz 0x180015944
in al, dx
invalid
mov rax, qword [rsp + 0x70]
cmp dword [rax], 0x4550
je 0x180015955
mov r8d, 0x8000
xor edx, edx
mov rcx, qword [rsp + 0x48]
call qword [0x18001ad70]
call qword [0x18001ad70]
mov eax, 1
jmp 0x1800161d8
mov dword [rsp + 0x50], 0
jmp 0x180015969
mov eax, dword [rsp + 0x50]
inc eax
mov dword [rsp + 0x50], eax
mov rax, qword [rsp + 0x70]
movzx eax, word [rax + 6]
cmp dword [rsp + 0x50], eax
jae 0x180015bb1
mov rax, qword [rsp + 0x70]
movzx eax, word [rax + 0x14]
mov rcx, qword [rsp + 0x70]
lea rax, [rcx + rax + 0x18]
mov ecx, dword [rsp + 0x50]
imul rcx, rcx, 0x28
add rax, rcx
mov qword [rsp + 0x98], rax
jle 0x1800159ce
push rbx
push rbx
nop
pop rbx
pop rbx
jg 0x1800159ce
pop rcx
jmp 0x1405b3d2c
mov r8d, 0x10
xor edx, edx
lea rcx, [rsp + 0xe8]
call qword [0x18001ace8]
jno 0x180015a10
push rcx
push rbp
push rcx
nop
pop rcx
pop rbp
pop rcx
jo 0x180015a10
in al, dx
invalid
mov rax, qword [rsp + 0x98]
mov r8d, 8
mov rdx, rax
lea rcx, [rsp + 0xe8]
call qword [0x18001ad78]
jae 0x180015a5b
push rsp
pop rsp
jb 0x180015a5b
shr ah, 0xc0
invalid
ja 0x180015a87
push rdi
push rbx
push rcx
push rax
pop rax
pop rcx
pop rbx
pop rdi
jbe 0x180015a87
rcl ah, 0xe3
mov byte [rdx], bh
call 0x1ba5a9560
cmp cl, byte [rax - 0x2b1c1011]
pop rcx
cmp bl, byte [rcx - 0x18]
sub al, 0x59
in al, dx
sub al, 0xc0
sub al, 0x59
mov cl, ch
jmp 0x10d4978e2
lea rdx, [0x18001af60]
lea rcx, [rsp + 0xe8]
call qword [0x18001b028]
test eax, eax
jne 0x180015bac
mov dword [rsp + 0xc8], 1
jne 0x180015adb
push rdi
pop rdi
je 0x180015adb
out dx, al
out dx, eax
shr byte [rsp + rbp], 0xe9
out dx, eax
out dx, al
call 0x1088a49b0
sub al, 0x3a
invalid
mov rax, qword [rsp + 0x98]
mov eax, dword [rax + 0xc]
mov rcx, qword [rsp + 0x58]
add rcx, rax
mov rax, rcx
mov qword [rsp + 0x88], rax
jnp 0x180015b25
jp 0x180015b25
invalid
mov rax, qword [rsp + 0x98]
mov eax, dword [rax + 0x14]
mov rcx, qword [rsp + 0x48]
add rcx, rax
mov rax, rcx
mov qword [rsp + 0xd8], rax
je 0x180015b6f
push rdx
push rcx
push rsi
push rsp
pop rsp
pop rsi
pop rcx
pop rdx
jne 0x180015b6f
pop rcx
invalid
mov rax, qword [rsp + 0x98]
mov eax, dword [rax + 0x10]
mov dword [rsp + 0x6c], eax
jle 0x180015baa
push rsp
push rcx
push rsi
nop
pop rsi
pop rcx
pop rsp
jg 0x180015baa
rol al, 0x3a
invalid
jmp 0x180015bb1
jmp 0x18001595f
cmp qword [rsp + 0x88], 0
jne 0x180015bd9
mov r8d, 0x8000
xor edx, edx
mov rcx, qword [rsp + 0x48]
call qword [0x18001ad70]
mov eax, 1
jmp 0x1800161d8
mov rax, qword [rsp + 0x70]
mov rax, qword [rax + 0x30]
cmp qword [rsp + 0x58], rax
je 0x18001603a
mov rax, qword [rsp + 0x70]
mov rax, qword [rax + 0x30]
mov rcx, qword [rsp + 0x58]
sub rcx, rax
mov rax, rcx
mov qword [rsp + 0xd0], rax
mov eax, 8
imul rax, rax, 5
mov rcx, qword [rsp + 0xb8]
cmp dword [rcx + rax + 0x8c], 0
je 0x18001603a
mov eax, 8
imul rax, rax, 5
mov rcx, qword [rsp + 0xb8]
mov eax, dword [rcx + rax + 0x88]
mov rcx, qword [rsp + 0x58]
add rcx, rax
mov rax, rcx
mov ecx, dword [rsp + 0x68]
add rax, rcx
mov qword [rsp + 0x80], rax
js 0x180015c86
ror dword [rbx + 0x4868244c], 3
ror dword [rax - 0x77], 0x84
and al, 0x80
add byte [rax], al
add byte [rax + 0x2a], bh
push rax
push rdx
push rax
push rdi
pop rdi
pop rax
pop rdx
pop rax
jns 0x180015c86
out dx, eax
jmp 0x1ba5b4c55
mov rax, qword [rsp + 0x80]
cmp dword [rax], 0
jne 0x180015c98
jmp 0x18001603a
jo 0x180015cc4
jno 0x180015cc4
call 0x1545b4561
ror byte [rax + 0x3a1e3a3a], 0x1e
jrcxz 0x180015ce4
cmp ch, ah
out dx, al
shr bh, 0x3a
rol al, 0x4e
shr dh, 0xef
mov byte [rdx], bh
mov bl, ah
cmp ah, bl
mov byte [rcx - 0x1d], bl
out dx, al
jnp 0x180015c4a
jmp 0x1048ca4e5
mov rax, qword [rsp + 0x80]
mov eax, dword [rax]
mov rcx, qword [rsp + 0x58]
add rcx, rax
mov rax, rcx
mov qword [rsp + 0xe0], rax
jp 0x180015d0d
push rsp
push rsp
pop rsp
pop rsp
jnp 0x180015d0d
invalid
mov rax, qword [rsp + 0x80]
mov eax, dword [rax + 4]
sub rax, 8
xor edx, edx
mov ecx, 2
div rcx
mov dword [rsp + 0x90], eax
jbe 0x180015d59
push rbp
push rax
nop
pop rax
pop rbp
ja 0x180015d59
out dx, al
cmp bl, byte [rcx + 0x3a]
call 0x1fb3b89ba
mov spl, r10b
jrcxz 0x180015d31
mov byte [rdx], bh
jnp 0x180015d83
jmp 0x19ed5e5d7
mov dword [rsp + 0x54], 0
jmp 0x180015d6d
mov eax, dword [rsp + 0x54]
inc eax
mov dword [rsp + 0x54], eax
mov eax, dword [rsp + 0x90]
cmp dword [rsp + 0x54], eax
jae 0x180015fc6
mov eax, dword [rsp + 0x54]
mov rcx, qword [rsp + 0x80]
mov ecx, dword [rsp + 0x80]
movzx eax, word [rcx + rax*2 + 8]
mov word [rsp + 0x38], ax
jge 0x180015dc0
jl 0x180015dc0
mov al, ch
out dx, al
cmp r13b, byte [rdi + r13*8]
invalid
movzx eax, word [rsp + 0x38]
and eax, 0xfff
mov word [rsp + 0x40], ax
jo 0x180015dfb
push rsi
pop rsi
jno 0x180015dfb
invalid
movzx eax, word [rsp + 0x38]
cdq
and edx, 0xfff
add eax, edx
sar eax, 0xc
mov word [rsp + 0x34], ax
jg 0x180015e3d
push rax
push rsi
push rax
push rdi
pop rdi
pop rax
pop rsi
pop rax
jle 0x180015e3d
invalid
movzx eax, word [rsp + 0x40]
mov rcx, qword [rsp + 0xe0]
add rcx, rax
mov rax, rcx
mov qword [rsp + 0xc0], rax
mov rax, qword [rsp + 0x88]
cmp qword [rsp + 0xc0], rax
jb 0x180015fc1
mov eax, dword [rsp + 0x6c]
mov rcx, qword [rsp + 0x88]
add rcx, rax
mov rax, rcx
cmp qword [rsp + 0xc0], rax
jae 0x180015fc1
mov rax, qword [rsp + 0xc0]
mov qword [rsp + 0x60], rax
mov rax, qword [rsp + 0x88]
mov rcx, qword [rsp + 0x60]
sub rcx, rax
mov rax, rcx
mov qword [rsp + 0x60], rax
mov rax, qword [rsp + 0xd8]
mov rcx, qword [rsp + 0x60]
add rcx, rax
mov rax, rcx
mov qword [rsp + 0x60], rax
movzx eax, word [rsp + 0x34]
test eax, eax
je 0x180015fc1
movzx eax, word [rsp + 0x34]
cmp eax, 3
jne 0x180015f28
jl 0x180015f0e
nop
jge 0x180015f0e
rcr byte [rsi], 0x3a
cmp cl, byte [rsi + 0x3a]
pop rcx
invalid
mov rax, qword [rsp + 0x60]
mov eax, dword [rax]
add eax, dword [rsp + 0xd0]
mov rcx, qword [rsp + 0x60]
mov dword [rcx], eax
jmp 0x180015fc1
movzx eax, word [rsp + 0x34]
cmp eax, 0xa
jne 0x180015f78
jle 0x180015f5e
push rsp
push rdi
push rbx
push rdi
pop rdi
pop rbx
pop rdi
pop rsp
jg 0x180015f5e
jnp 0x180015f7a
out dx, al
jrcxz 0x180015f91
rcr byte [rcx - 0x40], 0xc0
pop rcx
cmp bh, byte [rdx]
call 0x169ea4c38
invalid
mov rax, qword [rsp + 0x60]
mov rax, qword [rax]
add rax, qword [rsp + 0xd0]
rol byte [rax], 1
add byte [rax], al
mov rcx, qword [rsp + 0x60]
mov qword [rcx], rax
jmp 0x180015fc1
jg 0x180015fa4
push rsi
push rbx
push rbx
pop rbx
pop rbx
pop rsi
jle 0x180015fa4
in al, dx
cmp ch, bh
jnp 0x180015f6a
out dx, al
shr al, 0xe8
invalid
call 0x1fbe97e76
mov byte [rdx], bh
call 0x1407cdb84
pop rcx
pop rcx
out dx, eax
jnp 0x18001600f
ror byte [rsi + 0x59], 0x59
out dx, eax
out dx, al
pop rcx
cmp ch, dh
cmp ch, dh
jnp 0x180015f89
invalid
mov r8d, 0x8000
xor edx, edx
mov rcx, qword [rsp + 0x48]
call qword [0x18001ad70]
mov eax, 1
jmp 0x1800161d8
jmp 0x180015d63
jbe 0x180015ff2
push rdi
push rax
push rcx
nop
pop rcx
pop rax
pop rdi
ja 0x180015ff2
pop rcx
cmp cl, byte [rsi - 0x2c]
out dx, eax
pop rcx
shr byte [rsi + rbx], 0xd4
jmp 0x1ba20345b
mov rax, qword [rsp + 0x80]
mov eax, dword [rax + 4]
mov ecx, dword [rsp + 0x68]
add ecx, eax
mov eax, ecx
mov dword [rsp + 0x68], eax
jae 0x180016035
sub dl, byte [rsi + 0x51]
push rsi
push rcx
push rcx
pop rcx
pop rcx
pop rsi
jb 0x180016035
out dx, eax
jrcxz 0x180016050
out dx, eax
sub al, 0x59
out dx, al
mov byte [rsi], bl
call 0x168edb93f
shr byte [rdx + rdi], 0xe3
jnp 0x18001600a
call 0x1547d4966
jrcxz 0x1800160a9
invalid
jmp 0x180015c28
mov eax, dword [rsp + 0x6c]
mov dword [rsp + 0x3c], eax
mov rax, qword [rsp + 0x88]
mov qword [rsp + 0x78], rax
mov rax, qword [rsp + 0xd8]
mov eax, dword [rsp + 0xd8]
mov qword [rsp + 0xa0], rax
cmp dword [rsp + 0x3c], 0
jne 0x18001606b
jmp 0x1800161c3
mov dword [rsp + 0x30], 0x1000
mov eax, dword [rsp + 0x30]
cmp dword [rsp + 0x3c], eax
jae 0x180016085
mov eax, dword [rsp + 0x30]
mov dword [rsp + 0x3c], eax
mov eax, dword [rsp + 0x30]
mov r8d, eax
mov rdx, qword [rsp + 0xa0]
mov rcx, qword [rsp + 0x78]
call qword [0x18001ad68]
test eax, eax
je 0x180016180
add byte [rax], al
call qword [0x18001ad40]
xchg ebx, eax
add byte [rax], r8b
lea rcx, [rsp + 0x94]
mov qword [rsp + 0x20], rcx
mov r9d, 0x40
mov r8d, dword [rsp + 0x30]
mov rdx, qword [rsp + 0x78]
mov rcx, rax
call fcn.1800026e0
test eax, eax
je 0x1800160f3
mov r8d, 0x8000
xor edx, edx
mov rcx, qword [rsp + 0x48]
call qword [0x18001ad70]
mov eax, 1
jmp 0x1800161d8
mov eax, dword [rsp + 0x30]
mov r8d, eax
mov rdx, qword [rsp + 0xa0]
mov rcx, qword [rsp + 0x78]
call qword [0x18001ad78]
jo 0x180016139
push rsi
nop
pop rsi
jno 0x180016139
sub al, 0xe9
in al, dx
cmp ch, al
jrcxz 0x180016107
jnp 0x1800160a5
cmp ch, ah
cmp cl, byte [rax - 0x102be178]
invalid
call qword [0x18001ad40]
mov qword [rsp + 0x20], 0
mov r9d, dword [rsp + 0x94]
mov r8d, dword [rsp + 0x30]
mov rdx, qword [rsp + 0x78]
mov rcx, rax
call fcn.1800026e0
test eax, eax
je 0x180016180
mov r8d, 0x8000
xor edx, edx
mov rcx, qword [rsp + 0x48]
call qword [0x18001ad70]
mov eax, 1
jmp 0x1800161d8
mov eax, dword [rsp + 0x30]
mov ecx, dword [rsp + 0x3c]
sub ecx, eax
mov eax, ecx
mov dword [rsp + 0x3c], eax
mov eax, dword [rsp + 0x30]
mov rcx, qword [rsp + 0x78]
add rcx, rax
mov rax, rcx
mov qword [rsp + 0x78], rax
mov eax, dword [rsp + 0x30]
mov rcx, qword [rsp + 0xa0]
add rcx, rax
mov rax, rcx
mov qword [rsp + 0xa0], rax
jmp 0x18001605f
mov r8d, 0x8000
xor edx, edx
mov rcx, qword [rsp + 0x48]
call qword [0x18001ad70]
xor eax, eax
add rsp, 0x308
ret