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
jge 0x180015791
push rdi
push rsi
nop
pop rsi
pop rdi
jl 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
js 0x1800157fb
push rdi
push rcx
push rcx
push rcx
pop rcx
pop rcx
pop rcx
pop rdi
jns 0x1800157fb
enter 0xffffffffffffc866, 0x5e
adc dword es:[rbp - 0x776a9924], 0x1c
push 0x5e
lea ebp, [rdx - 0x6b]
invalid
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
jle 0x1800158b1
push rbx
push rsi
push rdi
nop
pop rdi
pop rsi
pop rbx
jg 0x1800158b1
enter 0xffffffffffff8d8d, 0xffffffffffffff83
fadd qword [rdx + 0x6a]
lea ecx, [rbx]
or ebx, esp
fadd qword [rdx + 0x66]
mov ah, ch
or ecx, dword [rax + 0x268db78d]
mov byte es:[rdx - 0x73], ch
in al, dx
or ebx, esp
xchg ebp, eax
xchg ebp, eax
mov rax, qword [rsp + 0xb0]
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
js 0x18001592b
push rbx
nop
pop rbx
jns 0x18001592b
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]
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
jne 0x1800159ce
push rdx
nop
pop rdx
je 0x1800159ce
lea ecx, [rbp - 0x23236a14]
push 0xffffffffffffff95
sbb al, 0x6a
sbb esp, 0xb
pop rsi
in al, dx
invalid
mov r8d, 0x10
xor edx, edx
lea rcx, [rsp + 0xe8]
call qword [0x18001ace8]
ja 0x180015a10
push rbp
push rbp
nop
pop rbp
pop rbp
jbe 0x180015a10
mov byte [rdi - 0x77f47214], dh
or ebx, esp
xchg ebp, eax
pop rsi
xor dword [rdi + 0x4295b7f0], 0xffffffec
push 0x66
xchg ebp, eax
push 0x42
or eax, dword [rdx - 0x24]
enter 0xffffffffffffc895, 0xffffffffffffffc8
invalid
mov rax, qword [rsp + 0x98]
mov r8d, 8
mov rdx, rax
lea rcx, [rsp + 0xe8]
call qword [0x18001ad78]
jno 0x180015a5b
push rbx
push rbx
pop rbx
pop rbx
jo 0x180015a5b
sbb al, 0x88
mov bh, 0x1c
mov byte [rsi - 0x24], bl
sbb al, 0x42
and dword [rsi - 0x38], 0xfffffff0
push 0xffffffffffffffc8
pop rsi
mov bh, 0x5e
pop si
mov al, dh
mov byte es:[rax + rsi*8], bl
lea eax, [rdx - 0x73]
sbb al, 0x83
invalid
jno 0x180015a87
push rdi
push rcx
push rbx
pop rbx
pop rcx
pop rdi
jo 0x180015a87
enter 0x266a, 0x6a
pop rsi
mov byte [rax - 0x7737f496], cl
xor eax, 0xffffff83
pop rsi
invalid
lea rdx, [0x18001af60]
lea rcx, [rsp + 0xe8]
call qword [0x18001b028]
test eax, eax
jne 0x180015bac
mov dword [rsp + 0xc8], 1
js 0x180015adb
push rax
push rax
push rsi
push rax
pop rax
pop rsi
pop rax
pop rax
jns 0x180015adb
sbb al, 0x1c
pop rsi
pop rsi
add dword [rdx - 0x49], 0x5e
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
js 0x180015b25
push rdi
push rbp
push rdx
pop rdx
pop rbp
pop rdi
jns 0x180015b25
lock add dword [rdx + 0x42], 0x5e
mov bh, 0xb7
adc dword [rbp + 0x26c80bec], 0xffffffec
or dword [rbp + 0x1c66958d], 0x5e
mov ah, ch
enter 0xb0b, 0xb
in al, dx
sbb al, 0x26
mov bh, 0xec
lea ecx, [rax - 0x75]
test byte [rax + rbx*4], ah
add byte [rax], al
add byte [rbx - 0x74b7ebc0], cl
and al, 0x48
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
jbe 0x180015b6f
push rdx
push rax
push rdx
push rbp
pop rbp
pop rdx
pop rax
pop rdx
ja 0x180015b6f
enter 0xffffffffffffdc95, 0xffffffffffffff83
or esp, dword [rsi + 0x66]
in al, dx
fadd qword [rdx - 0x78]
in al, dx
lea esp, [rsi]
mov bh, 0x95
lea ebp, [rdx + 0x42]
push 0xffffffffffffff88
xchg ebp, eax
or eax, dword [rdx - 0x14]
push 0x66
invalid
mov rax, qword [rsp + 0x98]
mov eax, dword [rax + 0x10]
mov dword [rsp + 0x6c], eax
jns 0x180015baa
nop
js 0x180015baa
push 0xffffffffffffff8d
pop rsi
fadd qword [rdx - 0x73]
mov bh, 0x66
pop rsi
lea eax, [rdx + 0x66]
pop rsi
fadd qword es:[rdx - 0x38]
xchg ebp, eax
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
jg 0x180015c86
push rcx
push rax
push rax
nop
pop rax
pop rax
pop rcx
jle 0x180015c86
sbb al, 0xb
xchg ebp, eax
mov bh, 0x95
sbb al, 0x26
or ebp, dword [rdx - 0x38]
mov bh, 0xb7
enter 0x6a8d, 0xfffffffffffffff0
or ebx, dword [rsi - 0x10]
mov byte [rdx + 0x6a], al
enter 0x6626, 0xffffffffffffffc8
pop rsi
mov byte [rax - 0x74b748a2], cl
test byte [rax + rax*4], ah
add byte [rax], al
add byte [rbx + 0x5750038], al
mov rax, qword [rsp + 0x80]
cmp dword [rax], 0
jne 0x180015c98
jmp 0x18001603a
jo 0x180015cc4
push rax
push rax
pop rax
pop rax
jno 0x180015cc4
or ebx, dword [rsp + rbx]
xchg ebp, eax
sbb al, 0x95
mov bh, 0xc8
or ecx, dword [rax + 0x428dc86a]
fsub st(4), st(0)
pop rsi
mov byte [rax + 0x6688ec42], cl
sbb al, 0xec
add dword [rbx + 0xb6a1c5e], 0xffffff83
in al, dx
mov byte [rax - 0x75], cl
test byte [rax + rax*4], ah
add byte [rax], al
add byte [rbx + 0x4c8b4800], cl
and al, 0x58
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
jnp 0x180015d0d
push rsp
push rbx
push rdx
push rsi
pop rsi
pop rdx
pop rbx
pop rsp
jp 0x180015d0d
mov byte es:[rbx + 0x666ac888], al
fcomp qword [rbx + rax*4]
xchg ebp, eax
mov bh, 0x66
or ecx, dword [rax + 0x1cc8ec42]
pop rsi
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
jp 0x180015d59
jnp 0x180015d59
in al, dx
invalid
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]
movzx eax, word [rcx + rax*2 + 8]
mov word [rsp + 0x38], ax
jb 0x180015dc0
push rbx
push rdx
pop rdx
pop rbx
jae 0x180015dc0
push 0xffffffffffffffc8
push 0xffffffffffffff83
xchg ebp, eax
pop rsi
xchg bp, ax
enter 0x6a5e, 0xffffffffffffffdc
in al, dx
push 0x26
mov bh, 0x66
or eax, dword [rbx - 0x23956a49]
mov byte [rdi - 0xf722338], dh
fsub st(4), st(0)
sbb al, 0xf0
movzx eax, word [rsp + 0x38]
and eax, 0xfff
mov word [rsp + 0x40], ax
jnp 0x180015dfb
push rbp
push rsp
push rdx
push rsp
pop rsp
pop rdx
pop rsp
pop rbp
jp 0x180015dfb
adc dword es:[rbp + 0x6a8db7dc], 0x42
push 0x42
sbb esp, 0x5e
sbb dword [rsp + rbx], 0xffffffc8
push 0xffffffffffffff88
mov byte [rsi + riz*2], bl
push 0xffffffffffffff83
push 0x42
mov bh, 0xf0
movzx eax, word [rsp + 0x38]
cdq
and edx, 0xfff
add eax, edx
sar eax, 0xc
mov word [rsp + 0x34], ax
jle 0x180015e3d
push rax
push rdi
push rsp
pop rsp
pop rdi
pop rax
jg 0x180015e3d
push 0xb
or ebx, dword [rbx + rax*4]
enter 0xffffffffffffb766, 0xb
lea eax, [rdx - 0x78]
mov bh, 0x26
or ebx, dword [rax + rsi*8]
xchg ebp, eax
xchg ebp, eax
in al, dx
in al, dx
sbb dword [rsi - 0x38], 0x66
and dword [rsi + 0x42], 0xffffffb7
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
jno 0x180015f0e
push rdx
push rsp
push rbp
push rbx
pop rbx
pop rbp
pop rsp
pop rdx
jo 0x180015f0e
pop rsi
mov bh, 0x26
fmul qword es:[rbp + 0x661c4295]
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
jne 0x180015f5e
push rdx
push rdx
pop rdx
pop rdx
je 0x180015f5e
in al, dx
in al, dx
pop rsi
add dword [rdx + 0x1c], 0xfffffff0
mov bh, 0xf0
pop rsi
invalid
mov rax, qword [rsp + 0x60]
mov rax, qword [rax]
add rax, qword [rsp + 0xd0]
mov rcx, qword [rsp + 0x60]
mov qword [rcx], rax
jmp 0x180015fc1
jl 0x180015fa4
push rax
nop
pop rax
jge 0x180015fa4
mov byte [rbp - 0x77bd6a9a], cl
enter 0xffffffffffffb783, 0xffffffffffffffec
invalid
mov r8d, 0x8000
xor edx, edx
mov rcx, qword [rsp + 0x48]
call qword [0x18001ad70]
mov eax, 1
jmp 0x1800161d8
jmp 0x180015d63
jl 0x180015ff2
nop
jge 0x180015ff2
add word es:[rdx + 0x1c], 0x1c
enter 0xffffffffffff836a, 0x42
lea ebp, [rdx + 0x26]
sbb al, 0x8d
fcomp qword [rsi - 0x73]
mov byte [rdi - 0x72bd7296], dh
sbb al, 0xc8
or dword [rbp + 0x260b83c8], 0xffffff88
mov byte [rdi + rsi*4], bl
fsub qword [rsi + 0x48]
mov eax, dword [rsp + 0x80]
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
ja 0x180016035
nop
jbe 0x180016035
mov bh, 0x66
sbb al, 0x42
or edx, dword [rbp + 0x5e95c826]
pop rsi
or ebx, dword [rsi + 0x6a]
sbb al, 0xb
in al, dx
fadd qword [rbx - 0x777c95f5]
in al, dx
mov byte es:[rbx + 0xb1c66b7], al
or ax, word [rbx + 0x665ef0b7]
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 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
call qword [0x18001ad40]
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]
jne 0x180016139
push rdi
push rbp
push rbx
push rsp
pop rsp
pop rbx
pop rbp
pop rdi
je 0x180016139
add dword [rbx + 0x1c951c42], 0xffffffb7
mov ah, ch
enter 0xffffffffffff95f0, 0xffffffffffffff95
enter 0x4283, 0x1c
sbb al, 0x83
in al, dx
mov bh, 0x88
sbb al, 0xf0
sbb al, 0x95
xchg ebp, eax
mov bh, 0xf0
mov bh, 0xff
adc eax, 0x4c01
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