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

Disassembly:
push rbx
push rsi
push rdi
sub rsp, 0x60
mov rax, qword [rcx + 0x20]
mov rsi, rcx
mov qword [rsp + 0x58], r12
mov r12d, edx
mov rdi, qword [rax + 0x18]
test rdi, rdi
je 0x14002b515
mov rbx, qword [0x1402808c0]
mov rcx, rbx
call qword [fcn.1400059b0]
mov rcx, rdi
call rbx
mov rcx, qword [rsi + 0x28]
cmp byte [rcx + 0x11], 0
je 0x14002b52d
inc dword [rcx + 0x14]
cmp byte [rcx + 0x12], 0
jne 0x14002b52d
call fcn.14001d730
mov rax, qword [rsi]
test rax, rax
je 0x14002b553
mov rdi, qword [rax + 0x18]
test rdi, rdi
je 0x14002b553
mov rbx, qword [0x1402808c0]
mov rcx, rbx
call qword [fcn.1400059b0]
mov rcx, rdi
call rbx
mov edi, dword [rsi + 0x30]
mov qword [rsp + 0x88], rbp
test edi, edi
je 0x14002b56e
lea eax, [rdi - 5]
cmp eax, 1
ja 0x14002bc59
cmp qword [rsi], 0
mov r9, qword [rsi + 0x28]
mov rax, qword [rsi + 8]
mov qword [rsp + 0x50], r13
mov qword [rsp + 0x48], r14
mov rdx, qword [r9 + 8]
mov rcx, qword [rax + 8]
mov qword [rsp + 0x40], r15
mov dword [rsp + 0x98], 0
mov rbx, qword [rdx]
mov r13, qword [rcx]
mov qword [rsp + 0x28], rbx
je 0x14002b5b6
cmp byte [rdx + 0x24], 2
jne 0x14002b5b6
mov edi, 5
jmp 0x14002b5e0
xor edi, edi
test r9, r9
je 0x14002b5c6
movzx eax, byte [r9 + 0x10]
test eax, eax
jne 0x14002b5e0
xor r8d, r8d
xor edx, edx
mov rcx, r9
call fcn.140020c60
mov edi, eax
mov dword [rsp + 0x98], 1
cmp dword [rsi + 0x14], 0
mov ebp, 7
jne 0x14002b611
test edi, edi
jne 0x14002b63a
mov rax, qword [rsi + 0x28]
xor r9d, r9d
xor r8d, r8d
mov rcx, qword [rax + 8]
mov edx, dword [rcx + 0x34]
mov rcx, qword [rsi + 8]
call fcn.140020590
cmp eax, ebp
jne 0x14002b615
mov edi, ebp
jmp 0x14002b63a
test edi, edi
jne 0x14002b63a
cmp dword [rsi + 0x14], 0
jne 0x14002b63a
mov rcx, qword [rsi + 8]
lea r8, [rsi + 0x10]
mov edx, 2
call fcn.140020c60
mov edi, eax
test eax, eax
jne 0x14002b63a
mov dword [rsi + 0x14], 1
mov rax, qword [rsi + 0x28]
mov rcx, qword [rax + 8]
mov rax, qword [rsi + 8]
mov edx, dword [rcx + 0x34]
mov rax, qword [rax + 8]
mov dword [rsp + 0x80], edx
mov r8d, dword [rax + 0x34]
mov rax, qword [rax]
mov dword [rsp + 0x90], r8d
movzx eax, byte [rax + 9]
mov dword [rsp + 0x20], eax
test edi, edi
jne 0x14002b68b
cmp eax, 5
je 0x14002b680
cmp byte [r13 + 0x10], dil
jne 0x14002b680
cmp byte [r13 + 0x14], dil
je 0x14002b68b
cmp edx, r8d
mov eax, 8
cmovne edi, eax
mov r15d, dword [rcx + 0x40]
xor r14d, r14d
test r12d, r12d
js 0x14002b6a0
cmp r14d, r12d
jge 0x14002b747
mov ebp, dword [rsi + 0x18]
cmp ebp, r15d
ja 0x14002b747
test edi, edi
jne 0x14002b78c
mov rax, qword [rsi + 0x28]
xor edx, edx
mov rcx, qword [rax + 8]
mov eax, dword [0x14027f12c]
div dword [rcx + 0x34]
inc eax
cmp ebp, eax
je 0x14002b73c
mov rbx, qword [rbx + 0x110]
mov rcx, rbx
call qword [fcn.1400059b0]
mov rcx, qword [rsp + 0x28]
lea r9d, [rdi + 2]
lea r8, [rsp + 0x30]
mov edx, ebp
call rbx
mov edi, eax
test eax, eax
jne 0x14002b737
mov rax, qword [rsp + 0x30]
xor r9d, r9d
mov edx, ebp
mov rcx, rsi
mov r8, qword [rax + 8]
call fcn.14002b350
mov rcx, qword [rsp + 0x30]
mov edi, eax
test rcx, rcx
je 0x14002b737
test byte [rcx + 0x34], 0x20
je 0x14002b732
call fcn.140016a70
inc dword [rsi + 0x18]
mov rbx, qword [rsp + 0x28]
inc r14d
jmp 0x14002b692
call fcn.140012240
mov rbx, qword [rsp + 0x28]
inc dword [rsi + 0x18]
inc r14d
jmp 0x14002b692
test edi, edi
jne 0x14002b78c
mov eax, r15d
mov dword [rsi + 0x38], r15d
sub eax, dword [rsi + 0x18]
inc eax
mov dword [rsi + 0x34], eax
cmp dword [rsi + 0x18], r15d
ja 0x14002b795
cmp dword [rsi + 0x3c], edi
jne 0x14002bbc1
mov rax, qword [rsi + 0x28]
mov rcx, qword [rax + 8]
mov rdx, qword [rcx]
mov rax, qword [rdx + 0x70]
mov qword [rsi + 0x40], rax
mov qword [rdx + 0x70], rsi
mov dword [rsi + 0x3c], 1
jmp 0x14002bbc1
cmp edi, 0x65
jne 0x14002bbc1
test r15d, r15d
jne 0x14002b7ee
mov rbx, qword [rsi + 8]
cmp byte [rbx + 0x11], r15b
je 0x14002b7b5
inc dword [rbx + 0x14]
cmp byte [rbx + 0x12], r15b
jne 0x14002b7b5
mov rcx, rbx
call fcn.14001d730
mov rax, qword [rbx + 8]
mov dword [rax + 0x40], 0
mov rcx, qword [rbx + 8]
call fcn.140020b80
cmp byte [rbx + 0x11], 0
mov edi, eax
je 0x14002b7df
sub dword [rbx + 0x14], 1
jne 0x14002b7df
mov rcx, rbx
call fcn.14001d6d0
mov r15d, 1
test edi, edi
je 0x14002b7ee
cmp edi, 0x65
jne 0x14002b843
mov rbx, qword [rsi + 8]
mov ebp, dword [rsi + 0x10]
inc ebp
cmp byte [rbx + 0x11], 0
mov rdi, qword [rbx + 8]
je 0x14002b812
inc dword [rbx + 0x14]
cmp byte [rbx + 0x12], 0
jne 0x14002b812
mov rcx, rbx
call fcn.14001d730
mov rcx, qword [rdi + 0x18]
mov r14, qword [rcx + 0x50]
mov rcx, qword [rcx + 0x70]
call fcn.140018c40
mov edi, eax
test eax, eax
jne 0x14002b82f
bswap ebp
mov dword [r14 + 0x28], ebp
cmp byte [rbx + 0x11], 0
je 0x14002b843
sub dword [rbx + 0x14], 1
jne 0x14002b843
mov rcx, rbx
call fcn.14001d6d0
test edi, edi
jne 0x14002bbc1
mov rcx, qword [rsi]
test rcx, rcx
je 0x14002b858
call fcn.14005b030
cmp dword [rsp + 0x20], 5
jne 0x14002b877
mov rcx, qword [rsi + 8]
mov edx, 2
call fcn.14002af60
mov edi, eax
test eax, eax
jne 0x14002bbc1
movsxd r14, dword [rsp + 0x80]
mov ebx, dword [rsp + 0x90]
cmp r14d, ebx
jge 0x14002b8c1
mov eax, ebx
cdq
idiv r14d
mov ecx, eax
dec eax
add eax, r15d
cdq
idiv ecx
mov rcx, qword [rsi + 8]
xor edx, edx
mov r9d, eax
mov eax, dword [0x14027f12c]
mov r8, qword [rcx + 8]
lea ebp, [r9 - 1]
div dword [r8 + 0x34]
inc eax
cmp r9d, eax
cmovne ebp, r9d
jmp 0x14002b8cd
mov eax, r14d
cdq
idiv ebx
mov ebp, eax
imul ebp, r15d
cmp r14d, ebx
jge 0x14002bb26
movsxd rbx, r15d
mov r12, r14
mov r15, qword [r13 + 0x48]
imul rbx, r14
mov r14d, dword [r13 + 0x20]
mov qword [rsp + 0x20], rbx
nop dword [rax]
cmp ebp, r14d
ja 0x14002b963
mov rax, qword [rsi + 8]
xor edx, edx
mov rcx, qword [rax + 8]
mov eax, dword [0x14027f12c]
div dword [rcx + 0x34]
inc eax
cmp ebp, eax
je 0x14002b95b
mov rbx, qword [r13 + 0x110]
mov rcx, rbx
call qword [fcn.1400059b0]
xor r9d, r9d
lea r8, [rsp + 0x30]
mov edx, ebp
mov rcx, r13
call rbx
mov edi, eax
test eax, eax
jne 0x14002b95b
mov rcx, qword [rsp + 0x30]
call fcn.140018c40
mov rcx, qword [rsp + 0x30]
mov edi, eax
test rcx, rcx
je 0x14002b95b
test byte [rcx + 0x34], 0x20
je 0x14002b956
call fcn.140016a70
jmp 0x14002b95b
call fcn.140012240
inc ebp
test edi, edi
je 0x14002b8f0
jmp 0x14002b977
test edi, edi
jne 0x14002b977
xor edx, edx
lea r8d, [rdi + 1]
mov rcx, r13
call fcn.140018ee0
mov edi, eax
mov r14, qword [rsp + 0x20]
mov eax, dword [rsp + 0x90]
add eax, dword [0x14027f12c]
movsxd rcx, eax
mov eax, dword [rsp + 0x80]
cmp rcx, r14
cmovl r14, rcx
add eax, dword [0x14027f12c]
movsxd rbp, eax
test edi, edi
jne 0x14002bbc1
nop dword [rax + rax]
cmp rbp, r14
jge 0x14002ba60
mov rdi, qword [rsp + 0x28]
mov rax, rbp
cqo
mov qword [rsp + 0x90], 0
idiv r12
mov rdi, qword [rdi + 0x110]
mov rcx, rdi
mov rbx, rax
call qword [fcn.1400059b0]
mov rcx, qword [rsp + 0x28]
lea r8, [rsp + 0x90]
xor r9d, r9d
lea edx, [rbx + 1]
call rdi
mov edi, eax
test eax, eax
jne 0x14002ba31
mov rax, qword [rsp + 0x90]
mov rbx, qword [rax + 8]
mov rax, qword [r15]
mov rdi, qword [rax + 0x18]
mov rcx, rdi
call qword [fcn.1400059b0]
mov r8d, dword [rsp + 0x80]
mov r9, rbp
mov rdx, rbx
mov rcx, r15
call rdi
mov edi, eax
mov rcx, qword [rsp + 0x90]
test rcx, rcx
je 0x14002ba50
test byte [rcx + 0x34], 0x20
je 0x14002ba4b
call fcn.140016a70
jmp 0x14002ba50
call fcn.140012240
add rbp, r12
test edi, edi
je 0x14002b9b0
jmp 0x14002bbc1
test edi, edi
jne 0x14002bbc1
mov rax, qword [r15]
mov rbx, qword [rax + 0x30]
mov rcx, rbx
call qword [fcn.1400059b0]
lea rdx, [rsp + 0x80]
mov rcx, r15
call rbx
mov edi, eax
test eax, eax
jne 0x14002bab4
mov rbp, qword [rsp + 0x20]
cmp qword [rsp + 0x80], rbp
jle 0x14002bab4
mov rax, qword [r15]
mov rbx, qword [rax + 0x20]
mov rcx, rbx
call qword [fcn.1400059b0]
mov rdx, rbp
mov rcx, r15
call rbx
mov edi, eax
test edi, edi
jne 0x14002bbc1
mov rdi, qword [r13 + 0x48]
mov rbx, qword [rdi]
test rbx, rbx
jne 0x14002bacd
lea eax, [rbx + 0xc]
jmp 0x14002bae6
mov rbx, qword [rbx + 0x50]
mov rcx, rbx
call qword [fcn.1400059b0]
xor r8d, r8d
mov rcx, rdi
lea edx, [r8 + 0x15]
call rbx
xor edi, edi
cmp eax, 0xc
cmovne edi, eax
test edi, edi
jne 0x14002bbc1
cmp byte [r13 + 0xb], dil
jne 0x14002bb39
movzx edi, byte [r13 + 0xe]
mov r14, qword [r13 + 0x48]
test edi, edi
je 0x14002bb22
mov rax, qword [r14]
mov rbx, qword [rax + 0x28]
mov rcx, rbx
call qword [fcn.1400059b0]
mov edx, edi
mov rcx, r14
call rbx
jmp 0x14002bb37
xor edi, edi
jmp 0x14002bb39
xor r8d, r8d
mov dword [r13 + 0x20], ebp
xor edx, edx
mov rcx, r13
call fcn.140018ee0
mov edi, eax
test edi, edi
jne 0x14002bbc1
mov rbx, qword [rsi + 8]
cmp byte [rbx + 0x10], dil
je 0x14002bbbc
cmp byte [rbx + 0x11], dil
je 0x14002bb62
inc dword [rbx + 0x14]
cmp byte [rbx + 0x12], dil
jne 0x14002bb62
mov rcx, rbx
call fcn.14001d730
cmp byte [rbx + 0x10], 2
jne 0x14002bba0
mov r14, qword [rbx + 8]
mov rcx, qword [r14]
call fcn.140019160
mov edi, eax
test eax, eax
je 0x14002bb90
cmp byte [rbx + 0x11], 0
je 0x14002bbc1
sub dword [rbx + 0x14], 1
jne 0x14002bbc1
mov rcx, rbx
call fcn.14001d6d0
jmp 0x14002bbc1
dec dword [rbx + 0x1c]
mov rcx, r14
mov byte [r14 + 0x24], 1
call fcn.14001dae0
mov rcx, rbx
call fcn.140021d80
cmp byte [rbx + 0x11], 0
je 0x14002bbbc
sub dword [rbx + 0x14], 1
jne 0x14002bbbc
mov rcx, rbx
call fcn.14001d6d0
mov edi, 0x65
cmp dword [rsp + 0x98], 0
mov r15, qword [rsp + 0x40]
mov r13, qword [rsp + 0x50]
je 0x14002bc43
mov rcx, qword [rsi + 0x28]
xor edx, edx
call fcn.140021cd0
mov rbx, qword [rsi + 0x28]
cmp byte [rbx + 0x10], 0
je 0x14002bc43
cmp byte [rbx + 0x11], 0
je 0x14002bc01
inc dword [rbx + 0x14]
cmp byte [rbx + 0x12], 0
jne 0x14002bc01
mov rcx, rbx
call fcn.14001d730
cmp byte [rbx + 0x10], 2
jne 0x14002bc27
mov r14, qword [rbx + 8]
mov rcx, qword [r14]
call fcn.140019160
test eax, eax
jne 0x14002bc2f
dec dword [rbx + 0x1c]
mov rcx, r14
mov byte [r14 + 0x24], 1
call fcn.14001dae0
mov rcx, rbx
call fcn.140021d80
cmp byte [rbx + 0x11], 0
je 0x14002bc43
sub dword [rbx + 0x14], 1
jne 0x14002bc43
mov rcx, rbx
call fcn.14001d6d0
mov r14, qword [rsp + 0x48]
cmp edi, 0xc0a
mov eax, 7
cmove edi, eax
mov dword [rsi + 0x30], edi
mov rax, qword [rsi]
mov r12, qword [rsp + 0x58]
test rax, rax
je 0x14002bc84
mov rbp, qword [rax + 0x18]
test rbp, rbp
je 0x14002bc84
mov rbx, qword [0x1402808d0]
mov rcx, rbx
call qword [fcn.1400059b0]
mov rcx, rbp
call rbx
mov rcx, qword [rsi + 0x28]
mov rbp, qword [rsp + 0x88]
cmp byte [rcx + 0x11], 0
je 0x14002bca1
sub dword [rcx + 0x14], 1
jne 0x14002bca1
call fcn.14001d6d0
mov rcx, qword [rsi + 0x20]
mov rsi, qword [rcx + 0x18]
test rsi, rsi
je 0x14002bcc3
mov rbx, qword [0x1402808d0]
mov rcx, rbx
call qword [fcn.1400059b0]
mov rcx, rsi
call rbx
mov eax, edi
add rsp, 0x60
pop rdi
pop rsi
pop rbx
ret