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

Disassembly:
mov dword [rsp + 0x20], r9d
mov dword [rsp + 0x18], r8d
mov dword [rsp + 0x10], edx
push rbx
push rbp
push rsi
push rdi
sub rsp, 0xd8
mov qword [rsp + 0xa8], 0xfffffffffffffffe
mov rsi, rcx
mov eax, dword [rcx + 0x4c]
mov dword [rsp + 0x40], eax
cmp eax, 0x40000000
jge 0x1001a65f
cmp r9d, 0x100
jg 0x1001a65f
xor ebx, ebx
mov dword [rsp + 0x48], ebx
mov cl, byte [rcx + 0x23]
lea edi, [rbx + 1]
mov ebp, edi
shl ebp, cl
mov dword [rsp + 0x28], ebp
cmp byte [rsi + 0x20], 0x20
je 0x10019fce
cmp edx, ebx
jge 0x10019fce
mov byte [rsp + 0x100], bl
jmp 0x10019fd8
mov byte [rsp + 0x100], dil
jmp 0x1001a005
mov cl, byte [rsi + 0x21]
mov ebp, edi
shl ebp, cl
mov dword [rsp + 0x28], ebp
mov rax, qword [rsi + 0x68]
mov r10, qword [rax]
mov edx, dword [rsi + 0xc]
shl rdx, cl
xor r9d, r9d
xor r8d, r8d
mov rcx, rax
call qword [r10 + 0x20]
cmp eax, ebx
jne 0x1001a664
mov eax, ebp
cmp rax, qword [rsi + 0xc8]
je 0x1001a065
cmp rax, rbx
jbe 0x1001a047
mov rcx, rax
call fcn.10002fd0
mov rbx, rax
mov rax, qword [rsi + 0xc8]
test rax, rax
je 0x1001a047
mov ecx, ebp
mov r8d, ebp
cmp rax, rcx
cmovb r8, rax
mov rdx, qword [rsi + 0xd0]
mov rcx, rbx
call fcn.100eca34
mov rcx, qword [rsi + 0xd0]
call sub.msvcrt.dll_free
mov qword [rsi + 0xd0], rbx
mov eax, ebp
mov qword [rsi + 0xc8], rax
xor ebx, ebx
mov qword [rsp + 0x30], rbx
mov dword [rsp + 0x38], ebx
mov dword [rsp + 0x3c], ebx
mov edx, 3
lea rcx, [rsp + 0x30]
call fcn.1000178c
nop
mov ebx, 0xffffffff
mov dword [rsp + 0x50], ebx
mov edx, ebx
mov dword [rsp + 0x24], ebx
mov eax, ebp
mov dword [rsp + 0x44], ebp
movsxd rcx, ebp
mov qword [rsp + 0x58], rcx
cmp eax, ebp
jne 0x1001a1a3
xor r9d, r9d
mov dword [rsp + 0x44], r9d
mov qword [rsp + 0x58], r9
cmp byte [rsi + 0xb8], r9b
jne 0x1001a0d3
mov rcx, rsi
call fcn.10018c04
mov ebx, eax
xor r9d, r9d
cmp eax, r9d
jne 0x1001a5c5
cmp byte [rsp + 0x100], r9b
je 0x1001a166
mov ebx, dword [rsp + 0x110]
cmp ebx, dword [rsi + 0x1c]
ja 0x1001a5d7
cmp ebx, 2
jb 0x1001a5c7
cmp ebx, dword [rsi + 0x18]
jae 0x1001a5c7
mov cl, byte [rsi + 0x22]
lea edx, [rbx - 2]
shl edx, cl
add edx, dword [rsi + 0x14]
mov r10, qword [rsi + 0x68]
mov r11, qword [r10]
mov cl, byte [rsi + 0x21]
shl rdx, cl
xor r9d, r9d
xor r8d, r8d
mov rcx, r10
call qword [r11 + 0x20]
test eax, eax
jne 0x1001a5cb
mov rcx, qword [rsi + 0x60]
mov r8d, dword [rcx + rbx*4]
mov dword [rsp + 0x110], r8d
bt r8d, 0x1f
jb 0x1001a5cf
bts dword [rcx + rbx*4], 0x1f
add dword [rsi + 0xb8], edi
mov cl, byte [rsi + 0x23]
mov eax, edi
shl eax, cl
add qword [rsi + 0xd8], rax
jmp 0x1001a17b
mov ecx, dword [rsp + 0x48]
mov eax, ecx
add ecx, edi
mov dword [rsp + 0x48], ecx
cmp eax, dword [rsi + 0x10]
jae 0x1001a5d7
mov r8d, ebp
mov rdx, qword [rsi + 0xd0]
mov rcx, qword [rsi + 0x68]
call fcn.1000abc8
xor r9d, r9d
cmp eax, r9d
jne 0x1001a5d3
mov edx, dword [rsp + 0x24]
mov rcx, r9
jmp 0x1001a1a6
xor r9d, r9d
mov rax, qword [rsi + 0xd0]
lea rbx, [rcx + rax]
mov cl, byte [rbx]
cmp cl, r9b
je 0x1001a5d7
cmp cl, 0xe5
jne 0x1001a1cf
cmp edx, r9d
jg 0x1001a643
jmp 0x1001a5a7
mov bpl, byte [rbx + 0xb]
mov al, bpl
and al, 0x3f
cmp al, 0xf
jne 0x1001a372
cmp cl, 0x7f
ja 0x1001a657
cmp word [rbx + 0x1a], r9w
jne 0x1001a657
mov al, cl
and eax, 0x3f
je 0x1001a647
shr cl, 6
and cl, dil
mov byte [rsp + 0x20], cl
cmp edx, r9d
jge 0x1001a21b
cmp cl, r9b
je 0x1001a64b
mov edx, eax
jmp 0x1001a22c
cmp cl, r9b
jne 0x1001a653
cmp edx, eax
jne 0x1001a653
sub edx, edi
mov dword [rsp + 0x24], edx
cmp byte [rbx + 0xc], r9b
jne 0x1001a5a3
lea rax, [rsp + 0xb0]
lea rdx, [rbx + 1]
mov r8d, 5
movzx ecx, word [rdx]
cmp cx, r9w
je 0x1001a265
cmp cx, 0xffff
je 0x1001a265
mov word [rax], cx
add rax, 2
add rdx, 2
sub r8, rdi
jne 0x1001a24e
mov word [rax], r9w
lea rdx, [rbx + 0xe]
mov r8d, 6
movzx ecx, word [rdx]
cmp cx, r9w
je 0x1001a293
cmp cx, 0xffff
je 0x1001a293
mov word [rax], cx
add rax, 2
add rdx, 2
sub r8, rdi
jne 0x1001a27c
mov word [rax], r9w
lea rdx, [rbx + 0x1c]
mov r8d, 2
movzx ecx, word [rdx]
cmp cx, r9w
je 0x1001a2c1
cmp cx, 0xffff
je 0x1001a2c1
mov word [rax], cx
add rax, 2
add rdx, 2
sub r8, rdi
jne 0x1001a2aa
mov word [rax], r9w
lea r8, [rsp + 0x30]
lea rdx, [rsp + 0xb0]
lea rcx, [rsp + 0x98]
call fcn.10019bf8
mov rbp, rax
lea rax, [rsp + 0x30]
cmp rbp, rax
je 0x1001a337
mov dword [rsp + 0x38], 0
mov rax, qword [rsp + 0x30]
mov word [rax], 0
mov edx, dword [rbp + 8]
lea rcx, [rsp + 0x30]
call fcn.1000178c
mov rcx, qword [rsp + 0x30]
mov rdx, qword [rbp]
movzx eax, word [rdx]
mov word [rcx], ax
add rcx, 2
add rdx, 2
test ax, ax
jne 0x1001a31d
mov eax, dword [rbp + 8]
mov dword [rsp + 0x38], eax
mov rcx, qword [rsp + 0x98]
call sub.msvcrt.dll_free
cmp byte [rsp + 0x20], 0
je 0x1001a355
movzx ecx, byte [rbx + 0xd]
mov dword [rsp + 0x50], ecx
jmp 0x1001a359
mov ecx, dword [rsp + 0x50]
movzx eax, byte [rbx + 0xd]
cmp ecx, eax
jne 0x1001a64f
mov edx, dword [rsp + 0x24]
mov ebp, dword [rsp + 0x28]
jmp 0x1001a5a7
cmp edx, r9d
jg 0x1001a65b
mov qword [rsp + 0x60], r9
mov dword [rsp + 0x68], r9d
mov dword [rsp + 0x6c], r9d
mov edx, 3
lea rcx, [rsp + 0x60]
call fcn.1000178c
nop
mov r8d, 0xb
mov rdx, rbx
lea rcx, [rsp + 0x70]
call sub.msvcrt.dll_memcpy
mov r11d, dword [rsp + 0x50]
test r11d, r11d
js 0x1001a426
xor dl, dl
xor r8d, r8d
mov al, dl
shl al, 7
mov cl, byte [rsp + r8 + 0x70]
add cl, al
mov al, dl
shr al, 1
lea edx, [rax + rcx]
add r8, rdi
cmp r8, 0xb
jl 0x1001a3bc
movzx eax, dl
cmp eax, r11d
jne 0x1001a426
mov dword [rsp + 0x68], 0
mov rax, qword [rsp + 0x60]
mov word [rax], 0
mov edx, dword [rsp + 0x38]
lea rcx, [rsp + 0x60]
call fcn.1000178c
mov r11, qword [rsp + 0x60]
mov rcx, qword [rsp + 0x30]
movzx eax, word [rcx]
mov word [r11], ax
add r11, 2
add rcx, 2
test ax, ax
jne 0x1001a40a
mov eax, dword [rsp + 0x38]
mov dword [rsp + 0x68], eax
movzx eax, byte [rsp + 0x70]
mov ecx, eax
mov edx, 0xffffffe5
cmp al, 5
cmove ecx, edx
mov byte [rsp + 0x70], cl
mov byte [rsp + 0x86], bpl
mov al, byte [rbx + 0xc]
mov byte [rsp + 0x87], al
mov eax, dword [rbx + 0x1c]
mov dword [rsp + 0x88], eax
movzx ecx, word [rbx + 0x1a]
mov dword [rsp + 0x8c], ecx
cmp byte [rsi + 0x20], 0x10
jbe 0x1001a478
movzx eax, word [rbx + 0x14]
shl eax, 0x10
or ecx, eax
mov dword [rsp + 0x8c], ecx
mov eax, dword [rbx + 0xe]
mov dword [rsp + 0x7c], eax
mov al, byte [rbx + 0xd]
mov byte [rsp + 0x7b], al
movzx eax, word [rbx + 0x12]
mov word [rsp + 0x84], ax
mov eax, dword [rbx + 0x16]
mov dword [rsp + 0x80], eax
mov eax, dword [rsp + 0x108]
mov dword [rsp + 0x90], eax
cmp bpl, 8
jne 0x1001a4ca
lea rcx, [rsi + 0x80]
lea rdx, [rsp + 0x60]
call fcn.10019150
mov byte [rsi + 0x7c], dil
jmp 0x1001a570
mov r8d, 0xb
lea rdx, str..
lea rcx, [rsp + 0x70]
call sub.msvcrt.dll_memcmp
test eax, eax
je 0x1001a570
mov r8d, 0xb
lea rdx, str...
lea rcx, [rsp + 0x70]
call sub.msvcrt.dll_memcmp
test eax, eax
je 0x1001a570
test byte [rsp + 0x86], 0x10
jne 0x1001a530
mov cl, byte [rsi + 0x23]
mov eax, edi
shl eax, cl
sub eax, edi
mov ecx, eax
mov eax, dword [rsp + 0x88]
add rax, rcx
not rcx
and rax, rcx
add qword [rsi + 0xd8], rax
mov ecx, 0x38
call fcn.10002fd0
mov qword [rsp + 0x50], rax
test rax, rax
je 0x1001a556
lea rdx, [rsp + 0x60]
mov rcx, rax
call fcn.10018d88
mov rbp, rax
jmp 0x1001a558
xor ebp, ebp
lea rcx, [rsi + 0x40]
call fcn.10001a24
movsxd rcx, dword [rsi + 0x4c]
mov rax, qword [rsi + 0x50]
mov qword [rax + rcx*8], rbp
add dword [rsi + 0x4c], edi
mov ecx, 0xffffffff
mov dword [rsp + 0x24], ecx
mov dword [rsp + 0x38], 0
mov rax, qword [rsp + 0x30]
mov word [rax], 0
mov dword [rsp + 0x50], ecx
mov rcx, qword [rsp + 0x60]
call sub.msvcrt.dll_free
mov edx, dword [rsp + 0x24]
mov ebp, dword [rsp + 0x28]
jmp 0x1001a5a7
mov ebp, dword [rsp + 0x28]
mov eax, dword [rsp + 0x44]
add eax, 0x20
mov dword [rsp + 0x44], eax
mov rcx, qword [rsp + 0x58]
add rcx, 0x20
mov qword [rsp + 0x58], rcx
jmp 0x1001a09f
jmp 0x1001a627
mov ebx, edi
jmp 0x1001a627
mov ebx, eax
jmp 0x1001a627
mov ebx, edi
jmp 0x1001a627
mov ebx, eax
jmp 0x1001a627
movsxd rdx, dword [rsp + 0x40]
mov rbx, rdx
movsxd rbp, dword [rsi + 0x4c]
cmp rdx, rbp
jge 0x1001a635
mov rax, qword [rsi + 0x50]
mov rcx, qword [rax + rbx*8]
test byte [rcx + 0x26], 0x10
je 0x1001a615
mov r9d, dword [rsp + 0x118]
inc r9d
mov r8d, dword [rcx + 0x2c]
mov rcx, rsi
call fcn.10019f60
test eax, eax
jne 0x1001a625
mov edx, dword [rsp + 0x40]
add edx, edi
mov dword [rsp + 0x40], edx
add rbx, rdi
cmp rbx, rbp
jl 0x1001a5e8
jmp 0x1001a635
mov ebx, eax
mov rcx, qword [rsp + 0x30]
call sub.msvcrt.dll_free
mov eax, ebx
jmp 0x1001a664
mov rcx, qword [rsp + 0x30]
call sub.msvcrt.dll_free
xor eax, eax
jmp 0x1001a664
mov ebx, edi
jmp 0x1001a627
mov ebx, edi
jmp 0x1001a627
mov ebx, edi
jmp 0x1001a627
mov ebx, edi
jmp 0x1001a627
mov ebx, edi
jmp 0x1001a627
mov ebx, edi
jmp 0x1001a627
mov ebx, edi
jmp 0x1001a627
mov eax, 1
add rsp, 0xd8
pop rdi
pop rsi
pop rbp
pop rbx
ret