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

Disassembly:
mov rax, rsp
mov qword [rax + 8], rcx
push rbp
push r14
push r15
lea rbp, [rax - 0x68]
sub rsp, 0x150
mov qword [rax - 0x20], rbx
mov rbx, qword [rcx + 0x18]
mov qword [rax - 0x28], rsi
mov qword [rax - 0x30], rdi
xor edi, edi
mov r14, rcx
mov qword [rsp + 0x28], rbx
mov qword [rax - 0x40], r13
mov dword [rsp + 0x30], edi
cmp qword [rcx + 0x90], rdi
jne 0x180117193
call fcn.18010f120
mov qword [r14 + 0x88], rax
cmp dword [r14 + 0x3c], edi
jne 0x180117193
mov rcx, r14
call fcn.18010f060
mov qword [r14 + 0x90], rax
lea r13, [r14 + 0x3c]
mov qword [rsp + 0x70], r13
cmp dword [r13], edi
je 0x1801171a7
xor r15d, r15d
jmp 0x1801171b7
mov rax, qword [r14 + 0x90]
inc dword [rax]
mov r15, qword [r14 + 0x90]
mov rcx, qword [r14 + 0x90]
mov qword [rsp + 0x50], r15
mov qword [rsp + 0x48], r15
test rcx, rcx
je 0x1801171d9
call fcn.18010e670
mov qword [r14 + 0x90], rdi
cmp dword [rbx + 0x10], edi
je 0x180117856
mov rdx, r15
mov rcx, r14
call fcn.1801142f0
mov dword [rsp + 0x58], eax
test eax, eax
je 0x180117856
mov rcx, qword [r14]
mov qword [rsp + 0x130], r12
lea rdx, [rbp - 0x70]
mov r12d, dword [rcx + 0x88]
mov esi, dword [rcx + 0xb0]
movsxd rdi, dword [rcx + 0x5c]
mov r8d, eax
mov rcx, r14
mov dword [rbp + 0x80], r12d
mov dword [rbp + 0x88], esi
call fcn.180115150
cmp dword [r13], 0
jne 0x18011724d
lea r9, [rbx + 0x18]
xor r8d, r8d
xor edx, edx
mov rcx, rbx
call fcn.18010dde0
mov dword [r13], eax
cmp dword [r13], 0
mov qword [rsp + 0x68], rdi
jne 0x18011779f
mov ebx, dword [rbp - 0x58]
mov r15, qword [rbp - 0x60]
mov r13d, dword [rbp - 0x48]
mov r9, qword [rsp + 0x28]
nop dword [rax]
mov rsi, qword [r9 + 0x18]
test rsi, rsi
je 0x180117791
or rcx, 0xffffffffffffffff
lea rdx, [rsi + 0x30]
xor eax, eax
mov rdi, rdx
mov qword [rsp + 0x60], rdx
xor r8d, r8d
repne scasb al, byte [rdi]
mov rdx, rsi
not rcx
lea rdi, [rcx - 1]
mov rcx, r9
call fcn.18010d710
mov r11d, dword [rsi + 0x18]
lea edx, [rdi + 1]
sub r11d, edi
or rcx, 0xffffffffffffffff
lea r8, [rsi + 0x30]
xor eax, eax
sub r11d, 0x31
mov rdi, r8
repne scasb al, byte [rdi]
mov edi, dword [rbp + 0x88]
movsxd rdx, edx
add rdx, r8
not rcx
mov dword [rbp + 0x78], r11d
dec rcx
mov qword [rsp + 0x20], rdx
mov qword [rbp + 0x10], rcx
test edi, edi
jne 0x180117340
mov r9, r8
mov r8d, ecx
lea rdx, [rbp - 0x70]
mov rcx, r14
call fcn.180114c10
cmp dword [r14 + 0x3c], edi
lea r13, [r14 + 0x3c]
jne 0x180117795
movsxd rbx, dword [rbp - 0x58]
mov r13d, dword [rbp - 0x48]
movsxd r11, dword [rbp + 0x78]
mov r15, qword [rbp - 0x60]
mov rdx, qword [rsp + 0x20]
lea eax, [rbx + r13]
lea ecx, [rax + r11 + 1]
cmp r12d, ecx
jl 0x180117340
lea rcx, [r15 + rbx]
mov r8, r11
call fcn.180128750
add ebx, dword [rbp + 0x78]
mov dword [rbp - 0x58], ebx
jmp 0x180117461
xor eax, eax
test edi, edi
lea rdi, [r14 + 0x3c]
sete al
xor esi, esi
xor r12d, r12d
mov dword [rsp + 0x40], eax
mov qword [rsp + 0x78], rsi
cmp dword [rdi], esi
jne 0x180117778
cmp r12d, r11d
jge 0x180117461
movsxd rax, r12d
mov qword [rsp + 0x38], 0
movzx r8d, byte [rax + rdx]
lea rcx, [rax + rdx]
test r8b, r8b
js 0x18011738b
mov ecx, r8d
mov al, 1
jmp 0x18011739f
lea rdx, [rsp + 0x38]
call fcn.180126a80
mov rcx, qword [rsp + 0x38]
mov rdx, qword [rsp + 0x20]
add rsi, rcx
mov ecx, dword [rbp + 0x88]
movzx eax, al
add r12d, eax
mov qword [rbp + 0x18], rsi
mov dword [rsp + 0x38], r12d
test ecx, ecx
je 0x18011748a
cmp qword [rsp + 0x68], 1
jne 0x18011741d
cmp r12d, r11d
jge 0x18011748a
movsxd rax, r12d
cmp byte [rax + rdx], 0
jne 0x18011748a
mov r8, qword [rsp + 0x60]
mov rdx, qword [rsp + 0x50]
mov r9, rsi
mov rcx, r14
call fcn.180117050
mov r11d, dword [rbp + 0x78]
mov rdx, qword [rsp + 0x20]
inc r12d
cmp r12d, r11d
jge 0x180117458
movsxd rax, r12d
cmp byte [rax + rdx], 0
jne 0x180117458
inc r12d
xor r11d, r11d
mov dword [rbp + 0x78], r11d
mov dword [rsp + 0x38], r12d
jmp 0x18011748a
movsxd rdi, r12d
test byte [rdi + rdx], 1
je 0x180117486
mov r8, qword [rsp + 0x60]
mov rdx, qword [rsp + 0x50]
mov r9, rsi
mov rcx, r14
call fcn.180117050
cmp dword [r14 + 0x3c], 0
mov rdx, qword [rsp + 0x20]
jne 0x18011744d
cmp byte [rdi + rdx], 1
jne 0x180117486
inc r12d
mov r11d, dword [rbp + 0x78]
lea rdi, [r14 + 0x3c]
cmp dword [rdi], 0
je 0x180117361
cmp dword [r14 + 0x3c], 0
mov r9, qword [rsp + 0x28]
lea rsi, [r14 + 0x3c]
jne 0x180117784
mov rax, qword [r9 + 0x18]
mov rdx, qword [rax + 8]
mov qword [r9 + 0x18], rdx
jmp 0x180117781
lea rdi, [r14 + 0x3c]
cmp dword [rdi], 0
jne 0x1801174bf
cmp dword [rsp + 0x40], 0
jne 0x1801174bf
mov r9, qword [rsp + 0x60]
mov r8d, dword [rbp + 0x10]
lea rdx, [rbp - 0x70]
mov rcx, r14
call fcn.180114c10
mov ebx, dword [rbp - 0x58]
mov r15, qword [rbp - 0x60]
mov r13d, dword [rbp - 0x48]
mov eax, 1
mov dword [rsp + 0x40], eax
movsxd rcx, ebx
add rcx, r15
cmp byte [rbp - 0x27], 0
je 0x180117544
movzx eax, word [rbp - 0x58]
shr ax, 8
mov byte [r15], al
movzx eax, byte [rbp - 0x58]
mov byte [r15 + 1], al
cmp rsi, 0x7f
ja 0x1801174f3
movzx eax, sil
and al, 0x7f
mov byte [rcx], al
mov eax, 1
jmp 0x18011751f
cmp rsi, 0x3fff
ja 0x180117517
mov rax, rsi
shr rax, 7
or al, 0x80
mov byte [rcx], al
movzx eax, sil
and al, 0x7f
mov byte [rcx + 1], al
mov eax, 2
jmp 0x18011751f
mov rdx, rsi
call fcn.180011690
add ebx, eax
lea rdx, [rbp - 0x70]
mov r8, rsi
mov rcx, r14
mov byte [rbp - 0x27], 0
mov dword [rbp - 0x58], ebx
call fcn.1801148a0
mov ebx, dword [rbp - 0x58]
mov r15, qword [rbp - 0x60]
mov r13d, dword [rbp - 0x48]
jmp 0x180117589
mov rdx, rsi
sub rdx, qword [rsp + 0x78]
cmp rdx, 0x7f
ja 0x18011755e
and dl, 0x7f
mov eax, 1
mov byte [rcx], dl
jmp 0x180117584
cmp rdx, 0x3fff
ja 0x18011757f
mov rax, rdx
shr rax, 7
or al, 0x80
and dl, 0x7f
mov byte [rcx], al
mov byte [rcx + 1], dl
mov eax, 2
jmp 0x180117584
call fcn.180011690
add ebx, eax
mov dword [rbp - 0x58], ebx
cmp dword [r14 + 0x3c], 0
jne 0x180117778
cmp qword [rsp + 0x68], 1
mov qword [rsp + 0x78], rsi
jne 0x180117617
mov r11d, dword [rbp + 0x78]
mov rdx, qword [rsp + 0x20]
cmp r12d, r11d
jge 0x1801175e6
movsxd rax, r12d
cmp byte [rax + rdx], 0
jne 0x1801175e6
movsxd rax, ebx
inc ebx
inc r12d
mov byte [rax + r15], 0
mov dword [rbp - 0x58], ebx
cmp r12d, r11d
jge 0x1801175e6
movsxd rax, r12d
cmp byte [rax + rdx], 0
jne 0x1801175e6
movsxd rax, ebx
inc ebx
inc r12d
mov byte [rax + r15], 0
mov dword [rbp - 0x58], ebx
lea eax, [rbx + r13]
cmp eax, dword [rbp + 0x80]
jl 0x180117454
lea rdx, [rbp - 0x70]
mov rcx, r14
call fcn.180114ac0
mov ebx, dword [rbp - 0x58]
mov r15, qword [rbp - 0x60]
mov r13d, dword [rbp - 0x48]
mov rdx, qword [rsp + 0x20]
jmp 0x180117450
movsxd r14, r12d
mov edi, 1
add r14, qword [rsp + 0x20]
movzx ecx, byte [r14]
test cl, cl
jns 0x180117697
movzx edx, byte [r14 + 1]
test dl, dl
js 0x180117644
and ecx, 0x7f
mov edi, 2
shl ecx, 7
or ecx, edx
jmp 0x180117697
movzx eax, byte [r14 + 2]
shl ecx, 0xe
or ecx, eax
mov eax, ecx
test cl, cl
js 0x18011766a
mov ecx, edx
and eax, 0x1fc07f
mov edi, 3
and ecx, 0x7f
shl ecx, 7
or ecx, eax
jmp 0x180117697
movzx r8d, byte [r14]
test r8b, r8b
js 0x180117680
mov ecx, r8d
movzx eax, dil
mov qword [rbp - 0x80], rcx
jmp 0x180117690
lea rdx, [rbp - 0x80]
mov rcx, r14
call fcn.180126a80
mov rcx, qword [rbp - 0x80]
btr ecx, 0x1f
movzx edi, al
mov eax, ecx
cdq
sub eax, edx
sar eax, 1
lea r13d, [rdi + rax]
mov eax, dword [rbp - 0x48]
lea ecx, [rbx + rax]
mov eax, dword [rbp + 0x80]
add ecx, r13d
cmp ecx, eax
jg 0x1801176d1
movsxd rcx, ebx
movsxd r8, r13d
mov rdx, r14
add rcx, r15
call fcn.180128750
add ebx, r13d
mov dword [rbp - 0x58], ebx
jmp 0x18011775a
mov r12d, dword [rbp - 0x48]
xor esi, esi
jmp 0x1801176e6
mov eax, dword [rbp + 0x80]
mov edx, eax
mov edi, r13d
sub edx, ebx
sub edi, esi
sub edx, r12d
cmp edi, edx
jle 0x180117703
movsxd rcx, esi
add rcx, r14
call fcn.180116270
mov edi, eax
movsxd rdx, esi
movsxd rcx, ebx
movsxd r8, edi
add rdx, r14
add rcx, r15
call fcn.180128750
add ebx, edi
add esi, edi
lea eax, [rbx + r12]
mov dword [rbp - 0x58], ebx
cmp eax, dword [rbp + 0x80]
jl 0x180117742
mov rcx, qword [rbp + 0x70]
lea rdx, [rbp - 0x70]
call fcn.180114ac0
mov ebx, dword [rbp - 0x58]
mov r15, qword [rbp - 0x60]
mov r12d, dword [rbp - 0x48]
cmp esi, r13d
jge 0x180117751
mov rax, qword [rsp + 0x70]
cmp dword [rax], 0
je 0x1801176e0
mov r12d, dword [rsp + 0x38]
mov rsi, qword [rbp + 0x18]
mov r14, qword [rbp + 0x70]
mov rdi, qword [rsp + 0x70]
mov rdx, qword [rsp + 0x20]
mov r11d, dword [rbp + 0x78]
add r12d, r13d
mov r13d, dword [rbp - 0x48]
jmp 0x180117458
mov r9, qword [rsp + 0x28]
lea rsi, [r14 + 0x3c]
cmp dword [rsi], 0
mov r12d, dword [rbp + 0x80]
je 0x180117270
lea r13, [r14 + 0x3c]
mov r15, qword [rsp + 0x50]
mov rbx, qword [rsp + 0x28]
mov rcx, rbx
call fcn.18010d490
lea r8, [rsp + 0x30]
lea rdx, [rbp - 0x70]
mov rcx, r14
call fcn.180114f90
mov edi, dword [rsp + 0x30]
mov r12, qword [rsp + 0x130]
test edi, edi
jle 0x180117856
cmp dword [r15 + 0x1c], 0
jne 0x1801177e5
lea rdx, [rsp + 0x48]
mov rcx, r13
call fcn.18010eee0
mov r15, qword [rsp + 0x48]
xor r9d, r9d
xor r8d, r8d
mov rdx, r15
mov rcx, r13
call fcn.18010ef70
cmp dword [r13], 0
jne 0x180117849
movsxd rax, dword [r15 + 0x24]
mov rcx, rax
imul rcx, rcx, 0x38
add rcx, qword [r15 + 0x28]
inc eax
mov dword [r15 + 0x24], eax
mov eax, dword [rsp + 0x58]
mov dword [rcx + 4], 1
mov dword [rcx], eax
mov dword [rcx + 8], edi
cmp qword [r15 + 0x10], 0
jbe 0x180117845
mov rax, qword [r15 + 0x10]
mov qword [rcx + 0x10], rax
mov rax, qword [r15 + 0x10]
mov qword [rcx + 0x18], rax
movsxd rax, dword [r14 + 0x38]
mov qword [rcx + 0x30], rax
inc qword [r15 + 0x10]
inc dword [r15 + 0x18]
mov r8, r15
xor edx, edx
mov rcx, r14
call fcn.18010fcb0
cmp dword [r13], 0
mov eax, dword [r14 + 0x34]
lea ecx, [rdi + rax]
jne 0x1801178c7
mov rax, qword [r14]
cmp dword [rax + 0x8c], 0
jle 0x1801178c7
test r15, r15
je 0x1801178c7
mov r9, qword [r15 + 8]
movsxd r8, ecx
movsxd rcx, dword [r14 + 0x10]
lea rax, [r9 + r8]
xor edx, edx
div rcx
xor edx, edx
mov rdi, rax
mov rax, r9
div rcx
lea rcx, [r9 + r8]
mov r8d, dword [r15 + 0x1c]
mov qword [r15 + 8], rcx
mov rcx, qword [r14]
sub edi, eax
mov r9d, dword [rcx + 0x8c]
imul r8d, edi
lea rdx, [rsp + 0x48]
imul r8d, dword [r14 + 0x10]
mov rcx, r14
call fcn.180116140
mov r15, qword [rsp + 0x48]
mov rax, qword [r14]
mov qword [rbp + 0x70], r15
mov esi, dword [rax + 0x90]
test r15, r15
je 0x180117927
cmp dword [r15 + 0x1c], 0
jle 0x180117927
xor edi, edi
cmp dword [r13], edi
jne 0x180117927
xor ebx, ebx
nop word [rax + rax]
cmp dword [rbx + r15 + 0x24], esi
jl 0x180117927
lea rdx, [rbp + 0x70]
xor r9d, r9d
mov r8d, edi
mov rcx, r14
call fcn.180115800
mov r15, qword [rbp + 0x70]
inc edi
mov edx, edi
mov rcx, r14
mov r8, r15
call fcn.18010fcb0
add rbx, 0x10
cmp dword [r13], 0
je 0x1801178f0
cmp dword [r13], 0
mov rdi, qword [rsp + 0x138]
mov rsi, qword [rsp + 0x140]
mov r13, qword [rsp + 0x128]
mov rbx, qword [rsp + 0x148]
jne 0x180117959
mov rdx, r15
mov rcx, r14
call fcn.18010f1d0
mov rcx, r15
call fcn.18010e670
mov dword [r14 + 0x34], 0
add rsp, 0x150
pop r15
pop r14
pop rbp
ret