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

Disassembly:
mov qword [rsp + 0x10], rdx
push rbp
push rbx
push rsi
push rdi
push r12
push r13
push r14
push r15
lea rbp, [rsp - 0x38]
sub rsp, 0x138
cmp byte [rcx + 0x50], 0
mov r15, rdx
mov r14, rcx
je 0x140028208
xor edx, edx
call fcn.14002a140
mov dword [rbp + 0x98], eax
jmp 0x140028212
mov dword [rbp + 0x98], 0xffffffff
cmp byte [r14 + 0xb4], 0
je 0x14002822a
cmp dword [r14 + 0xb0], 2
jne 0x14002822a
mov dl, 1
jmp 0x14002822c
xor edx, edx
mov rcx, r14
call fcn.14002a140
mov edi, dword [r14 + 0xb0]
lea rcx, [0x140062cf8]
movsxd rsi, eax
xor ebx, ebx
mov rax, qword [r14 + 0x80]
mov edx, 0x40
mov qword [rbp - 0x38], rax
mov eax, dword [r14 + 0x88]
mov dword [rsp + 0x38], eax
mov eax, dword [r14 + 0x8c]
mov dword [rsp + 0x3c], eax
mov eax, dword [r14 + 0x90]
mov dword [rsp + 0x40], eax
mov eax, dword [r14 + 0x94]
mov dword [rsp + 0x44], eax
mov eax, dword [0x140062d00]
btr eax, 0x1f
mov qword [rsp + 0x20], rcx
cmp eax, edx
mov qword [rsp + 0x28], rcx
mov r8d, eax
mov dword [rsp + 0x30], ebx
cmovb r8d, edx
mov byte [rsp + 0x34], bl
sbb r9d, r9d
lea rcx, [rsp + 0x28]
and r9d, 8
call fcn.140009230
mov r12, qword [rsp + 0x28]
movsxd rax, dword [r12 + 4]
test eax, eax
je 0x1400282ef
mov rcx, qword [r12 + 0x10]
lea rdx, [rcx + rax*4]
add rdx, r12
lea r8, [rcx + r12]
cmp rdx, r8
je 0x1400282ef
nop dword [rax]
sub rdx, 4
mov dword [rdx], 0x7fffffff
cmp rdx, r8
jne 0x1400282e0
mov r13d, dword [r14 + 0xb0]
mov dword [rbp + 0x90], r13d
cmp r13d, 7
jne 0x140028326
mov rdx, qword [r14 + 0x98]
lea rcx, [rsp + 0x20]
call fcn.1400217b0
mov eax, dword [r14 + 0xb0]
mov r12, qword [rsp + 0x28]
mov dword [rbp + 0x90], eax
movzx eax, byte [r14 + 0xb4]
mov rdx, r15
mov rcx, r14
mov byte [rbp + 0x80], al
call fcn.1400279c0
cmp byte [r14 + 0x50], bl
je 0x14002836d
cmp edi, 3
jne 0x14002836d
mov edx, esi
lea rcx, [r14 + 0x10]
call fcn.1400218d0
cmp dword [rax + 4], 0xffffffff
jne 0x14002836d
mov edx, esi
lea rcx, [r14 + 0x10]
call fcn.1400218d0
mov dword [rax + 4], 0xfffffffd
mov rdx, qword [r14 + 0x10]
lea r13, [r14 + 0x10]
mov rax, qword [rdx + 0x10]
lea rcx, [rax + rsi*8]
mov eax, dword [rcx + rdx]
mov dword [r14 + 0x1c], eax
mov eax, dword [r14 + 0xb0]
mov dword [rbp - 0x3c], eax
cmp eax, 9
jne 0x140028b0a
mov eax, dword [r14 + 0xa4]
mov byte [r14 + 0x49], bl
cmp eax, 0x401
jne 0x1400283d1
mov rcx, qword [r15]
lea r8, [r15 + 8]
lea rdx, [r15 + 0x10]
mov r9d, esi
call fcn.140021de0
mov rdx, r15
mov rcx, r15
call fcn.140021b60
mov dword [r15 + 0x50], 0x7fffffff
jmp 0x1400283f7
test eax, eax
jne 0x1400283f7
mov rdx, qword [r15]
lea rcx, [rsp + 0x60]
call fcn.140020820
mov rdx, rax
mov rcx, r15
call fcn.140021660
lea rcx, [rsp + 0x60]
call fcn.140020fe0
mov ecx, dword [r14 + 0xa0]
test ecx, ecx
jne 0x140028411
mov rcx, r15
call fcn.140026fe0
mov ecx, dword [r14 + 0xa0]
test ecx, ecx
mov byte [r14 + 0xb4], bl
lea eax, [rcx - 1]
mov r15d, ebx
cmovne r15d, eax
lea rcx, [rbp - 0x30]
mov eax, dword [r14 + 0xa4]
mov rdx, r14
mov edi, eax
mov dword [rbp - 0x40], r15d
sub edi, r15d
dec edi
cmp eax, 0x401
cmove edi, ebx
call fcn.140020820
test edi, edi
jle 0x14002877f
mov r13, qword [rsp + 0x20]
mov r15d, dword [rbp + 0x90]
mov esi, edi
mov rax, qword [rbp - 0x38]
mov rdi, qword [r14 + 0x98]
mov qword [r14 + 0x80], rax
mov eax, dword [rsp + 0x38]
mov dword [r14 + 0x88], eax
mov eax, dword [rsp + 0x3c]
mov dword [r14 + 0x8c], eax
mov eax, dword [rsp + 0x40]
mov dword [r14 + 0x90], eax
mov eax, dword [rsp + 0x44]
mov dword [r14 + 0x94], eax
cmp r13, qword [rdi]
je 0x1400284e2
lea rdx, [rsp + 0x20]
lea rcx, [rsp + 0x48]
call fcn.140020750
mov rcx, qword [rdi]
mov rax, qword [rsp + 0x48]
mov qword [rdi], rax
mov qword [rsp + 0x48], rcx
mov eax, dword [rcx]
test eax, eax
je 0x1400284d4
cmp eax, 0xffffffff
je 0x1400284e2
sub eax, 1
mov dword [rcx], eax
jne 0x1400284e2
mov edx, 4
lea r8d, [rdx + 4]
call fcn.140014460
cmp r12, qword [rdi + 8]
je 0x140028529
lea rdx, [rsp + 0x28]
lea rcx, [rsp + 0x50]
call fcn.140020750
mov rcx, qword [rdi + 8]
mov rax, qword [rsp + 0x50]
mov qword [rdi + 8], rax
mov qword [rsp + 0x50], rcx
mov eax, dword [rcx]
test eax, eax
je 0x14002851b
cmp eax, 0xffffffff
je 0x140028529
sub eax, 1
mov dword [rcx], eax
jne 0x140028529
mov edx, 4
lea r8d, [rdx + 4]
call fcn.140014460
mov eax, dword [rsp + 0x30]
lea rcx, [rsp + 0x60]
mov dword [rdi + 0x10], eax
mov rdx, r14
movzx eax, byte [rsp + 0x34]
mov byte [rdi + 0x14], al
mov qword [r14 + 0xa0], rbx
mov dword [r14 + 0xb0], r15d
call fcn.140020820
lea rdx, [rsp + 0x60]
mov rcx, r14
call fcn.1400279c0
lea rdx, [rbp - 0x30]
lea rcx, [rsp + 0x60]
call fcn.140022ca0
mov rcx, qword [rbp - 0x68]
lea rdi, [0x140062cf8]
mov qword [rbp - 0x74], rbx
mov qword [rbp - 0x68], rdi
mov eax, dword [rcx]
test eax, eax
je 0x140028593
cmp eax, 0xffffffff
je 0x1400285a1
sub eax, 1
mov dword [rcx], eax
jne 0x1400285a1
mov edx, 2
lea r8d, [rdx + 6]
call fcn.140014460
mov rcx, qword [rbp - 0x60]
mov qword [rbp - 0x60], rdi
mov eax, dword [rcx]
test eax, eax
je 0x1400285bb
cmp eax, 0xffffffff
je 0x1400285c9
sub eax, 1
mov dword [rcx], eax
jne 0x1400285c9
mov edx, 2
lea r8d, [rdx + 6]
call fcn.140014460
mov rcx, qword [rbp - 0x58]
mov qword [rbp - 0x58], rdi
mov eax, dword [rcx]
test eax, eax
je 0x1400285e3
cmp eax, 0xffffffff
je 0x1400285f1
sub eax, 1
mov dword [rcx], eax
jne 0x1400285f1
mov edx, 2
lea r8d, [rdx + 6]
call fcn.140014460
lea rdx, [rsp + 0x60]
mov dword [rbp - 0x78], ebx
lea rcx, [rbp - 0x30]
mov dword [rbp - 0x4c], ebx
call fcn.140021660
mov rcx, qword [rbp - 0x48]
mov eax, dword [rcx]
test eax, eax
je 0x14002861f
cmp eax, 0xffffffff
je 0x14002862d
sub eax, 1
mov dword [rcx], eax
jne 0x14002862d
mov rcx, qword [rbp - 0x48]
mov edx, 4
lea r8d, [rdx + 4]
call fcn.140014460
mov rcx, qword [rbp - 0x58]
mov eax, dword [rcx]
test eax, eax
je 0x140028647
cmp eax, 0xffffffff
je 0x140028655
sub eax, 1
mov dword [rcx], eax
jne 0x140028655
mov rcx, qword [rbp - 0x58]
mov edx, 2
lea r8d, [rdx + 6]
call fcn.140014460
mov rcx, qword [rbp - 0x60]
mov eax, dword [rcx]
test eax, eax
je 0x14002866f
cmp eax, 0xffffffff
je 0x14002867d
sub eax, 1
mov dword [rcx], eax
jne 0x14002867d
mov rcx, qword [rbp - 0x60]
mov edx, 2
lea r8d, [rdx + 6]
call fcn.140014460
mov rcx, qword [rbp - 0x68]
mov eax, dword [rcx]
test eax, eax
je 0x140028697
cmp eax, 0xffffffff
je 0x1400286a5
sub eax, 1
mov dword [rcx], eax
jne 0x1400286a5
mov rcx, qword [rbp - 0x68]
mov edx, 2
lea r8d, [rdx + 6]
call fcn.140014460
mov rdi, qword [rbp - 0x80]
mov eax, dword [rdi]
test eax, eax
je 0x1400286bf
cmp eax, 0xffffffff
je 0x1400286de
sub eax, 1
mov dword [rdi], eax
jne 0x1400286de
mov rdi, qword [rbp - 0x80]
mov rdx, qword [rdi + 0x10]
test rdx, rdx
je 0x1400286d6
mov r8d, 8
mov rcx, rdi
call fcn.140052170
mov rcx, rdi
call fcn.140051d80
mov rdi, qword [rsp + 0x78]
mov eax, dword [rdi]
test eax, eax
je 0x1400286fa
cmp eax, 0xffffffff
je 0x140028719
sub eax, 1
mov dword [rdi], eax
jne 0x140028719
mov rdi, qword [rsp + 0x78]
mov rdx, qword [rdi + 0x10]
test rdx, rdx
je 0x140028711
mov r8d, 8
mov rcx, rdi
call fcn.140052170
mov rcx, rdi
call fcn.140051d80
mov rcx, qword [rsp + 0x70]
mov eax, dword [rcx]
test eax, eax
je 0x140028735
cmp eax, 0xffffffff
je 0x140028743
sub eax, 1
mov dword [rcx], eax
jne 0x140028743
mov rcx, qword [rsp + 0x70]
mov edx, 4
lea r8d, [rdx + 4]
call fcn.140014460
mov rcx, qword [rsp + 0x68]
mov eax, dword [rcx]
test eax, eax
je 0x14002875f
cmp eax, 0xffffffff
je 0x14002876d
sub eax, 1
mov dword [rcx], eax
jne 0x14002876d
mov rcx, qword [rsp + 0x68]
mov edx, 4
lea r8d, [rdx + 4]
call fcn.140014460
sub rsi, 1
jne 0x140028460
mov r15d, dword [rbp - 0x40]
lea r13, [r14 + 0x10]
test r15d, r15d
jle 0x140028ac1
mov r13, qword [rsp + 0x20]
mov esi, r15d
lea r15, [0x1400d9430]
nop word [rax + rax]
mov rax, qword [rbp - 0x38]
mov rdi, qword [r14 + 0x98]
mov qword [r14 + 0x80], rax
mov eax, dword [rsp + 0x38]
mov dword [r14 + 0x88], eax
mov eax, dword [rsp + 0x3c]
mov dword [r14 + 0x8c], eax
mov eax, dword [rsp + 0x40]
mov dword [r14 + 0x90], eax
mov eax, dword [rsp + 0x44]
mov dword [r14 + 0x94], eax
cmp r13, qword [rdi]
je 0x140028822
lea rdx, [rsp + 0x20]
lea rcx, [rsp + 0x50]
call fcn.140020750
mov rcx, qword [rdi]
mov rax, qword [rsp + 0x50]
mov qword [rdi], rax
mov qword [rsp + 0x50], rcx
mov eax, dword [rcx]
test eax, eax
je 0x140028814
cmp eax, 0xffffffff
je 0x140028822
sub eax, 1
mov dword [rcx], eax
jne 0x140028822
mov edx, 4
lea r8d, [rdx + 4]
call fcn.140014460
cmp r12, qword [rdi + 8]
je 0x140028869
lea rdx, [rsp + 0x28]
lea rcx, [rsp + 0x48]
call fcn.140020750
mov rcx, qword [rdi + 8]
mov rax, qword [rsp + 0x48]
mov qword [rdi + 8], rax
mov qword [rsp + 0x48], rcx
mov eax, dword [rcx]
test eax, eax
je 0x14002885b
cmp eax, 0xffffffff
je 0x140028869
sub eax, 1
mov dword [rcx], eax
jne 0x140028869
mov edx, 4
lea r8d, [rdx + 4]
call fcn.140014460
mov eax, dword [rsp + 0x30]
mov ecx, 0x40
mov dword [rdi + 0x10], eax
mov edx, ecx
movzx eax, byte [rsp + 0x34]
mov byte [rdi + 0x14], al
mov eax, dword [rbp + 0x90]
mov dword [r14 + 0xb0], eax
lea rax, [0x140062cf8]
mov qword [rsp + 0x68], rax
mov qword [rsp + 0x70], rax
mov qword [rbp - 0x68], rax
mov qword [rbp - 0x60], rax
mov qword [rbp - 0x58], rax
mov qword [rbp - 0x48], rax
mov qword [r14 + 0xa0], rbx
mov eax, dword [0x140062d00]
btr eax, 0x1f
mov qword [rsp + 0x60], r14
cmp eax, 0x40
mov qword [rsp + 0x78], r15
mov r8d, eax
mov qword [rbp - 0x80], r15
cmovb r8d, ecx
mov qword [rbp - 0x78], rbx
sbb r9d, r9d
mov dword [rbp - 0x70], ebx
and r9d, 8
mov dword [rbp - 0x50], ebx
lea rcx, [rbp - 0x48]
call fcn.140009230
mov r9, qword [rbp - 0x48]
movsxd rax, dword [r9 + 4]
test eax, eax
je 0x14002891f
mov rcx, qword [r9 + 0x10]
lea rdx, [rcx + rax*4]
add rdx, r9
lea r8, [rcx + r9]
cmp rdx, r8
je 0x14002891f
sub rdx, 4
mov dword [rdx], 0x7fffffff
cmp rdx, r8
jne 0x140028910
lea rdx, [rsp + 0x60]
mov dword [rbp - 0x4c], ebx
mov rcx, r14
call fcn.1400279c0
lea rdx, [rbp - 0x30]
lea rcx, [rsp + 0x60]
call fcn.140022ca0
lea rdx, [rsp + 0x60]
lea rcx, [rbp - 0x30]
call fcn.140021660
mov rcx, qword [rbp - 0x48]
mov eax, dword [rcx]
test eax, eax
je 0x140028965
cmp eax, 0xffffffff
je 0x140028973
sub eax, 1
mov dword [rcx], eax
jne 0x140028973
mov rcx, qword [rbp - 0x48]
mov edx, 4
lea r8d, [rdx + 4]
call fcn.140014460
mov rcx, qword [rbp - 0x58]
mov eax, dword [rcx]
test eax, eax
je 0x14002898d
cmp eax, 0xffffffff
je 0x14002899b
sub eax, 1
mov dword [rcx], eax
jne 0x14002899b
mov rcx, qword [rbp - 0x58]
mov edx, 2
lea r8d, [rdx + 6]
call fcn.140014460
mov rcx, qword [rbp - 0x60]
mov eax, dword [rcx]
test eax, eax
je 0x1400289b5
cmp eax, 0xffffffff
je 0x1400289c3
sub eax, 1
mov dword [rcx], eax
jne 0x1400289c3
mov rcx, qword [rbp - 0x60]
mov edx, 2
lea r8d, [rdx + 6]
call fcn.140014460
mov rcx, qword [rbp - 0x68]
mov eax, dword [rcx]
test eax, eax
je 0x1400289dd
cmp eax, 0xffffffff
je 0x1400289eb
sub eax, 1
mov dword [rcx], eax
jne 0x1400289eb
mov rcx, qword [rbp - 0x68]
mov edx, 2
lea r8d, [rdx + 6]
call fcn.140014460
mov rdi, qword [rbp - 0x80]
mov eax, dword [rdi]
test eax, eax
je 0x140028a05
cmp eax, 0xffffffff
je 0x140028a24
sub eax, 1
mov dword [rdi], eax
jne 0x140028a24
mov rdi, qword [rbp - 0x80]
mov rdx, qword [rdi + 0x10]
test rdx, rdx
je 0x140028a1c
mov r8d, 8
mov rcx, rdi
call fcn.140052170
mov rcx, rdi
call fcn.140051d80
mov rdi, qword [rsp + 0x78]
mov eax, dword [rdi]
test eax, eax
je 0x140028a40
cmp eax, 0xffffffff
je 0x140028a5f
sub eax, 1
mov dword [rdi], eax
jne 0x140028a5f
mov rdi, qword [rsp + 0x78]
mov rdx, qword [rdi + 0x10]
test rdx, rdx
je 0x140028a57
mov r8d, 8
mov rcx, rdi
call fcn.140052170
mov rcx, rdi
call fcn.140051d80
mov rcx, qword [rsp + 0x70]
mov eax, dword [rcx]
test eax, eax
je 0x140028a7b
cmp eax, 0xffffffff
je 0x140028a89
sub eax, 1
mov dword [rcx], eax
jne 0x140028a89
mov rcx, qword [rsp + 0x70]
mov edx, 4
lea r8d, [rdx + 4]
call fcn.140014460
mov rcx, qword [rsp + 0x68]
mov eax, dword [rcx]
test eax, eax
je 0x140028aa5
cmp eax, 0xffffffff
je 0x140028ab3
sub eax, 1
mov dword [rcx], eax
jne 0x140028ab3
mov rcx, qword [rsp + 0x68]
mov edx, 4
lea r8d, [rdx + 4]
call fcn.140014460
sub rsi, 1
jne 0x1400287a0
lea r13, [r14 + 0x10]
mov rdx, qword [rbp + 0x88]
lea rcx, [rbp - 0x30]
call fcn.140022ca0
mov rcx, qword [rbp + 0x88]
lea rdx, [rbp - 0x30]
call fcn.140021660
mov rcx, r14
call fcn.140024ac0
mov dword [r14 + 0xb0], eax
lea rcx, [rbp - 0x30]
movzx eax, byte [rbp + 0x80]
mov byte [r14 + 0xb4], al
call fcn.140020fe0
mov eax, dword [rbp - 0x3c]
cmp byte [r14 + 0x50], bl
je 0x140028be5
cmp eax, 9
jne 0x140028bc9
mov rax, qword [r13]
cmp dword [rax], 1
jbe 0x140028b5a
mov r8d, dword [rax + 8]
and r8d, 0x7fffffff
jne 0x140028b4c
mov edx, 8
lea r9d, [r8 + 2]
mov ecx, edx
xor r8d, r8d
call fcn.140014350
mov qword [r13], rax
jmp 0x140028b5a
mov edx, dword [rax + 4]
mov r9d, ebx
mov rcx, r13
call fcn.1400090d0
mov rdx, qword [r13]
movsxd rsi, dword [rbp + 0x98]
mov rcx, qword [rdx + 0x10]
lea rdi, [rsi*8]
add rcx, rdi
cmp dword [rcx + rdx + 4], 0xffffffff
jne 0x140028bcf
cmp dword [rdx], 1
jbe 0x140028bb4
mov r8d, dword [rdx + 8]
and r8d, 0x7fffffff
jne 0x140028ba6
mov edx, 8
lea r9d, [r8 + 2]
mov ecx, edx
xor r8d, r8d
call fcn.140014350
mov qword [r13], rax
jmp 0x140028bb4
mov edx, dword [rdx + 4]
mov r9d, ebx
mov rcx, r13
call fcn.1400090d0
mov rdx, qword [r13]
mov rcx, qword [rdx + 0x10]
add rcx, rdi
mov dword [rcx + rdx + 4], 0xfffffffd
jmp 0x140028bcf
mov esi, dword [rbp + 0x98]
mov rdx, qword [r13]
movsxd rcx, esi
mov rax, qword [rdx + 0x10]
lea rcx, [rax + rcx*8]
mov eax, dword [rcx + rdx]
mov dword [r14 + 0x1c], eax
mov eax, dword [r12]
test eax, eax
je 0x140028bfb
cmp eax, 0xffffffff
je 0x140028c0c
sub eax, 1
mov dword [r12], eax
jne 0x140028c0c
mov edx, 4
mov rcx, r12
lea r8d, [rdx + 4]
call fcn.140014460
mov rcx, qword [rsp + 0x20]
mov eax, dword [rcx]
test eax, eax
je 0x140028c23
cmp eax, 0xffffffff
je 0x140028c31
sub eax, 1
mov dword [rcx], eax
jne 0x140028c31
mov edx, 4
lea r8d, [rdx + 4]
call fcn.140014460
add rsp, 0x138
pop r15
pop r14
pop r13
pop r12
pop rdi
pop rsi
pop rbx
pop rbp
ret