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

Disassembly:
mov rax, rsp
push rbx
push rbp
push rsi
push rdi
push r12
push r13
push r14
sub rsp, 0x30
xor r13d, r13d
mov ebp, edx
mov rbx, rcx
mov edi, r13d
mov r12, r13
mov qword [rax - 0x40], r13
mov qword [rax + 0x20], r13
cmp edx, 2
je 0x1001080ca
cmp edx, 3
je 0x1001080ca
cmp edx, 4
jne 0x10010813c
lea r14, [0x100331948]
jmp 0x1001083d1
cmp qword [rcx + 0x50], r13
je 0x10010814d
mov edi, 0x80041103
lea r14, [0x100331948]
mov rcx, qword [0x100331948]
cmp rcx, r14
je 0x100108106
test byte [rcx + 0x3c], 2
je 0x100108106
mov rcx, qword [rcx + 0x30]
lea r8, [0x1000204f8]
mov edx, 0xf
mov r9d, edi
call fcn.100050618
mov rcx, qword [rsp + 0x88]
cmp rcx, r13
je 0x100108121
mov rax, qword [rcx]
call qword [rax + 0x10]
mov qword [rsp + 0x88], r13
cmp r12, r13
je 0x10010813c
call qword [sym.imp.KERNEL32.dll_GetProcessHeap]
lea r8, [r12 - 4]
xor edx, edx
mov rcx, rax
call qword [sym.imp.KERNEL32.dll_HeapFree]
mov eax, edi
add rsp, 0x30
pop r14
pop r13
pop r12
pop rdi
pop rsi
pop rbp
pop rbx
ret
cmp qword [rcx + 0x60], r13
je 0x1001080d0
mov rcx, qword [rcx + 0x10]
lea rdx, [rsp + 0x78]
xor r8d, r8d
call fcn.1002171ac
mov esi, 0x1fff0000
mov r14d, 0x40000
cmp eax, r13d
mov edi, eax
jge 0x100108199
and eax, esi
cmp eax, r14d
jne 0x100108199
mov eax, edi
and eax, 0xff00
cmp eax, 0x9f00
jne 0x100108199
mov edi, 0x80041101
jmp 0x1001080d5
cmp edi, r13d
jl 0x1001080d5
mov edx, dword [rsp + 0x78]
lea r8, [rsp + 0x28]
xor ecx, ecx
call fcn.100076700
mov r12, qword [rsp + 0x28]
cmp eax, r13d
mov edi, eax
jl 0x1001080d5
mov rcx, qword [rbx + 0x10]
lea rdx, [rsp + 0x78]
mov r8, r12
call fcn.1002171ac
cmp eax, r13d
mov edi, eax
jge 0x1001081ef
and eax, esi
cmp eax, r14d
jne 0x1001081ef
mov eax, edi
and eax, 0xff00
cmp eax, 0x9f00
je 0x10010818f
cmp edi, r13d
jl 0x1001080d5
mov rsi, qword [rbx + 0x60]
jmp 0x100108241
cmp dword [rsi + 0x14], 0xffffffff
je 0x10010821a
movsxd rax, dword [rsi + 0x14]
mov rdx, qword [rbx + 8]
lea rcx, [rax + rax*2]
lea rax, [rdx + rcx*8]
mov qword [rbx + 0x60], rax
jmp 0x100108234
lea rcx, [rbx + 0x40]
mov rdx, qword [rcx + 8]
movsxd rax, dword [rcx + 4]
mov rdx, qword [rdx + rax*8 - 8]
mov qword [rbx + 0x60], rdx
call fcn.1001090b8
mov rsi, qword [rbx + 0x60]
cmp rsi, r13
je 0x1001080d0
mov rdi, qword [rsi]
mov qword [rsp + 0x20], rdi
mov r9, qword [rdi + 0x18]
cmp r9, r13
je 0x100108258
mov ecx, dword [r9 - 4]
jmp 0x10010825b
mov ecx, r13d
cmp r12, r13
je 0x100108267
mov eax, dword [r12 - 4]
jmp 0x10010826a
mov eax, r13d
cmp ecx, eax
jne 0x10010828a
mov r8d, ecx
mov rdx, r12
mov rcx, r9
add r8, r8
call sub.msvcrt.dll_memcmp
mov ecx, r13d
cmp eax, r13d
sete cl
jmp 0x10010828d
mov ecx, r13d
cmp ecx, r13d
jne 0x1001082a5
cmp dword [rdi + 0x30], r13d
je 0x1001080d0
cmp rsi, r13
jne 0x1001081fe
lea rcx, [rsp + 0x88]
call qword [rdi]
cmp eax, r13d
mov edi, eax
jl 0x1001080d5
mov rcx, qword [rsp + 0x88]
mov rdx, qword [rsp + 0x20]
mov rax, qword [rcx]
mov rdx, qword [rdx + 8]
call qword [rax + 0x18]
cmp eax, r13d
mov edi, eax
jl 0x1001080d5
mov rcx, qword [rsp + 0x88]
mov rdx, qword [rsp + 0x20]
mov rax, qword [rcx]
call qword [rax + 0x38]
cmp eax, r13d
mov edi, eax
jl 0x1001080d5
lea rcx, [rbx + 0x30]
lea rdx, [rsp + 0x88]
call fcn.1000f2684
cmp eax, r13d
mov edi, eax
jge 0x100108345
mov rcx, qword [0x100331948]
lea r14, [0x100331948]
cmp rcx, r14
je 0x10010834c
test byte [rcx + 0x3c], 2
je 0x10010834c
mov rcx, qword [rcx + 0x30]
lea r8, [0x100020708]
mov edx, 0x20
mov r9d, eax
call fcn.100050618
jmp 0x10010834c
lea r14, [0x100331948]
cmp edi, r13d
jl 0x1001080dc
mov rdx, qword [rbx + 0x60]
lea rcx, [rbx + 0x40]
call fcn.100108fb8
cmp eax, r13d
mov edi, eax
jl 0x1001080dc
mov rax, qword [rsp + 0x20]
mov eax, dword [rax + 0x10]
cmp eax, r13d
je 0x10010839b
dec eax
cmp eax, 1
ja 0x10010839f
mov rax, qword [rbx + 0x60]
mov rdx, qword [rbx + 8]
movsxd rcx, dword [rax + 0x10]
lea rax, [rcx + rcx*2]
lea rcx, [rdx + rax*8]
mov qword [rbx + 0x60], rcx
jmp 0x10010839f
mov qword [rbx + 0x60], r13
mov rsi, qword [rbx + 0x70]
cmp rsi, r13
je 0x1001083c0
call qword [sym.imp.KERNEL32.dll_GetProcessHeap]
mov r8, rsi
xor edx, edx
mov rcx, rax
call qword [sym.imp.KERNEL32.dll_HeapFree]
mov qword [rbx + 0x70], r13
mov dword [rbx + 0x7c], r13d
mov dword [rbx + 0x78], r13d
cmp ebp, 3
jne 0x1001085d7
cmp dword [rbx + 0x34], r13d
jne 0x1001083e1
mov edi, 0x80041103
jmp 0x1001080dc
movsxd rax, dword [rbx + 0x34]
mov rcx, qword [rbx + 0x38]
lea rdx, [rsp + 0x20]
mov rcx, qword [rcx + rax*8 - 8]
mov rax, qword [rcx]
call qword [rax + 0x40]
cmp eax, r13d
mov edi, eax
jl 0x1001080dc
cmp qword [rbx + 0x70], r13
jne 0x10010841b
mov rax, qword [rsp + 0x20]
cmp dword [rax + 0x10], r13d
jne 0x10010846f
cmp qword [rbx + 0x70], r13
je 0x100108421
mov rdx, qword [rbx + 0x70]
jmp 0x100108428
lea rdx, [0x100039220]
movsxd rax, dword [rbx + 0x34]
mov rcx, qword [rbx + 0x38]
mov rcx, qword [rcx + rax*8 - 8]
mov rax, qword [rcx]
call qword [rax + 0x20]
cmp eax, r13d
mov edi, eax
jl 0x1001080dc
mov rdi, qword [rbx + 0x70]
cmp rdi, r13
je 0x100108467
call qword [sym.imp.KERNEL32.dll_GetProcessHeap]
mov r8, rdi
xor edx, edx
mov rcx, rax
call qword [sym.imp.KERNEL32.dll_HeapFree]
mov qword [rbx + 0x70], r13
mov dword [rbx + 0x7c], r13d
mov dword [rbx + 0x78], r13d
movsxd rax, dword [rbx + 0x34]
mov rcx, qword [rbx + 0x38]
lea rdx, [rsp + 0x80]
mov rcx, qword [rcx + rax*8 - 8]
mov rax, qword [rcx]
call qword [rax + 0x30]
cmp eax, r13d
mov edi, eax
jl 0x1001080dc
cmp dword [rsp + 0x80], r13d
je 0x1001083d7
mov rdx, qword [rbx + 0x60]
cmp rdx, r13
je 0x1001084f0
movsxd rax, dword [rbx + 0x44]
mov rcx, qword [rbx + 0x48]
mov rcx, qword [rcx + rax*8 - 8]
mov rax, qword [rcx]
cmp dword [rax + 0x10], 1
je 0x1001084f0
jmp 0x1001084d9
movsxd rax, dword [rdx + 0x14]
cmp eax, 0xffffffff
je 0x1001084e4
mov rdx, qword [rbx + 8]
lea rcx, [rax + rax*2]
lea rdx, [rdx + rcx*8]
mov rax, qword [rdx]
cmp dword [rax + 0x30], r13d
jne 0x1001084c4
jmp 0x1001084e7
mov rdx, r13
cmp rdx, r13
jne 0x1001083d7
mov eax, dword [rbx + 0x34]
mov rdx, qword [rbx + 0x38]
dec eax
movsxd rcx, eax
mov rdi, qword [rdx + rcx*8]
mov qword [rdx + rcx*8], r13
mov rcx, qword [rsp + 0x88]
cmp rcx, r13
je 0x100108517
mov rax, qword [rcx]
call qword [rax + 0x10]
lea rcx, [rbx + 0x30]
mov qword [rsp + 0x88], rdi
call fcn.1000f3d58
mov rcx, qword [rbx + 0x48]
movsxd rax, dword [rbx + 0x44]
mov rsi, qword [rcx + rax*8 - 8]
lea rcx, [rbx + 0x40]
call fcn.1001090b8
cmp dword [rbx + 0x34], r13d
jne 0x100108577
mov rcx, qword [rbx + 0x50]
mov rdi, qword [rsp + 0x88]
mov qword [rsp + 0x88], r13
cmp rcx, r13
je 0x100108567
mov rax, qword [rcx]
call qword [rax + 0x10]
mov qword [rbx + 0x50], r13
mov qword [rbx + 0x50], rdi
mov qword [rbx + 0x60], r13
mov edi, r13d
jmp 0x100108106
mov rcx, qword [rbx + 0x48]
movsxd rax, dword [rbx + 0x44]
mov r8, qword [rcx + rax*8 - 8]
mov rcx, qword [r8]
mov edx, dword [rcx + 0x10]
sub edx, 1
je 0x1001085a6
cmp edx, 1
jne 0x1001085ba
cmp dword [rsi + 0x14], 0xffffffff
je 0x1001085a0
movsxd rax, dword [rsi + 0x14]
jmp 0x1001085aa
mov qword [rbx + 0x60], r13
jmp 0x1001085ba
movsxd rax, dword [r8 + 0x10]
mov rdx, qword [rbx + 8]
lea rcx, [rax + rax*2]
lea rax, [rdx + rcx*8]
mov qword [rbx + 0x60], rax
movsxd rax, dword [rbx + 0x34]
mov rcx, qword [rbx + 0x38]
mov rdx, qword [rsp + 0x88]
mov rcx, qword [rcx + rax*8 - 8]
mov rax, qword [rcx]
call qword [rax + 0x28]
mov edi, eax
cmp edi, r13d
jl 0x1001080dc
jmp 0x100108106