Function at 0x180116420
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 0x180116483
call fcn.18010e410
mov qword [r14 + 0x88], rax
cmp dword [r14 + 0x3c], edi
jne 0x180116483
mov rcx, r14
call fcn.18010e350
mov qword [r14 + 0x90], rax
lea r13, [r14 + 0x3c]
mov qword [rsp + 0x70], r13
cmp dword [r13], edi
je 0x180116497
xor r15d, r15d
jmp 0x1801164a7
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 0x1801164c9
call fcn.18010d960
mov qword [r14 + 0x90], rdi
cmp dword [rbx + 0x10], edi
je 0x180116b46
mov rdx, r15
mov rcx, r14
call fcn.1801135e0
mov dword [rsp + 0x58], eax
test eax, eax
je 0x180116b46
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.180114440
cmp dword [r13], 0
jne 0x18011653d
lea r9, [rbx + 0x18]
xor r8d, r8d
xor edx, edx
mov rcx, rbx
call fcn.18010d0d0
mov dword [r13], eax
cmp dword [r13], 0
mov qword [rsp + 0x68], rdi
jne 0x180116a8f
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 0x180116a81
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.18010ca00
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 0x180116630
mov r9, r8
mov r8d, ecx
lea rdx, [rbp - 0x70]
mov rcx, r14
call fcn.180113f00
cmp dword [r14 + 0x3c], edi
lea r13, [r14 + 0x3c]
jne 0x180116a85
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 0x180116630
lea rcx, [r15 + rbx]
mov r8, r11
call fcn.180127c70
add ebx, dword [rbp + 0x78]
mov dword [rbp - 0x58], ebx
jmp 0x180116751
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 0x180116a68
cmp r12d, r11d
jge 0x180116751
movsxd rax, r12d
mov qword [rsp + 0x38], 0
movzx r8d, byte [rax + rdx]
lea rcx, [rax + rdx]
test r8b, r8b
js 0x18011667b
mov ecx, r8d
mov al, 1
jmp 0x18011668f
lea rdx, [rsp + 0x38]
call fcn.180125d70
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 0x18011677a
cmp qword [rsp + 0x68], 1
jne 0x18011670d
cmp r12d, r11d
jge 0x18011677a
movsxd rax, r12d
cmp byte [rax + rdx], 0
jne 0x18011677a
mov r8, qword [rsp + 0x60]
mov rdx, qword [rsp + 0x50]
mov r9, rsi
mov rcx, r14
call fcn.180116340
mov r11d, dword [rbp + 0x78]
mov rdx, qword [rsp + 0x20]
inc r12d
cmp r12d, r11d
jge 0x180116748
movsxd rax, r12d
cmp byte [rax + rdx], 0
jne 0x180116748
inc r12d
xor r11d, r11d
mov dword [rbp + 0x78], r11d
mov dword [rsp + 0x38], r12d
jmp 0x18011677a
movsxd rdi, r12d
test byte [rdi + rdx], 1
je 0x180116776
mov r8, qword [rsp + 0x60]
mov rdx, qword [rsp + 0x50]
mov r9, rsi
mov rcx, r14
call fcn.180116340
cmp dword [r14 + 0x3c], 0
mov rdx, qword [rsp + 0x20]
jne 0x18011673d
cmp byte [rdi + rdx], 1
jne 0x180116776
inc r12d
mov r11d, dword [rbp + 0x78]
lea rdi, [r14 + 0x3c]
cmp dword [rdi], 0
je 0x180116651
cmp dword [r14 + 0x3c], 0
mov r9, qword [rsp + 0x28]
lea rsi, [r14 + 0x3c]
jne 0x180116a74
mov rax, qword [r9 + 0x18]
mov rdx, qword [rax + 8]
mov qword [r9 + 0x18], rdx
jmp 0x180116a71
lea rdi, [r14 + 0x3c]
cmp dword [rdi], 0
jne 0x1801167af
cmp dword [rsp + 0x40], 0
jne 0x1801167af
mov r9, qword [rsp + 0x60]
mov r8d, dword [rbp + 0x10]
lea rdx, [rbp - 0x70]
mov rcx, r14
call fcn.180113f00
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 0x180116834
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 0x1801167e3
movzx eax, sil
and al, 0x7f
mov byte [rcx], al
mov eax, 1
jmp 0x18011680f
cmp rsi, 0x3fff
ja 0x180116807
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 0x18011680f
mov rdx, rsi
call fcn.180010980
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.180113b90
mov ebx, dword [rbp - 0x58]
mov r15, qword [rbp - 0x60]
mov r13d, dword [rbp - 0x48]
jmp 0x180116879
mov rdx, rsi
sub rdx, qword [rsp + 0x78]
cmp rdx, 0x7f
ja 0x18011684e
and dl, 0x7f
mov eax, 1
mov byte [rcx], dl
jmp 0x180116874
cmp rdx, 0x3fff
ja 0x18011686f
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 0x180116874
call fcn.180010980
add ebx, eax
mov dword [rbp - 0x58], ebx
cmp dword [r14 + 0x3c], 0
jne 0x180116a68
cmp qword [rsp + 0x68], 1
mov qword [rsp + 0x78], rsi
jne 0x180116907
mov r11d, dword [rbp + 0x78]
mov rdx, qword [rsp + 0x20]
cmp r12d, r11d
jge 0x1801168d6
movsxd rax, r12d
cmp byte [rax + rdx], 0
jne 0x1801168d6
movsxd rax, ebx
inc ebx
inc r12d
mov byte [rax + r15], 0
mov dword [rbp - 0x58], ebx
cmp r12d, r11d
jge 0x1801168d6
movsxd rax, r12d
cmp byte [rax + rdx], 0
jne 0x1801168d6
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 0x180116744
lea rdx, [rbp - 0x70]
mov rcx, r14
call fcn.180113db0
mov ebx, dword [rbp - 0x58]
mov r15, qword [rbp - 0x60]
mov r13d, dword [rbp - 0x48]
mov rdx, qword [rsp + 0x20]
jmp 0x180116740
movsxd r14, r12d
mov edi, 1
add r14, qword [rsp + 0x20]
movzx ecx, byte [r14]
test cl, cl
jns 0x180116987
movzx edx, byte [r14 + 1]
test dl, dl
js 0x180116934
and ecx, 0x7f
mov edi, 2
shl ecx, 7
or ecx, edx
jmp 0x180116987
movzx eax, byte [r14 + 2]
shl ecx, 0xe
or ecx, eax
mov eax, ecx
test cl, cl
js 0x18011695a
mov ecx, edx
and eax, 0x1fc07f
mov edi, 3
and ecx, 0x7f
shl ecx, 7
or ecx, eax
jmp 0x180116987
movzx r8d, byte [r14]
test r8b, r8b
js 0x180116970
mov ecx, r8d
movzx eax, dil
mov qword [rbp - 0x80], rcx
jmp 0x180116980
lea rdx, [rbp - 0x80]
mov rcx, r14
call fcn.180125d70
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 0x1801169c1
movsxd rcx, ebx
movsxd r8, r13d
mov rdx, r14
add rcx, r15
call fcn.180127c70
add ebx, r13d
mov dword [rbp - 0x58], ebx
jmp 0x180116a4a
mov r12d, dword [rbp - 0x48]
xor esi, esi
jmp 0x1801169d6
mov eax, dword [rbp + 0x80]
mov edx, eax
mov edi, r13d
sub edx, ebx
sub edi, esi
sub edx, r12d
cmp edi, edx
jle 0x1801169f3
movsxd rcx, esi
add rcx, r14
call fcn.180115560
mov edi, eax
movsxd rdx, esi
movsxd rcx, ebx
movsxd r8, edi
add rdx, r14
add rcx, r15
call fcn.180127c70
add ebx, edi
add esi, edi
lea eax, [rbx + r12]
mov dword [rbp - 0x58], ebx
cmp eax, dword [rbp + 0x80]
jl 0x180116a32
mov rcx, qword [rbp + 0x70]
lea rdx, [rbp - 0x70]
call fcn.180113db0
mov ebx, dword [rbp - 0x58]
mov r15, qword [rbp - 0x60]
mov r12d, dword [rbp - 0x48]
cmp esi, r13d
jge 0x180116a41
mov rax, qword [rsp + 0x70]
cmp dword [rax], 0
je 0x1801169d0
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 0x180116748
mov r9, qword [rsp + 0x28]
lea rsi, [r14 + 0x3c]
cmp dword [rsi], 0
mov r12d, dword [rbp + 0x80]
je 0x180116560
lea r13, [r14 + 0x3c]
mov r15, qword [rsp + 0x50]
mov rbx, qword [rsp + 0x28]
mov rcx, rbx
call fcn.18010c780
lea r8, [rsp + 0x30]
lea rdx, [rbp - 0x70]
mov rcx, r14
call fcn.180114280
mov edi, dword [rsp + 0x30]
mov r12, qword [rsp + 0x130]
test edi, edi
jle 0x180116b46
cmp dword [r15 + 0x1c], 0
jne 0x180116ad5
lea rdx, [rsp + 0x48]
mov rcx, r13
call fcn.18010e1d0
mov r15, qword [rsp + 0x48]
xor r9d, r9d
xor r8d, r8d
mov rdx, r15
mov rcx, r13
call fcn.18010e260
cmp dword [r13], 0
jne 0x180116b39
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 0x180116b35
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.18010efa0
cmp dword [r13], 0
mov eax, dword [r14 + 0x34]
lea ecx, [rdi + rax]
jne 0x180116bb7
mov rax, qword [r14]
cmp dword [rax + 0x8c], 0
jle 0x180116bb7
test r15, r15
je 0x180116bb7
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.180115430
mov r15, qword [rsp + 0x48]
mov rax, qword [r14]
mov qword [rbp + 0x70], r15
mov esi, dword [rax + 0x90]
test r15, r15
je 0x180116c17
cmp dword [r15 + 0x1c], 0
jle 0x180116c17
xor edi, edi
cmp dword [r13], edi
jne 0x180116c17
xor ebx, ebx
nop word [rax + rax]
cmp dword [rbx + r15 + 0x24], esi
jl 0x180116c17
lea rdx, [rbp + 0x70]
xor r9d, r9d
mov r8d, edi
mov rcx, r14
call fcn.180114af0
mov r15, qword [rbp + 0x70]
inc edi
mov edx, edi
mov rcx, r14
mov r8, r15
call fcn.18010efa0
add rbx, 0x10
cmp dword [r13], 0
je 0x180116be0
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 0x180116c49
mov rdx, r15
mov rcx, r14
call fcn.18010e4c0
mov rcx, r15
call fcn.18010d960
mov dword [r14 + 0x34], 0
add rsp, 0x150
pop r15
pop r14
pop rbp
ret