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

Disassembly:
push r15
push r14
push r13
push r12
push rsi
push rdi
push rbp
push rbx
sub rsp, 0xe8
mov rbx, r8
mov r12, rdx
mov r14, rcx
mov rax, qword [0x1804a9038]
xor rax, rsp
mov qword [rsp + 0xe0], rax
mov r9d, dword [r8 + 0x10]
lea eax, [r9 - 1]
movabs rsi, 0x800000008000800b
cmp eax, 0x3f
ja 0x180018dd2
bt rsi, rax
jae 0x180018dd2
mov eax, dword [rbx + 0x2c]
mov qword [rsp + 0x28], rax
dec eax
cmp eax, 0x3f
ja 0x180018df0
bt rsi, rax
jae 0x180018df0
mov r15d, dword [rbx + 0x10]
mov esi, 0xaaaaaaaa
lea rdi, [rsp + 0xdc]
mov dword [rdi], esi
lea rcx, [r14 + 0x20]
mov qword [rsp + 0x38], rcx
mov rdx, rdi
mov r8d, r15d
call fcn.1800107a0
lea rdx, [rsp + 0xd8]
mov dword [rdx], esi
lea rcx, [r12 + 0x20]
mov qword [rsp + 0x88], rcx
mov r8, qword [rsp + 0x28]
call fcn.1800107a0
mov rcx, rdi
call fcn.180011470
mov dword [rsp + 0xc0], eax
mov cl, byte [rbx + 0x14]
mov eax, dword [r14 + 0x24]
mov r8d, dword [r14 + 0x28]
shr eax, cl
shr r8d, cl
cmp eax, 1
mov r10d, eax
adc r10d, 0
cmp r8d, 1
adc r8d, 0
mov qword [rsp + 0x48], r15
dec r15d
cmp r15d, 0x3f
ja 0x180018e64
mov ecx, 0x800b
bt rcx, r15
jae 0x180018e1b
mov dword [rsp + 0x20], r10d
mov dword [rsp + 0x44], r8d
mov cl, byte [rbx + 0x30]
mov eax, dword [r12 + 0x24]
mov r8d, dword [r12 + 0x28]
shr eax, cl
shr r8d, cl
cmp eax, 1
mov ecx, eax
adc ecx, 0
mov dword [rsp + 0x9c], ecx
cmp r8d, 1
adc r8d, 0
mov rcx, qword [rsp + 0x28]
lea esi, [rcx - 1]
cmp esi, 0x3f
ja 0x180018e91
mov ecx, 0x800b
bt rcx, rsi
jae 0x180018eb9
mov dword [rsp + 0x40], r8d
mov ebp, dword [rbx + 0x48]
mov r13d, dword [rbx + 0x4c]
mov eax, dword [rbx + 0x50]
mov dword [rsp + 0x24], eax
lea rdi, [rsp + 0xc4]
mov dword [rdi], 0xaaaaaaaa
mov rcx, qword [rsp + 0x38]
mov rdx, rdi
mov r8, qword [rsp + 0x48]
call fcn.1800107a0
mov rcx, rdi
call fcn.180010b10
test al, al
mov qword [rsp + 0x50], r13
jne 0x180018f3e
mov qword [rsp + 0x90], rbp
jmp 0x180018f81
lea rcx, str._s:_d_WARNING:_UNSUPPORTED:_srcSubresource.aspectMask__X_n
lea rdx, str....._third_party_swiftshader_srcVulkanVkImage.cpp
mov r8d, 0x1a8
call fcn.180171480
jmp 0x180018c73
lea rcx, str._s:_d_WARNING:_UNSUPPORTED:_dstSubresource.aspectMask__X_n
lea rdx, str....._third_party_swiftshader_srcVulkanVkImage.cpp
mov r8d, 0x1b2
mov r9, qword [rsp + 0x28]
call fcn.180171480
mov eax, dword [rbx + 0x2c]
mov qword [rsp + 0x28], rax
jmp 0x180018c90
movabs rcx, 0x8000000080000000
bt rcx, r15
jae 0x180018e64
mov rcx, qword [rsp + 0x38]
mov r9d, dword [rcx]
lea ecx, [r9 - 0x3b9d2b62]
cmp ecx, 0xb
ja 0x180018f1b
mov edx, 0x803
bt edx, ecx
jae 0x180018f1b
shr eax, 1
shr r8d, 1
mov dword [rsp + 0x44], r8d
mov dword [rsp + 0x20], eax
jmp 0x180018d34
mov dword [rsp + 0x20], r10d
mov dword [rsp + 0x44], r8d
lea rcx, str._s:_d_WARNING:_UNSUPPORTED:_aspect__x_n
lea rdx, str....._third_party_swiftshader_srcVulkanVkImage.cpp
mov r8d, 0x31f
mov r9, qword [rsp + 0x48]
call fcn.180171480
jmp 0x180018d34
mov dword [rsp + 0x40], r8d
lea rcx, str._s:_d_WARNING:_UNSUPPORTED:_aspect__x_n
lea rdx, str....._third_party_swiftshader_srcVulkanVkImage.cpp
mov r8d, 0x31f
mov r9, qword [rsp + 0x28]
call fcn.180171480
jmp 0x180018d82
movabs rcx, 0x8000000080000000
bt rcx, rsi
jae 0x180018e91
mov rcx, qword [rsp + 0x88]
mov r9d, dword [rcx]
lea ecx, [r9 - 0x3b9d2b62]
cmp ecx, 0xb
ja 0x180018f00
mov edx, 0x803
bt edx, ecx
jae 0x180018f00
shr eax, 1
shr r8d, 1
mov dword [rsp + 0x40], r8d
mov dword [rsp + 0x9c], eax
jmp 0x180018d82
mov dword [rsp + 0x40], r8d
lea rcx, str._s:_d_WARNING:_UNSUPPORTED:_format__d_n
lea rdx, str....._third_party_swiftshader_srcVulkanVkImage.cpp
mov r8d, 0x31b
jmp 0x180018eaf
mov dword [rsp + 0x20], r10d
mov dword [rsp + 0x44], r8d
lea rcx, str._s:_d_WARNING:_UNSUPPORTED:_format__d_n
lea rdx, str....._third_party_swiftshader_srcVulkanVkImage.cpp
mov r8d, 0x31b
jmp 0x180018e87
lea rdi, [rsp + 0xc4]
mov rcx, rdi
call fcn.1800113d0
mov r13d, eax
mov rcx, rdi
call fcn.180011420
mov ecx, eax
lea eax, [rbp + r13 - 1]
xor edx, edx
div r13d
mov rdx, qword [rsp + 0x50]
add edx, ecx
dec edx
mov qword [rsp + 0x90], rax
mov eax, edx
xor edx, edx
div ecx
mov qword [rsp + 0x50], rax
mov ecx, dword [r14 + 0x1c]
mov eax, dword [r12 + 0x1c]
mov dword [rsp + 0x5c], ecx
cmp ecx, 2
sete byte [rsp + 0x68]
mov dword [rsp + 0x34], eax
cmp eax, 2
sete byte [rsp + 0x60]
mov r8d, dword [rbx + 0x14]
mov rcx, r14
mov rdi, qword [rsp + 0x48]
mov edx, edi
call fcn.180018830
mov qword [rsp + 0xa0], rax
mov r8d, dword [rbx + 0x14]
mov rcx, r14
mov edx, edi
call fcn.1800189c0
mov qword [rsp + 0x70], rax
mov r8d, dword [rbx + 0x30]
mov rcx, r12
mov rdi, qword [rsp + 0x28]
mov edx, edi
call fcn.180018830
mov qword [rsp + 0xa8], rax
mov qword [rsp + 0xb0], rbx
mov r8d, dword [rbx + 0x30]
mov rcx, r12
mov edx, edi
call fcn.1800189c0
mov qword [rsp + 0xb8], rax
xor r13d, r13d
cmp dword [r14 + 0x30], 0
je 0x180019024
mov ebp, 0x800b
xor eax, eax
mov qword [rsp + 0x80], rax
jmp 0x1800190a0
xor eax, eax
mov qword [rsp + 0x80], rax
mov al, byte [rsp + 0x68]
xor al, byte [rsp + 0x60]
mov byte [rsp + 0x38], al
xor ebx, ebx
cmp dword [r12 + 0x30], 0
je 0x1800191c1
mov ebp, 0x800b
movabs r13, 0x8000000080000000
xor eax, eax
mov qword [rsp + 0x78], rax
jmp 0x180019151
lea rcx, str._s:_d_WARNING:_UNSUPPORTED:_aspect__x_n
lea rdx, str....._third_party_swiftshader_srcVulkanVkImage.cpp
mov r8d, 0x31f
mov r9, qword [rsp + 0x48]
call fcn.180171480
mov eax, ebx
movsxd rcx, dword [r14 + 0x38]
imul rdi, rcx
imul rdi, rax
add qword [rsp + 0x80], rdi
inc r13d
cmp r13d, dword [r14 + 0x30]
jae 0x18001902e
mov rcx, r14
mov rdx, qword [rsp + 0x48]
mov r8d, r13d
call fcn.1800189c0
mov rdi, rax
mov ebx, dword [r14 + 0x2c]
mov ecx, r13d
shr ebx, cl
cmp ebx, 1
adc ebx, 0
cmp r15d, 0x3f
ja 0x180019063
bt rbp, r15
jb 0x180019081
movabs rax, 0x8000000080000000
bt rax, r15
jae 0x180019063
mov rax, qword [rsp + 0x38]
mov r9d, dword [rax]
lea eax, [r9 - 0x3b9d2b62]
cmp eax, 0xb
ja 0x1800190fc
mov ecx, 0x803
bt ecx, eax
jb 0x180019081
lea rcx, str._s:_d_WARNING:_UNSUPPORTED:_format__d_n
lea rdx, str....._third_party_swiftshader_srcVulkanVkImage.cpp
mov r8d, 0x31b
jmp 0x18001907c
lea rcx, str._s:_d_WARNING:_UNSUPPORTED:_aspect__x_n
lea rdx, str....._third_party_swiftshader_srcVulkanVkImage.cpp
mov r8d, 0x31f
mov r9, qword [rsp + 0x28]
call fcn.180171480
mov eax, r15d
movsxd rcx, dword [r12 + 0x38]
imul rdi, rcx
imul rdi, rax
add qword [rsp + 0x78], rdi
inc ebx
cmp ebx, dword [r12 + 0x30]
jae 0x1800191c8
mov rcx, r12
mov rdx, qword [rsp + 0x28]
mov r8d, ebx
call fcn.1800189c0
mov rdi, rax
mov r15d, dword [r12 + 0x2c]
mov ecx, ebx
shr r15d, cl
cmp r15d, 1
adc r15d, 0
cmp esi, 0x3f
ja 0x180019115
bt rbp, rsi
jb 0x180019133
bt r13, rsi
jae 0x180019115
mov rax, qword [rsp + 0x88]
mov r9d, dword [rax]
lea eax, [r9 - 0x3b9d2b62]
cmp eax, 0xb
ja 0x1800191a8
mov ecx, 0x803
bt ecx, eax
jb 0x180019133
lea rcx, str._s:_d_WARNING:_UNSUPPORTED:_format__d_n
lea rdx, str....._third_party_swiftshader_srcVulkanVkImage.cpp
mov r8d, 0x31b
jmp 0x18001912e
xor eax, eax
mov qword [rsp + 0x78], rax
mov dl, byte [rsp + 0x68]
and dl, byte [rsp + 0x60]
cmp dword [rsp + 0x5c], 2
movsxd rcx, dword [rsp + 0x70]
mov rax, qword [rsp + 0x80]
mov qword [rsp + 0x28], rcx
cmove rax, rcx
mov qword [rsp + 0x80], rax
cmp dword [rsp + 0x34], 2
mov r13, qword [rsp + 0xb8]
movsxd rcx, r13d
mov rax, qword [rsp + 0x78]
mov qword [rsp + 0x48], rcx
cmove rax, rcx
mov qword [rsp + 0x78], rax
mov eax, dword [rsp + 0x24]
mov dword [rsp + 0x34], eax
cmp byte [rsp + 0x38], 0
mov rsi, qword [rsp + 0xb0]
jne 0x180019234
mov eax, dword [rsi + 0x1c]
mov dword [rsp + 0x34], eax
test dl, dl
mov rbx, qword [rsp + 0x50]
mov r15, qword [rsp + 0xa8]
jne 0x18001924d
mov eax, dword [r14 + 0x38]
mov dword [rsp + 0x24], eax
mov eax, dword [rsp + 0x24]
xor eax, 1
mov ecx, ebx
xor ecx, 1
or ecx, eax
sete byte [rsp + 0x5c]
mov eax, dword [rsi + 0x48]
xor ecx, ecx
cmp eax, dword [rsp + 0x20]
jne 0x1800192cb
mov dword [rsp + 0x20], 0
cmp eax, dword [rsp + 0x9c]
jne 0x1800192d3
lea rcx, [rsp + 0xd8]
call fcn.1800113d0
mov edi, eax
imul edi, dword [rsp + 0xa0]
lea rcx, [rsp + 0xdc]
call fcn.1800113d0
imul eax, r15d
cmp edi, eax
jne 0x1800192c9
mov eax, dword [rsp + 0x44]
xor eax, ebx
mov ecx, dword [rsp + 0x40]
xor ecx, ebx
or ecx, eax
xor r13d, dword [rsp + 0x70]
or r13d, ecx
sete al
mov dword [rsp + 0x20], eax
mov cl, 1
jmp 0x1800192d3
xor ecx, ecx
mov dword [rsp + 0x20], 0
mov dword [rsp + 0xb8], ecx
mov ebx, dword [rsi + 0x10]
mov dword [rsp + 0xc4], ebx
mov eax, dword [rsi + 0x14]
mov dword [rsp + 0x38], eax
mov dword [rsp + 0xc8], eax
mov eax, dword [rsi + 0x18]
mov r15d, eax
mov dword [rsp + 0xcc], eax
add rsi, 0x20
mov rdi, qword [r14]
test rdi, rdi
je 0x180019326
mov rcx, rdi
call fcn.180001010
test al, al
je 0x180019326
mov rcx, qword [r14]
mov edx, ebx
call fcn.180001010
mov rbp, rax
jmp 0x18001932a
mov rbp, qword [r14 + 0x10]
lea r13, [rsp + 0xc4]
mov rcx, r14
mov rdx, rsi
mov r8, r13
call fcn.180019e60
add rbp, rax
mov rcx, r14
mov edx, ebx
mov r8d, dword [rsp + 0x38]
mov r9d, r15d
call fcn.180018700
add rbp, rax
mov rcx, rdi
mov rdx, rbp
call fcn.1800103c0
mov rsi, rax
mov rax, qword [rsp + 0xb0]
mov ebp, dword [rax + 0x2c]
mov dword [r13], ebp
mov r15d, dword [rax + 0x30]
mov dword [r13 + 4], r15d
mov ecx, dword [rax + 0x34]
mov dword [r13 + 8], ecx
mov r13d, ecx
lea rdx, [rax + 0x3c]
mov rdi, qword [r12]
test rdi, rdi
je 0x1800193b9
mov rcx, rdi
mov rbx, rdx
call fcn.180001010
mov rdx, rbx
test al, al
je 0x1800193b9
mov rcx, qword [r12]
mov edx, ebp
call fcn.180001010
mov rdx, rbx
mov r14, rax
jmp 0x1800193be
mov r14, qword [r12 + 0x10]
mov rbx, qword [rsp + 0x50]
lea r8, [rsp + 0xc4]
mov rcx, r12
call fcn.180019e60
add r14, rax
mov rcx, r12
mov edx, ebp
mov r8d, r15d
mov r9d, r13d
call fcn.180018700
add r14, rax
mov rcx, rdi
mov rdx, r14
call fcn.1800103c0
cmp dword [rsp + 0x34], 0
mov r9, qword [rsp + 0x90]
je 0x1800195a6
mov rcx, rax
mov rdx, rsi
imul r9d, dword [rsp + 0xc0]
mov rax, qword [rsp + 0xa0]
movsxd rsi, eax
movsxd r15, dword [rsp + 0xa8]
mov r8d, ebx
imul r8d, eax
mov qword [rsp + 0x88], r8
mov rax, qword [rsp + 0x70]
imul eax, dword [rsp + 0x24]
mov qword [rsp + 0x70], rax
xor eax, eax
mov qword [rsp + 0xa0], r12
mov qword [rsp + 0x90], r9
mov r13, qword [rsp + 0x90]
jmp 0x18001950a
mov rcx, rdi
mov rdx, rbp
mov r8, r13
call fcn.1803665d0
add rbp, rsi
add rdi, r15
dec r12d
jne 0x180019466
add rbx, qword [rsp + 0x28]
add r14, qword [rsp + 0x48]
mov eax, dword [rsp + 0x38]
inc eax
cmp eax, dword [rsp + 0x24]
je 0x1800194cb
mov dword [rsp + 0x38], eax
mov rax, qword [rsp + 0x50]
mov r12d, eax
mov rdi, r14
mov rbp, rbx
test eax, eax
jne 0x180019466
jmp 0x18001947f
cmp byte [rsp + 0x5c], 0
mov r8, qword [rsp + 0x88]
cmovne r8, r9
test al, al
cmove r8, qword [rsp + 0x70]
call fcn.1803665d0
mov rdx, qword [rsp + 0x68]
add rdx, qword [rsp + 0x80]
mov rcx, qword [rsp + 0x60]
add rcx, qword [rsp + 0x78]
mov eax, dword [rsp + 0xa8]
inc eax
cmp eax, dword [rsp + 0x34]
mov r12, qword [rsp + 0xa0]
mov rbx, qword [rsp + 0x50]
mov r9, qword [rsp + 0x90]
je 0x1800195a6
mov dword [rsp + 0xa8], eax
cmp ebx, 1
sete al
cmp dword [rsp + 0x24], 1
sete r10b
mov r8d, dword [rsp + 0xb8]
or al, r8b
and al, r10b
mov r10d, eax
or r10b, byte [rsp + 0x20]
mov qword [rsp + 0x68], rdx
mov qword [rsp + 0x60], rcx
jne 0x1800194ad
test r8b, r8b
jne 0x180019567
cmp dword [rsp + 0x24], 0
je 0x1800194cb
xor eax, eax
mov r14, qword [rsp + 0x60]
mov rbx, qword [rsp + 0x68]
jmp 0x180019495
cmp dword [rsp + 0x24], 0
je 0x1800194cb
mov ebx, dword [rsp + 0x24]
mov rdi, qword [rsp + 0x60]
mov rbp, qword [rsp + 0x68]
mov rcx, rdi
mov rdx, rbp
mov r8, qword [rsp + 0x88]
call fcn.1803665d0
add rdi, qword [rsp + 0x48]
add rbp, qword [rsp + 0x28]
dec ebx
jne 0x180019580
jmp 0x1800194cb
mov rcx, qword [rsp + 0xb0]
mov eax, dword [rcx + 0x2c]
lea rdx, [rsp + 0xc4]
mov dword [rdx], eax
mov eax, dword [rcx + 0x30]
mov dword [rdx + 4], eax
mov dword [rdx + 8], 1
mov eax, dword [rcx + 0x34]
mov dword [rdx + 0xc], eax
mov eax, dword [rcx + 0x38]
mov dword [rdx + 0x10], eax
mov rcx, r12
xor r8d, r8d
call fcn.180019790
mov rcx, qword [rsp + 0xe0]
xor rcx, rsp
call fcn.180364a40
nop
add rsp, 0xe8
pop rbx
pop rbp
pop rdi
pop rsi
pop r12
pop r13
pop r14
pop r15
ret