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

Disassembly:
mov qword [rsp + 8], rcx
push rbx
sub rsp, 0x70
mov rax, qword [rcx + 0x20]
mov qword [rsp + 0x68], rsi
mov rsi, rcx
mov rcx, qword [rax + 0x18]
mov qword [rsp + 0x58], r12
mov r12d, edx
test rcx, rcx
je 0x1800316fd
call qword [0x1801719a0]
mov rcx, qword [rsi + 0x28]
cmp byte [rcx + 0x11], 0
je 0x180031715
inc dword [rcx + 0x14]
cmp byte [rcx + 0x12], 0
jne 0x180031715
call fcn.180022fb0
mov rax, qword [rsi]
test rax, rax
je 0x18003172c
mov rcx, qword [rax + 0x18]
test rcx, rcx
je 0x18003172c
call qword [0x1801719a0]
mov ebx, dword [rsi + 0x30]
test ebx, ebx
je 0x180031741
cmp ebx, 5
je 0x180031741
cmp ebx, 6
jne 0x180031fbb
cmp qword [rsi], 0
mov r9, qword [rsi + 0x28]
mov qword [rsp + 0x88], rbp
mov rax, qword [r9 + 8]
mov qword [rsp + 0x60], rdi
mov qword [rsp + 0x50], r13
mov rcx, qword [rax]
mov rax, qword [rsi + 8]
mov qword [rsp + 0x48], r14
mov qword [rsp + 0x38], rcx
mov rcx, qword [rax + 8]
mov qword [rsp + 0x40], r15
mov r13, qword [rcx]
mov dword [rsp + 0x20], 0
mov qword [rsp + 0x30], r13
je 0x18003179c
mov rax, qword [r9 + 8]
cmp byte [rax + 0x24], 2
jne 0x18003179c
mov ebx, 5
jmp 0x1800317cf
xor ebx, ebx
test r9, r9
je 0x1800317ac
movzx eax, byte [r9 + 0x10]
test eax, eax
jne 0x1800317cf
cmp byte [r9 + 0x11], bl
jne 0x1800317b8
cmp byte [r9 + 0x10], bl
jne 0x1800317c7
xor r8d, r8d
xor edx, edx
mov rcx, r9
call fcn.1800266b0
mov ebx, eax
mov dword [rsp + 0x20], 1
cmp dword [rsi + 0x14], 0
mov edi, 7
jne 0x180031804
test ebx, ebx
jne 0x180031882
mov rax, qword [rsi + 0x28]
xor r9d, r9d
xor r8d, r8d
mov rcx, qword [rax + 8]
mov edx, dword [rcx + 0x34]
mov rcx, qword [rsi + 8]
call fcn.180025f90
cmp eax, edi
jne 0x180031808
mov ebx, edi
jmp 0x180031882
test ebx, ebx
jne 0x180031882
cmp dword [rsi + 0x14], 0
jne 0x180031882
mov r9, qword [rsi + 8]
lea r8, [rsi + 0x10]
cmp byte [r9 + 0x11], 0
jne 0x180031868
movzx eax, byte [r9 + 0x10]
test al, al
je 0x180031868
cmp al, 1
je 0x180031868
mov r10, qword [r9 + 8]
test r8, r8
je 0x180031843
mov rax, qword [r10 + 0x18]
mov rcx, qword [rax + 0x50]
mov eax, dword [rcx + 0x28]
bswap eax
mov dword [r8], eax
mov rax, qword [r9]
mov rcx, qword [r10]
mov edx, dword [rax + 0x308]
cmp edx, dword [rcx + 0x80]
jle 0x180031864
cmp byte [rcx + 0xa], 0
je 0x180031864
call fcn.18001eb90
jmp 0x180031875
xor ebx, ebx
jmp 0x180031877
mov edx, 2
mov rcx, r9
call fcn.1800266b0
mov ebx, eax
test ebx, ebx
jne 0x180031882
mov dword [rsi + 0x14], 1
mov rax, qword [rsi + 0x28]
mov rcx, qword [rax + 8]
mov rax, qword [rsi + 8]
mov rax, qword [rax + 8]
mov edx, dword [rcx + 0x34]
mov r8d, dword [rax + 0x34]
mov rax, qword [rax]
mov dword [rsp + 0x90], edx
movzx r15d, byte [rax + 9]
mov dword [rsp + 0x98], r8d
test ebx, ebx
jne 0x1800318d1
cmp r15d, 5
je 0x1800318c6
cmp byte [r13 + 0x10], bl
jne 0x1800318c6
cmp byte [r13 + 0x14], bl
je 0x1800318d1
mov eax, 8
cmp edx, r8d
cmovne ebx, eax
mov r14d, dword [rcx + 0x40]
xor ebp, ebp
test r12d, r12d
js 0x1800318e1
cmp ebp, r12d
jge 0x180031952
mov edi, dword [rsi + 0x18]
cmp edi, r14d
ja 0x180031952
test ebx, ebx
jne 0x180031998
mov rax, qword [rsi + 0x28]
xor edx, edx
mov rcx, qword [rax + 8]
mov eax, dword [0x180171918]
div dword [rcx + 0x34]
inc eax
cmp edi, eax
je 0x18003194b
mov rax, qword [rsp + 0x38]
lea r9d, [rbx + 2]
lea r8, [rsp + 0x28]
mov rcx, rax
mov edx, edi
call qword [rax + 0x110]
mov ebx, eax
test eax, eax
jne 0x18003194b
mov rax, qword [rsp + 0x28]
xor r9d, r9d
mov edx, edi
mov r8, qword [rax + 8]
mov rcx, rsi
call fcn.180031520
mov rcx, qword [rsp + 0x28]
mov ebx, eax
call fcn.18001de80
inc dword [rsi + 0x18]
inc ebp
jmp 0x1800318d7
test ebx, ebx
jne 0x180031998
mov ecx, dword [rsi + 0x18]
mov eax, r14d
mov dword [rsi + 0x38], r14d
sub eax, ecx
inc eax
mov dword [rsi + 0x34], eax
cmp ecx, r14d
ja 0x1800319a1
cmp dword [rsi + 0x3c], ebx
jne 0x180031e78
mov rax, qword [rsi + 0x28]
mov rcx, qword [rax + 8]
mov rdx, qword [rcx]
mov rax, qword [rdx + 0x70]
mov qword [rsi + 0x40], rax
mov qword [rdx + 0x70], rsi
mov dword [rsi + 0x3c], 1
jmp 0x180031e78
cmp ebx, 0x65
jne 0x180031e78
test r14d, r14d
jne 0x1800319fd
mov rdi, qword [rsi + 8]
cmp byte [rdi + 0x11], r14b
je 0x1800319c1
inc dword [rdi + 0x14]
cmp byte [rdi + 0x12], r14b
jne 0x1800319c1
mov rcx, rdi
call fcn.180022fb0
mov rax, qword [rdi + 8]
mov dword [rax + 0x40], 0
mov rcx, qword [rdi + 8]
call fcn.1800265d0
cmp byte [rdi + 0x11], 0
mov ebx, eax
je 0x1800319ea
dec dword [rdi + 0x14]
jne 0x1800319ea
mov rcx, rdi
call fcn.180022f80
mov r14d, 1
test ebx, ebx
je 0x1800319fd
cmp ebx, 0x65
jne 0x180031ab1
mov rdi, qword [rsi + 8]
mov r12d, dword [rsi + 0x10]
mov rbx, qword [rdi + 8]
inc r12d
cmp byte [rdi + 0x11], 0
je 0x180031a23
inc dword [rdi + 0x14]
cmp byte [rdi + 0x12], 0
jne 0x180031a23
mov rcx, rdi
call fcn.180022fb0
mov rax, qword [rbx + 0x18]
mov rbp, qword [rax + 0x70]
mov r13, qword [rax + 0x50]
test byte [rbp + 0x34], 4
mov rdx, qword [rbp + 0x28]
je 0x180031a68
mov eax, dword [rbp + 0x30]
cmp dword [rdx + 0x20], eax
jb 0x180031a68
cmp dword [rdx + 0x80], 0
je 0x180031a64
mov rcx, rbp
call fcn.180019530
test eax, eax
je 0x180031a60
mov rcx, rbp
call fcn.18001caf0
jmp 0x180031a8c
xor ebx, ebx
jmp 0x180031a8e
xor ebx, ebx
jmp 0x180031a92
mov ebx, dword [rdx + 0x30]
test ebx, ebx
jne 0x180031a99
mov eax, dword [rdx + 0xc8]
mov rcx, rbp
cmp dword [rdx + 0xb8], eax
jbe 0x180031a87
call fcn.18001e350
jmp 0x180031a8c
call fcn.18001e290
mov ebx, eax
test ebx, ebx
jne 0x180031a99
bswap r12d
mov dword [r13 + 0x28], r12d
cmp byte [rdi + 0x11], 0
je 0x180031aac
dec dword [rdi + 0x14]
jne 0x180031aac
mov rcx, rdi
call fcn.180022f80
mov r13, qword [rsp + 0x30]
test ebx, ebx
jne 0x180031e78
mov rcx, qword [rsi]
test rcx, rcx
je 0x180031ac6
call fcn.180064900
cmp r15d, 5
jne 0x180031ae3
mov rcx, qword [rsi + 8]
lea edx, [r15 - 3]
call fcn.180031120
mov ebx, eax
test eax, eax
jne 0x180031e78
mov ebp, dword [rsp + 0x98]
movsxd r8, dword [rsp + 0x90]
cmp r8d, ebp
jge 0x180031b26
mov eax, ebp
cdq
idiv r8d
mov ecx, eax
lea eax, [rax + r14 - 1]
cdq
idiv ecx
xor edx, edx
mov edi, eax
mov rax, qword [rsi + 8]
mov rcx, qword [rax + 8]
mov eax, dword [0x180171918]
div dword [rcx + 0x34]
inc eax
cmp edi, eax
jne 0x180031b32
dec edi
jmp 0x180031b32
mov eax, r8d
cdq
idiv ebp
mov edi, eax
imul edi, r14d
cmp r8d, ebp
jge 0x180031d43
mov r15, qword [rsp + 0x30]
movsxd r14, r14d
mov r13, r8
mov r12, qword [r15 + 0x48]
mov ebp, dword [r15 + 0x20]
imul r14, r8
cmp edi, ebp
ja 0x180031ba7
mov rax, qword [rsi + 8]
xor edx, edx
mov rcx, qword [rax + 8]
mov eax, dword [0x180171918]
div dword [rcx + 0x34]
inc eax
cmp edi, eax
je 0x180031b9f
lea r8, [rsp + 0x30]
xor r9d, r9d
mov edx, edi
mov rcx, r15
call qword [r15 + 0x110]
mov ebx, eax
test eax, eax
jne 0x180031b9f
mov rcx, qword [rsp + 0x30]
call fcn.18001e600
mov rcx, qword [rsp + 0x30]
mov ebx, eax
call fcn.18001de80
inc edi
test ebx, ebx
je 0x180031b52
jmp 0x180031bbb
test ebx, ebx
jne 0x180031bbb
lea r8d, [rbx + 1]
xor edx, edx
mov rcx, r15
call fcn.18001e800
mov ebx, eax
mov edx, dword [0x180171918]
mov r8d, dword [rsp + 0x98]
mov rbp, r14
lea eax, [rdx + r8]
movsxd rcx, eax
mov eax, dword [rsp + 0x90]
cmp rcx, r14
cmovl rbp, rcx
add eax, edx
movsxd rdi, eax
test ebx, ebx
jne 0x180031e78
nop
cmp rdi, rbp
jge 0x180031cbe
mov rax, rdi
lea r8, [rsp + 0x98]
xor r9d, r9d
cqo
mov qword [rsp + 0x98], 0
idiv r13
lea edx, [rax + 1]
mov rax, qword [rsp + 0x38]
mov rcx, rax
call qword [rax + 0x110]
mov ebx, eax
test eax, eax
jne 0x180031c53
mov rax, qword [rsp + 0x98]
mov r10, qword [r12]
mov r8d, dword [rsp + 0x90]
mov rdx, qword [rax + 8]
mov r9, rdi
mov rcx, r12
call qword [r10 + 0x18]
mov ebx, eax
mov r8, qword [rsp + 0x98]
test r8, r8
je 0x180031cae
test byte [r8 + 0x34], 0x20
je 0x180031ca6
mov r10, qword [r8 + 0x28]
dec dword [r10 + 0x98]
mov rax, qword [r10 + 0xa8]
mov qword [r8 + 0x20], rax
mov rcx, qword [r10 + 0x48]
mov qword [r10 + 0xa8], r8
mov edx, dword [r8 + 0x30]
mov r9, qword [rcx]
mov r8, qword [r8 + 8]
dec edx
imul rdx, qword [r10 + 0xc8]
call qword [r9 + 0x90]
jmp 0x180031cae
mov rcx, r8
call fcn.180017620
add rdi, r13
test ebx, ebx
je 0x180031bf0
jmp 0x180031e78
test ebx, ebx
jne 0x180031e78
mov rax, qword [r12]
lea rdx, [rsp + 0x90]
mov rcx, r12
call qword [rax + 0x30]
mov ebx, eax
test eax, eax
jne 0x180031cf7
cmp qword [rsp + 0x90], r14
jle 0x180031cf7
mov rax, qword [r12]
mov rdx, r14
mov rcx, r12
call qword [rax + 0x20]
mov ebx, eax
test ebx, ebx
jne 0x180031e78
mov rcx, qword [r15 + 0x48]
mov rax, qword [rcx]
test rax, rax
je 0x180031d21
lea edx, [rbx + 0x15]
xor r8d, r8d
call qword [rax + 0x50]
mov ebx, eax
cmp eax, 0xc
je 0x180031d21
test eax, eax
jne 0x180031d56
jmp 0x180031d23
xor ebx, ebx
cmp byte [r15 + 0xb], 0
jne 0x180031d56
movzx edx, byte [r15 + 0xe]
mov rcx, qword [r15 + 0x48]
test edx, edx
je 0x180031d3f
mov rax, qword [rcx]
call qword [rax + 0x28]
jmp 0x180031d54
xor ebx, ebx
jmp 0x180031d56
xor r8d, r8d
xor edx, edx
mov rcx, r13
mov dword [r13 + 0x20], edi
call fcn.18001e800
mov ebx, eax
test ebx, ebx
jne 0x180031e78
mov rdi, qword [rsi + 8]
cmp byte [rdi + 0x10], bl
je 0x180031e73
cmp byte [rdi + 0x11], bl
je 0x180031d80
inc dword [rdi + 0x14]
cmp byte [rdi + 0x12], bl
jne 0x180031d80
mov rcx, rdi
call fcn.180022fb0
cmp byte [rdi + 0x10], 2
jne 0x180031e58
mov r13, qword [rdi + 8]
mov rcx, qword [r13]
call fcn.18001e9d0
mov ebx, eax
test eax, eax
je 0x180031dbd
cmp byte [rdi + 0x11], 0
je 0x180031e78
dec dword [rdi + 0x14]
jne 0x180031e78
mov rcx, rdi
call fcn.180022f80
jmp 0x180031e78
dec dword [rdi + 0x1c]
mov r12, qword [r13 + 0x60]
mov byte [r13 + 0x24], 1
test r12, r12
je 0x180031e50
cmp dword [r12 + 8], 0
je 0x180031df5
lea rbx, [r12 + 0x10]
mov ebp, 0x3e
mov rcx, qword [rbx]
call fcn.180017150
add rbx, 8
dec rbp
jne 0x180031de4
cmp dword [0x180171920], 0
je 0x180031e47
mov rcx, qword [0x1801811a8]
test rcx, rcx
je 0x180031e10
call qword [0x1801719a0]
mov rcx, r12
call qword [0x180171958]
dec qword [0x180181138]
mov rcx, r12
movsxd rdx, eax
sub qword [0x1801810f0], rdx
call qword [0x180171948]
mov rcx, qword [0x1801811a8]
test rcx, rcx
je 0x180031e50
call qword [0x1801719b0]
jmp 0x180031e50
mov rcx, r12
call qword [0x180171948]
mov qword [r13 + 0x60], 0
mov rcx, rdi
call fcn.180027720
cmp byte [rdi + 0x11], 0
je 0x180031e73
dec dword [rdi + 0x14]
jne 0x180031e73
mov rcx, rdi
call fcn.180022f80
mov ebx, 0x65
cmp dword [rsp + 0x20], 0
mov r15, qword [rsp + 0x40]
mov r14, qword [rsp + 0x48]
je 0x180031f98
mov rcx, qword [rsi + 0x28]
xor edx, edx
call fcn.180027670
mov rdi, qword [rsi + 0x28]
cmp byte [rdi + 0x10], 0
je 0x180031f98
cmp byte [rdi + 0x11], 0
je 0x180031ebd
inc dword [rdi + 0x14]
cmp byte [rdi + 0x12], 0
jne 0x180031ebd
mov rcx, rdi
call fcn.180022fb0
cmp byte [rdi + 0x10], 2
jne 0x180031f7d
mov r13, qword [rdi + 8]
mov rcx, qword [r13]
call fcn.18001e9d0
test eax, eax
jne 0x180031f85
dec dword [rdi + 0x1c]
mov r12, qword [r13 + 0x60]
mov byte [r13 + 0x24], 1
test r12, r12
je 0x180031f75
cmp dword [r12 + 8], eax
je 0x180031f1a
lea rbp, [r12 + 0x10]
lea esi, [rax + 0x3e]
mov rcx, qword [rbp]
call fcn.180017150
add rbp, 8
dec rsi
jne 0x180031f00
mov rsi, qword [rsp + 0x80]
cmp dword [0x180171920], 0
je 0x180031f6c
mov rcx, qword [0x1801811a8]
test rcx, rcx
je 0x180031f35
call qword [0x1801719a0]
mov rcx, r12
call qword [0x180171958]
dec qword [0x180181138]
mov rcx, r12
movsxd rdx, eax
sub qword [0x1801810f0], rdx
call qword [0x180171948]
mov rcx, qword [0x1801811a8]
test rcx, rcx
je 0x180031f75
call qword [0x1801719b0]
jmp 0x180031f75
mov rcx, r12
call qword [0x180171948]
mov qword [r13 + 0x60], 0
mov rcx, rdi
call fcn.180027720
cmp byte [rdi + 0x11], 0
je 0x180031f98
dec dword [rdi + 0x14]
jne 0x180031f98
mov rcx, rdi
call fcn.180022f80
mov r13, qword [rsp + 0x50]
mov rdi, qword [rsp + 0x60]
mov rbp, qword [rsp + 0x88]
cmp ebx, 0xc0a
mov eax, 7
cmove ebx, eax
mov dword [rsi + 0x30], ebx
mov rax, qword [rsi]
mov r12, qword [rsp + 0x58]
test rax, rax
je 0x180031fd7
mov rcx, qword [rax + 0x18]
test rcx, rcx
je 0x180031fd7
call qword [0x1801719b0]
mov rcx, qword [rsi + 0x28]
cmp byte [rcx + 0x11], 0
je 0x180031feb
dec dword [rcx + 0x14]
jne 0x180031feb
call fcn.180022f80
mov rcx, qword [rsi + 0x20]
mov rsi, qword [rsp + 0x68]
mov rcx, qword [rcx + 0x18]
test rcx, rcx
je 0x180032003
call qword [0x1801719b0]
mov eax, ebx
add rsp, 0x70
pop rbx
ret