Function at 0x150387634
Capabilities:
Resolve function by parsing pe exports

Disassembly:
mov qword [rsp + 0x18], rbx
push rbp
push rsi
push rdi
push r12
push r13
push r14
push r15
sub rsp, 0x30
mov rdi, rdx
mov rsi, rcx
xor r15d, r15d
mov rdx, qword [rcx + 8]
or dword [rdi + 0x10], 1
lea rcx, [rdi + 0xb0]
mov r8, qword [rdi + 8]
and r8, 0xfffffffffffffffc
test byte [rdi + 8], 1
je 0x150387671
mov r8, qword [r8]
call fcn.15035b758
mov rdx, qword [rsi + 0x10]
cmp qword [rdx + 0x10], r15
je 0x1503876a1
or dword [rdi + 0x10], 2
lea rcx, [rdi + 0xb8]
mov r8, qword [rdi + 8]
and r8, 0xfffffffffffffffc
test byte [rdi + 8], 1
je 0x15038769c
mov r8, qword [r8]
call fcn.15035b758
mov ecx, 3
cmp byte [rsi + 3], cl
jne 0x1503876d4
call fcn.150383954
or dword [rdi + 0x10], 4
lea rcx, [rdi + 0xc0]
mov r8, qword [rdi + 8]
and r8, 0xfffffffffffffffc
test byte [rdi + 8], 1
je 0x1503876cc
mov r8, qword [r8]
mov rdx, rax
call fcn.150382c2c
mov ebp, r15d
cmp dword [rsi + 0x28], r15d
jle 0x150387706
mov edx, ebp
mov rcx, rsi
call fcn.1503a2800
mov rbx, qword [rax + 8]
lea rcx, [rdi + 0x18]
call fcn.150376590
mov rdx, rbx
mov rcx, rax
call fcn.1502cc28c
inc ebp
cmp ebp, dword [rsi + 0x28]
jl 0x1503876dd
mov ebp, r15d
cmp dword [rsi + 0x2c], r15d
jle 0x150387752
lea rbx, [rdi + 0x90]
mov r14, r15
mov rax, qword [rsi + 0x48]
mov r12d, dword [r14 + rax]
mov r15d, dword [rbx]
mov edx, dword [rbx + 4]
cmp r15d, edx
jne 0x150387736
inc edx
mov rcx, rbx
call fcn.150376970
mov rax, qword [rbx + 8]
mov dword [rax + r15*4], r12d
lea eax, [r15 + 1]
mov dword [rbx], eax
inc ebp
add r14, 4
cmp ebp, dword [rsi + 0x2c]
jl 0x150387719
xor r15d, r15d
mov ebp, r15d
cmp dword [rsi + 0x30], r15d
jle 0x15038779e
lea rbx, [rdi + 0xa0]
mov r14, r15
mov rax, qword [rsi + 0x50]
mov r12d, dword [r14 + rax]
mov r15d, dword [rbx]
mov edx, dword [rbx + 4]
cmp r15d, edx
jne 0x150387782
inc edx
mov rcx, rbx
call fcn.150376970
mov rax, qword [rbx + 8]
mov dword [rax + r15*4], r12d
lea eax, [r15 + 1]
mov dword [rbx], eax
inc ebp
add r14, 4
cmp ebp, dword [rsi + 0x30]
jl 0x150387765
xor r15d, r15d
mov ebp, r15d
cmp dword [rsi + 0x34], r15d
jle 0x1503877fd
movsxd rax, ebp
imul r14, rax, 0x88
add r14, qword [rsi + 0x58]
mov rcx, qword [rdi + 0x40]
test rcx, rcx
je 0x1503877d3
movsxd rdx, dword [rdi + 0x38]
cmp edx, dword [rcx]
jge 0x1503877d3
mov r8, qword [rcx + rdx*8 + 8]
lea eax, [rdx + 1]
mov dword [rdi + 0x38], eax
jmp 0x1503877eb
mov rcx, qword [rdi + 0x30]
call fcn.1503bc39c
mov rdx, rax
lea rcx, [rdi + 0x30]
call fcn.15037bd8c
mov r8, rax
mov rdx, r8
mov rcx, r14
call fcn.150387a88
inc ebp
cmp ebp, dword [rsi + 0x34]
jl 0x1503877a7
mov ebp, r15d
cmp dword [rsi + 0x38], r15d
jle 0x15038785d
movsxd rax, ebp
lea rcx, [rax + rax*8]
mov rax, qword [rsi + 0x60]
lea r14, [rax + rcx*8]
mov rcx, qword [rdi + 0x58]
test rcx, rcx
je 0x150387833
movsxd rdx, dword [rdi + 0x50]
cmp edx, dword [rcx]
jge 0x150387833
mov r8, qword [rcx + rdx*8 + 8]
lea eax, [rdx + 1]
mov dword [rdi + 0x50], eax
jmp 0x15038784b
mov rcx, qword [rdi + 0x48]
call fcn.1503bc628
mov rdx, rax
lea rcx, [rdi + 0x48]
call fcn.15037bd8c
mov r8, rax
mov rdx, r8
mov rcx, r14
call fcn.1503882c8
inc ebp
cmp ebp, dword [rsi + 0x38]
jl 0x150387806
mov r12d, r15d
mov dword [rsp + 0x20], r15d
cmp dword [rsi + 0x3c], r15d
jle 0x1503879ad
mov r14, r15
mov r15, qword [rsi + 0x68]
mov rbx, qword [rdi + 0x70]
test rbx, rbx
je 0x150387894
movsxd rcx, dword [rdi + 0x68]
cmp ecx, dword [rbx]
jge 0x150387894
mov rbx, qword [rbx + rcx*8 + 8]
lea eax, [rcx + 1]
mov dword [rdi + 0x68], eax
jmp 0x1503878ac
mov rcx, qword [rdi + 0x60]
call fcn.1503bc780
mov rdx, rax
lea rcx, [rdi + 0x60]
call fcn.15037bd8c
mov rbx, rax
mov rdx, qword [r14 + r15 + 8]
or dword [rbx + 0x10], 1
lea rcx, [rbx + 0x30]
mov r8, qword [rbx + 8]
and r8, 0xfffffffffffffffc
test byte [rbx + 8], 1
je 0x1503878ca
mov r8, qword [r8]
call fcn.15035b758
xor eax, eax
mov dword [rsp + 0x24], eax
cmp dword [r14 + r15 + 0x28], eax
jle 0x15038793f
movsxd rbp, eax
shl rbp, 6
add rbp, qword [r14 + r15 + 0x20]
mov rcx, qword [rbx + 0x28]
test rcx, rcx
je 0x150387906
movsxd rdx, dword [rbx + 0x20]
cmp edx, dword [rcx]
jge 0x150387906
mov r8, qword [rcx + rdx*8 + 8]
lea eax, [rdx + 1]
mov dword [rbx + 0x20], eax
jmp 0x15038791e
mov rcx, qword [rbx + 0x18]
call fcn.1503bc820
mov rdx, rax
lea rcx, [rbx + 0x18]
call fcn.15037bd8c
mov r8, rax
mov rdx, r8
mov rcx, rbp
call fcn.15038850c
mov eax, dword [rsp + 0x24]
inc eax
mov dword [rsp + 0x24], eax
cmp eax, dword [r14 + r15 + 0x28]
jl 0x1503878dc
mov r12d, dword [rsp + 0x20]
lea rax, [0x150028c70]
cmp qword [r14 + r15 + 0x18], rax
je 0x150387994
or dword [rbx + 0x10], 2
mov rbp, qword [rbx + 0x38]
test rbp, rbp
jne 0x150387977
mov rcx, qword [rbx + 8]
and rcx, 0xfffffffffffffffc
test byte [rbx + 8], 1
je 0x15038796b
mov rcx, qword [rcx]
call fcn.1503bcc24
mov rbp, rax
mov qword [rbx + 0x38], rax
mov rbx, qword [r14 + r15 + 0x18]
cmp rbx, rbp
je 0x150387994
mov rcx, rbp
call fcn.1503b9034
mov rdx, rbx
mov rcx, rbp
call fcn.1503b989c
inc r12d
mov dword [rsp + 0x20], r12d
add r14, 0x30
cmp r12d, dword [rsi + 0x3c]
jl 0x150387872
xor r15d, r15d
mov ebp, r15d
cmp dword [rsi + 4], r15d
jle 0x150387a16
movsxd rax, ebp
lea rcx, [rax + rax*8]
mov rax, qword [rsi + 0x70]
lea r14, [rax + rcx*8]
mov rcx, qword [rdi + 0x88]
test rcx, rcx
je 0x1503879ec
movsxd rdx, dword [rdi + 0x80]
cmp edx, dword [rcx]
jge 0x1503879ec
mov r8, qword [rcx + rdx*8 + 8]
lea eax, [rdx + 1]
mov dword [rdi + 0x80], eax
jmp 0x150387a04
mov rcx, qword [rdi + 0x78]
call fcn.1503bc47c
mov rdx, rax
lea rcx, [rdi + 0x78]
call fcn.15037bd8c
mov r8, rax
mov rdx, r8
mov rcx, r14
call fcn.150387f40
inc ebp
cmp ebp, dword [rsi + 4]
jl 0x1503879b6
lea rax, [0x150028bc0]
cmp qword [rsi + 0x78], rax
je 0x150387a6f
or dword [rdi + 0x10], 8
mov rbx, qword [rdi + 0xc8]
test rbx, rbx
jne 0x150387a53
mov rcx, qword [rdi + 8]
and rcx, 0xfffffffffffffffc
test byte [rdi + 8], 1
je 0x150387a44
mov rcx, qword [rcx]
call fcn.1503bc8bc
mov rbx, rax
mov qword [rdi + 0xc8], rax
mov rdi, qword [rsi + 0x78]
cmp rdi, rbx
je 0x150387a6f
mov rcx, rbx
call fcn.1503b64f8
mov rdx, rdi
mov rcx, rbx
call fcn.1503b73cc
mov rbx, qword [rsp + 0x80]
add rsp, 0x30
pop r15
pop r14
pop r13
pop r12
pop rdi
pop rsi
pop rbp
ret