Function at 0x18000b390
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, 0xa8
mov r12, rcx
mov r14, qword [rcx + 0xb0]
mov r15, qword [rcx + 0xb8]
mov eax, dword [rcx + 0xa8]
mov dword [rsp + 0x58], eax
lea rax, [rcx + 0x192a2]
mov qword [rsp + 0x98], rax
lea rax, [rcx + 0x92aa]
mov qword [rsp + 0x90], rax
jmp 0x18000b402
mov qword [r12 + 0xb0], r14
mov qword [r12 + 0xb8], r15
mov rcx, r12
xor edx, edx
call fcn.18000bfb0
test eax, eax
jne 0x18000bf8d
test r15, r15
je 0x18000b420
mov r9d, dword [r12 + 0x28]
mov r8d, dword [r12 + 0x2c]
lea eax, [r8 + r9]
cmp eax, 1
ja 0x18000b44b
jmp 0x18000b531
cmp dword [rsp + 0x58], 0
je 0x18000bf73
mov r9d, dword [r12 + 0x28]
test r9d, r9d
je 0x18000bf73
mov r8d, dword [r12 + 0x2c]
lea eax, [r8 + r9]
cmp eax, 1
jbe 0x18000b528
mov ebx, dword [r12 + 0x24]
lea esi, [rbx + r9]
add esi, 0xfffffffe
mov eax, esi
and eax, 0x7fff
movzx eax, byte [r12 + rax + 0xc8]
lea ecx, [rbx + r9]
add ecx, 0xffffffff
and ecx, 0x7fff
movzx ebp, byte [r12 + rcx + 0xc8]
mov edx, 0x102
sub edx, r9d
cmp r15, rdx
cmovb rdx, r15
sub r15, rdx
lea r11d, [rdx + r9]
mov dword [r12 + 0x28], r11d
test rdx, rdx
je 0x18000b639
add ebx, r9d
lea r9, [r14 + rdx]
shl eax, 5
xor eax, ebp
jmp 0x18000b4f0
add r14, 1
movzx ecx, cl
shl eax, 5
and eax, 0x7fe0
xor eax, ecx
movzx ecx, word [r12 + rax*2 + 0x292aa]
mov edi, esi
and edi, 0x7fff
mov word [r12 + rdi*2 + 0x192aa], cx
mov word [r12 + rax*2 + 0x292aa], si
add ebx, 1
add esi, 1
add rdx, 0xffffffffffffffff
je 0x18000b520
and ebx, 0x7fff
movzx ecx, byte [r14]
mov byte [r12 + rbx + 0xc8], cl
cmp ebx, 0x100
ja 0x18000b4b0
mov ebp, ebx
mov byte [r12 + rbp + 0x80c8], cl
jmp 0x18000b4b0
mov r14, r9
jmp 0x18000b639
test r15, r15
je 0x18000b670
mov r11d, r9d
lea r10d, [r9 - 2]
add r9d, r8d
add r9d, 1
xor edx, edx
jmp 0x18000b55d
add rdx, 1
cmp r15, rdx
je 0x18000b630
lea eax, [r11 + rdx]
cmp eax, 0x101
ja 0x18000b620
movzx ebx, byte [r14 + rdx]
mov eax, dword [r12 + 0x24]
lea ebp, [r11 + rdx]
add ebp, eax
and ebp, 0x7fff
mov byte [r12 + rbp + 0xc8], bl
cmp ebp, 0x100
ja 0x18000b59c
mov ecx, ebp
mov byte [r12 + rcx + 0x80c8], bl
lea ecx, [r11 + rdx]
add ecx, 1
mov dword [r12 + 0x28], ecx
lea ecx, [r9 + rdx]
cmp ecx, 3
jb 0x18000b550
movzx edi, bl
lea ebx, [r10 + rdx]
add ebx, eax
and ebx, 0x7fff
movzx ebp, byte [r12 + rbx + 0xc8]
lea ecx, [r11 + rdx]
lea esi, [rax + rcx]
add esi, 0xffffffff
and esi, 0x7fff
movzx esi, byte [r12 + rsi + 0xc8]
shl rsi, 5
xor rsi, rdi
and ebp, 0x1f
shl rbp, 0xa
xor rbp, rsi
movzx esi, word [r12 + rbp*2 + 0x292aa]
mov word [r12 + rbx*2 + 0x192aa], si
add eax, ecx
add eax, 0xfffffffe
mov word [r12 + rbp*2 + 0x292aa], ax
jmp 0x18000b550
add r11d, edx
add r14, rdx
sub r15, rdx
mov r9d, r11d
jmp 0x18000b673
add r11d, edx
add r14, rdx
xor r15d, r15d
mov eax, 0x8000
sub eax, r11d
cmp eax, r8d
cmovae eax, r8d
cmp r11d, 0x102
setb cl
mov dword [rsp + 0x38], eax
mov dword [r12 + 0x2c], eax
cmp dword [rsp + 0x58], 0
jne 0x18000b698
cmp r11d, 0x102
jae 0x18000b698
jmp 0x18000bf76
xor r15d, r15d
mov eax, 0x8000
sub eax, r9d
cmp eax, r8d
cmovae eax, r8d
mov dword [rsp + 0x38], eax
mov dword [r12 + 0x2c], eax
cmp r9d, 0x102
setb cl
mov r11d, r9d
mov qword [rsp + 0xa0], r15
mov r13d, r11d
mov ebx, dword [r12 + 0x68]
test ebx, ebx
mov r15d, ebx
mov eax, 2
cmove r15d, eax
mov eax, dword [r12 + 0x10]
mov esi, dword [r12 + 0x24]
mov edi, esi
and edi, 0x7fff
mov dword [rsp + 0x5c], eax
test eax, 0x90000
je 0x18000b750
xor ebp, ebp
cmp dword [rsp + 0x38], 0
je 0x18000bb30
mov eax, dword [rsp + 0x5c]
and eax, 0x80000
jne 0x18000bb30
test r13d, r13d
je 0x18000bb16
lea eax, [rsi - 1]
and eax, 0x7fff
mov al, byte [r12 + rax + 0xc8]
and esi, 0x7fff
xor r15d, r15d
nop word cs:[rax + rax]
nop dword [rax + rax]
lea ecx, [rsi + r15]
cmp byte [r12 + rcx + 0xc8], al
jne 0x18000bb19
add r15, 1
cmp r13, r15
jne 0x18000b720
mov r15d, r13d
jmp 0x18000bb19
mov byte [rsp + 0x2f], cl
mov qword [rsp + 0x50], rsi
lea rsi, [r12 + rdi]
add rsi, 0xc8
mov rcx, rsi
call fcn.18000f0c0
mov word [rsp + 0x46], ax
xor ebp, ebp
mov qword [rsp + 0x78], r13
cmp r15d, r13d
jae 0x18000bb30
mov qword [rsp + 0x88], rsi
mov dword [rsp + 0x3c], ebx
lea eax, [rdi - 1]
mov qword [rsp + 0x80], rax
lea eax, [rdi + r15]
add eax, 0xffffffff
lea rcx, [r12 + rax]
add rcx, 0xc8
call fcn.18000f0c0
xor ecx, ecx
cmp r15d, 0x1f
seta cl
mov word [rsp + 0x2c], ax
mov eax, dword [r12 + rcx*4 + 0x14]
mov dword [rsp + 0x40], eax
lea rax, [r12 + rdi]
mov qword [rsp + 0x48], rax
mov dword [rsp + 0x28], 0
mov r13d, edi
mov qword [rsp + 0x68], rdi
lea eax, [r15 - 1]
mov qword [rsp + 0x70], rax
mov rcx, qword [rsp + 0x50]
mov edx, dword [rsp + 0x40]
add edx, 0xffffffff
mov ebx, dword [rsp + 0x3c]
test edx, edx
je 0x18000bb0e
mov eax, r13d
movzx r13d, word [r12 + rax*2 + 0x192aa]
test r13d, r13d
je 0x18000bb0e
mov dword [rsp + 0x40], edx
mov eax, ecx
sub eax, r13d
movzx ebp, ax
cmp dword [rsp + 0x38], ebp
jb 0x18000bb0e
and r13d, 0x7fff
mov rax, qword [rsp + 0x70]
add eax, r13d
lea rcx, [r12 + rax]
add rcx, 0xc8
call fcn.18000f0c0
cmp ax, word [rsp + 0x2c]
je 0x18000b8f0
movzx r13d, word [r12 + r13*2 + 0x192aa]
test r13d, r13d
je 0x18000bb0e
mov rax, qword [rsp + 0x50]
sub eax, r13d
movzx ebp, ax
cmp dword [rsp + 0x38], ebp
jb 0x18000bb0e
and r13d, 0x7fff
mov rax, qword [rsp + 0x70]
add eax, r13d
lea rcx, [r12 + rax]
add rcx, 0xc8
call fcn.18000f0c0
cmp ax, word [rsp + 0x2c]
je 0x18000b8f0
movzx r13d, word [r12 + r13*2 + 0x192aa]
test r13d, r13d
je 0x18000bb0e
mov rax, qword [rsp + 0x50]
sub eax, r13d
movzx ebp, ax
cmp dword [rsp + 0x38], ebp
jb 0x18000bb0e
and r13d, 0x7fff
mov rax, qword [rsp + 0x70]
add eax, r13d
lea rcx, [r12 + rax]
add rcx, 0xc8
call fcn.18000f0c0
cmp ax, word [rsp + 0x2c]
jne 0x18000b91a
nop
test ebp, ebp
je 0x18000bb0e
mov esi, r13d
lea rdi, [r12 + rsi]
add rdi, 0xc8
mov rcx, rdi
call fcn.18000f0c0
cmp ax, word [rsp + 0x46]
je 0x18000b933
mov rdi, qword [rsp + 0x68]
mov edx, dword [rsp + 0x40]
add edx, 0xffffffff
mov rcx, qword [rsp + 0x50]
test edx, edx
jne 0x18000b800
jmp 0x18000bb0e
lea rax, [r12 + rsi]
mov qword [rsp + 0x60], rax
xor eax, eax
mov qword [rsp + 0x30], rax
mov rax, qword [rsp + 0x48]
nop dword [rax + rax]
mov rcx, qword [rsp + 0x30]
lea rbx, [rax + rcx]
add rbx, 0xca
mov rcx, rbx
call fcn.18000f0c0
mov word [rsp + 0x26], ax
mov rax, qword [rsp + 0x60]
mov rcx, qword [rsp + 0x30]
add rcx, rax
add rcx, 0xca
call fcn.18000f0c0
cmp word [rsp + 0x26], ax
jne 0x18000ba82
mov rax, qword [rsp + 0x48]
mov rcx, qword [rsp + 0x30]
lea rbx, [rax + rcx]
add rbx, 0xcc
mov rcx, rbx
call fcn.18000f0c0
mov word [rsp + 0x26], ax
mov rax, qword [rsp + 0x60]
mov rcx, qword [rsp + 0x30]
add rcx, rax
add rcx, 0xcc
call fcn.18000f0c0
cmp word [rsp + 0x26], ax
jne 0x18000ba88
mov rax, qword [rsp + 0x48]
mov rcx, qword [rsp + 0x30]
lea rbx, [rax + rcx]
add rbx, 0xce
mov rcx, rbx
call fcn.18000f0c0
mov word [rsp + 0x26], ax
mov rax, qword [rsp + 0x60]
mov rcx, qword [rsp + 0x30]
add rcx, rax
add rcx, 0xce
call fcn.18000f0c0
cmp word [rsp + 0x26], ax
jne 0x18000ba8e
mov rax, qword [rsp + 0x48]
mov rcx, qword [rsp + 0x30]
lea rbx, [rax + rcx]
add rbx, 0xd0
mov rcx, rbx
call fcn.18000f0c0
mov word [rsp + 0x26], ax
mov rax, qword [rsp + 0x60]
mov rcx, qword [rsp + 0x30]
add rcx, rax
add rcx, 0xd0
call fcn.18000f0c0
cmp word [rsp + 0x26], ax
jne 0x18000ba94
add rdi, 8
mov rax, qword [rsp + 0x30]
add rax, 8
mov qword [rsp + 0x30], rax
cmp eax, 0x100
mov rax, qword [rsp + 0x48]
jne 0x18000b950
jmp 0x18000bf46
add rdi, 2
jmp 0x18000baa7
add rdi, 4
jmp 0x18000baa7
add rdi, 6
jmp 0x18000baa7
add rsi, r12
mov rax, qword [rsp + 0x30]
lea rdi, [rax + rsi]
add rdi, 0xd0
mov eax, ebx
sub eax, dword [rsp + 0x88]
and eax, 0xfffffffe
mov cl, byte [rbx]
xor ebx, ebx
cmp cl, byte [rdi]
sete bl
or ebx, eax
cmp ebx, r15d
mov rdi, qword [rsp + 0x68]
mov rcx, qword [rsp + 0x50]
jbe 0x18000b7ed
mov rax, qword [rsp + 0x78]
cmp ebx, eax
cmova ebx, eax
jae 0x18000bf67
mov rax, qword [rsp + 0x80]
add eax, ebx
lea rcx, [r12 + rax]
add rcx, 0xc8
call fcn.18000f0c0
mov word [rsp + 0x2c], ax
mov eax, ebp
mov dword [rsp + 0x28], ebp
mov r15d, ebx
jmp 0x18000b7df
mov eax, dword [rsp + 0x28]
mov ebp, eax
jmp 0x18000bb30
xor r15d, r15d
xor ebp, ebp
cmp r15d, 2
seta bpl
cmp r15d, 3
mov eax, 0
cmovb r15d, eax
cmp r15d, 3
sete al
cmp ebp, 0x1fff
seta cl
cmp edi, ebp
mov edx, dword [rsp + 0x5c]
je 0x18000bb62
and cl, al
jne 0x18000bb62
test edx, 0x20000
je 0x18000bc40
cmp r15d, 6
jae 0x18000bc40
test ebx, ebx
je 0x18000be40
mov eax, dword [r12 + 0x64]
add dword [r12 + 0x54], ebx
add ebx, 0xfffffffd
mov rcx, qword [r12 + 0x30]
mov byte [rcx], bl
add eax, 0xffffffff
mov rcx, qword [r12 + 0x30]
mov byte [rcx + 1], al
mov ecx, eax
shr ecx, 8
mov rdx, qword [r12 + 0x30]
mov byte [rdx + 2], cl
add qword [r12 + 0x30], 3
mov rdx, qword [r12 + 0x38]
mov edi, ebx
mov bl, byte [rdx]
shr bl, 1
or bl, 0x80
mov byte [rdx], bl
add dword [r12 + 0x50], 0xffffffff
jne 0x18000bbd0
mov dword [r12 + 0x50], 8
mov rdx, qword [r12 + 0x30]
lea rbp, [rdx + 1]
mov qword [r12 + 0x30], rbp
mov qword [r12 + 0x38], rdx
mov edx, eax
and edx, 0x1ff
lea rbp, [0x1800a57d0]
add rdx, rbp
and ecx, 0x7f
lea rbp, [0x1800a59d0]
add rcx, rbp
cmp eax, 0x200
cmovb rcx, rdx
movzx eax, byte [rcx]
add word [r12 + rax*2 + 0x840a], 1
mov eax, edi
lea rcx, [0x1800a5a50]
movzx eax, word [rcx + rax*2]
add word [r12 + rax*2 + 0x81ca], 1
mov r15d, dword [r12 + 0x68]
add r15d, 0xffffffff
mov dword [r12 + 0x68], 0
jmp 0x18000be9a
test ebx, ebx
je 0x18000bd6d
cmp r15d, ebx
jbe 0x18000bb6a
mov eax, dword [r12 + 0x6c]
add dword [r12 + 0x54], 1
mov rcx, qword [r12 + 0x30]
lea rdx, [rcx + 1]
mov qword [r12 + 0x30], rdx
mov byte [rcx], al
mov rcx, qword [r12 + 0x38]
shr byte [rcx], 1
add dword [r12 + 0x50], 0xffffffff
jne 0x18000bc97
mov dword [r12 + 0x50], 8
mov rcx, qword [r12 + 0x30]
lea rdx, [rcx + 1]
mov qword [r12 + 0x30], rdx
mov qword [r12 + 0x38], rcx
movzx eax, al
add word [r12 + rax*2 + 0x81ca], 1
cmp r15d, 0x80
jb 0x18000bf29
add dword [r12 + 0x54], r15d
lea eax, [r15 - 3]
mov rcx, qword [r12 + 0x30]
mov byte [rcx], al
add ebp, 0xffffffff
mov rcx, qword [r12 + 0x30]
mov byte [rcx + 1], bpl
mov ecx, ebp
shr ecx, 8
mov rdx, qword [r12 + 0x30]
mov byte [rdx + 2], cl
add qword [r12 + 0x30], 3
mov rdx, qword [r12 + 0x38]
mov bl, byte [rdx]
shr bl, 1
or bl, 0x80
mov byte [rdx], bl
add dword [r12 + 0x50], 0xffffffff
jne 0x18000bd12
mov dword [r12 + 0x50], 8
mov rdx, qword [r12 + 0x30]
lea rbx, [rdx + 1]
mov qword [r12 + 0x30], rbx
mov qword [r12 + 0x38], rdx
mov edx, ebp
and edx, 0x1ff
lea rbx, [0x1800a57d0]
add rdx, rbx
and ecx, 0x7f
lea rbx, [0x1800a59d0]
add rcx, rbx
cmp ebp, 0x200
cmovb rcx, rdx
movzx ecx, byte [rcx]
add word [r12 + rcx*2 + 0x840a], 1
mov eax, eax
lea rcx, [0x1800a5a50]
movzx eax, word [rcx + rax*2]
add word [r12 + rax*2 + 0x81ca], 1
mov dword [r12 + 0x68], 0
jmp 0x18000be9a
test ebp, ebp
je 0x18000be40
cmp dword [r12 + 0x1c], 0
je 0x18000bf10
add dword [r12 + 0x54], r15d
lea eax, [r15 - 3]
mov rcx, qword [r12 + 0x30]
mov byte [rcx], al
add ebp, 0xffffffff
mov rcx, qword [r12 + 0x30]
mov byte [rcx + 1], bpl
mov ecx, ebp
shr ecx, 8
mov rdx, qword [r12 + 0x30]
mov byte [rdx + 2], cl
add qword [r12 + 0x30], 3
mov rdx, qword [r12 + 0x38]
mov bl, byte [rdx]
shr bl, 1
or bl, 0x80
mov byte [rdx], bl
add dword [r12 + 0x50], 0xffffffff
jne 0x18000bde2
mov dword [r12 + 0x50], 8
mov rdx, qword [r12 + 0x30]
lea rbx, [rdx + 1]
mov qword [r12 + 0x30], rbx
mov qword [r12 + 0x38], rdx
mov edx, ebp
and edx, 0x1ff
lea rbx, [0x1800a57d0]
add rdx, rbx
and ecx, 0x7f
lea rbx, [0x1800a59d0]
add rcx, rbx
cmp ebp, 0x200
cmovb rcx, rdx
movzx ecx, byte [rcx]
add word [r12 + rcx*2 + 0x840a], 1
mov eax, eax
lea rcx, [0x1800a5a50]
movzx eax, word [rcx + rax*2]
add word [r12 + rax*2 + 0x81ca], 1
jmp 0x18000be9a
movzx eax, byte [r12 + rdi + 0xc8]
add dword [r12 + 0x54], 1
mov rcx, qword [r12 + 0x30]
lea rdx, [rcx + 1]
mov qword [r12 + 0x30], rdx
mov byte [rcx], al
mov rcx, qword [r12 + 0x38]
shr byte [rcx], 1
add dword [r12 + 0x50], 0xffffffff
jne 0x18000be8a
mov dword [r12 + 0x50], 8
mov rcx, qword [r12 + 0x30]
lea rdx, [rcx + 1]
mov qword [r12 + 0x30], rdx
mov qword [r12 + 0x38], rcx
add word [r12 + rax*2 + 0x81ca], 1
mov r15d, 1
add dword [r12 + 0x24], r15d
sub dword [r12 + 0x28], r15d
add r15d, dword [r12 + 0x2c]
cmp r15d, 0x8000
mov eax, 0x8000
cmovae r15d, eax
mov dword [r12 + 0x2c], r15d
mov rax, qword [r12 + 0x30]
cmp rax, qword [rsp + 0x98]
mov r15, qword [rsp + 0xa0]
ja 0x18000b3e0
mov ecx, dword [r12 + 0x54]
cmp ecx, 0x7c01
jb 0x18000b402
sub eax, dword [rsp + 0x90]
imul eax, eax, 0x73
shr eax, 7
cmp eax, ecx
jae 0x18000b3e0
test byte [r12 + 0x12], 8
je 0x18000b402
jmp 0x18000b3e0
test edx, 0x10000
jne 0x18000bd81
cmp r15d, 0x80
jae 0x18000bd81
movzx eax, byte [r12 + rdi + 0xc8]
mov dword [r12 + 0x6c], eax
mov dword [r12 + 0x64], ebp
mov dword [r12 + 0x68], r15d
jmp 0x18000be94
cmp byte [rsp + 0x2f], 0
mov eax, 0x102
mov r15, qword [rsp + 0x78]
cmove r15d, eax
mov ebx, dword [rsp + 0x3c]
mov rdi, qword [rsp + 0x68]
jmp 0x18000bb30
mov r15d, ebx
mov ebx, dword [rsp + 0x3c]
jmp 0x18000bb30
xor r15d, r15d
mov qword [r12 + 0xb0], r14
mov qword [r12 + 0xb8], r15
mov eax, 1
jmp 0x18000bf92
not eax
shr eax, 0x1f
add rsp, 0xa8
pop rbx
pop rbp
pop rdi
pop rsi
pop r12
pop r13
pop r14
pop r15
ret