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

Disassembly:
mov qword [rsp + 8], rbx
mov qword [rsp + 0x18], r8
push rbp
push rsi
push rdi
push r12
push r13
push r14
push r15
sub rsp, 0x40
xor r13d, r13d
mov ebx, r9d
mov rbp, r8
mov r14, rdx
mov rdi, rcx
test rdx, rdx
jne 0x180029509
cmp byte [rcx], r13b
jne 0x1800294fc
test byte [rcx + 1], 2
je 0x1800294fc
mov rax, qword [rcx + 0x30]
cmp rax, r8
jne 0x1800294af
mov rax, qword [rsp + 0xa0]
mov dword [rax], r13d
xor eax, eax
jmp 0x1800298f1
jge 0x1800294fc
test byte [rcx + 1], 8
je 0x1800294c4
mov rax, qword [rsp + 0xa0]
or dword [rax], 0xffffffff
jmp 0x1800294a8
mov rsi, qword [rsp + 0xa0]
inc rax
cmp rax, r8
jne 0x180029504
xor edx, edx
mov dword [rsi], r13d
call fcn.180029a20
test eax, eax
jne 0x1800294f2
mov rcx, rdi
call fcn.180028b9c
cmp qword [rdi + 0x30], rbp
jne 0x180029504
jmp 0x1800294a8
cmp eax, 0x65
je 0x180029504
jmp 0x1800298f1
mov rsi, qword [rsp + 0xa0]
mov r15, r13
jmp 0x18002956c
mov rcx, qword [rdx]
cmp word [rcx + 8], 0xd
ja 0x180029559
mov rax, qword [rdx + 8]
movzx edx, word [rax + 8]
mov rax, qword [rcx + 0x18]
cmp byte [rax], r13b
je 0x180029532
test byte [rax], 2
jne 0x180029559
mov word [r14 + 0x14], 0xff01
jmp 0x180029539
mov word [r14 + 0x14], 0x1ff
test dl, 4
je 0x180029547
lea r15, [0x1800348a8]
jmp 0x180029560
test dl, 0x39
jne 0x180029559
lea r15, [0x180034a64]
cmp qword [rcx + 0x20], r13
je 0x180029560
lea r15, [0x1800348a0]
mov rsi, qword [rsp + 0xa0]
mov byte [r14 + 0x13], r13b
mov rcx, rdi
call fcn.18002917c
test eax, eax
je 0x180029589
cmp eax, 0x10
jne 0x1800298f1
or dword [rsi], 0xffffffff
jmp 0x1800294a8
mov eax, 1
sub eax, ebx
mov dword [rsp + 0x34], eax
mov rbp, qword [rdi + 0x88]
mov r12d, r13d
mov dword [rsp + 0x88], r13d
mov ecx, eax
movzx r13d, word [rbp + 0x18]
dec r13d
mov esi, r13d
sar esi, cl
mov word [rdi + 0x56], si
test r15, r15
jne 0x1800296c0
mov rbx, qword [rbp + 0x60]
movzx edx, word [rbp + 0x1a]
movsxd rcx, esi
movzx eax, byte [rbx + rcx*2]
shl eax, 8
movsxd r8, eax
movzx eax, byte [rbx + rcx*2 + 1]
or r8, rax
and r8, rdx
add r8, qword [rbp + 0x68]
cmp byte [rbp + 3], 0
je 0x180029604
jmp 0x1800295fb
inc r8
cmp r8, qword [rbp + 0x58]
jae 0x18002986d
cmp byte [r8], 0x80
jae 0x1800295ee
inc r8
mov al, byte [r8]
test al, al
js 0x180029615
movzx eax, al
mov qword [rsp + 0x38], rax
jmp 0x18002962b
lea rdx, [rsp + 0x38]
mov rcx, r8
call fcn.1800196f0
mov rax, qword [rsp + 0x38]
movzx edx, word [rbp + 0x1a]
mov rcx, qword [rsp + 0x90]
cmp rax, rcx
jge 0x18002968d
lea r12d, [rsi + 1]
cmp r12d, r13d
jle 0x180029698
or ebx, 0xffffffff
xor r13d, r13d
cmp byte [rbp + 8], r13b
jne 0x180029890
movzx eax, word [rbp + 0x18]
cmp r12d, eax
jl 0x180029807
movzx eax, byte [rbp + 9]
add eax, 8
movsxd rcx, eax
add rcx, qword [rbp + 0x50]
movzx eax, byte [rcx + 2]
movzx edx, byte [rcx + 1]
shl edx, 8
or edx, eax
movzx eax, byte [rcx + 3]
shl edx, 8
or edx, eax
movzx eax, byte [rcx]
shl eax, 0x18
jmp 0x18002984b
jle 0x1800296aa
lea r13d, [rsi - 1]
cmp r12d, r13d
jg 0x1800296a3
lea esi, [r12 + r13]
sar esi, 1
jmp 0x1800295ca
mov ebx, 1
jmp 0x180029644
xor r13d, r13d
mov word [rdi + 0x56], si
cmp byte [rbp + 8], r13b
jne 0x180029879
mov r12d, esi
jmp 0x180029651
mov rcx, qword [rbp + 0x60]
movsxd rdx, esi
movzx eax, byte [rcx + rdx*2]
shl eax, 8
movsxd r9, eax
movzx eax, byte [rcx + rdx*2 + 1]
or r9, rax
movzx eax, word [rbp + 0x1a]
and r9, rax
movzx eax, byte [rbp + 0xb]
add r9, qword [rbp + 0x68]
movzx ecx, byte [r9]
cmp ecx, eax
jg 0x1800296f6
lea rdx, [r9 + 1]
jmp 0x180029716
test byte [r9 + 1], 0x80
jne 0x180029723
movzx eax, byte [r9 + 1]
and ecx, 0x7f
shl ecx, 7
add ecx, eax
movzx eax, word [rbp + 0xe]
cmp ecx, eax
jg 0x180029723
lea rdx, [r9 + 2]
mov r8, r14
call r15
mov ebx, eax
jmp 0x1800297d2
movzx eax, byte [rbp + 0xa]
lea r8, [rdi + 0x30]
sub r9, rax
mov rcx, rbp
mov rdx, r9
call qword [rbp + Ordinal_133]
mov ebx, dword [rdi + 0x30]
mov dword [rsp + 0x30], ebx
cmp ebx, 2
jl 0x1800298db
mov rcx, qword [rdi + 0x20]
xor edx, edx
mov eax, ebx
div dword [rcx + 0x34]
cmp eax, dword [rcx + 0x3c]
ja 0x1800298db
lea eax, [rbx + 0x12]
movsxd rcx, eax
call fcn.1800162d8
mov r12, rax
test rax, rax
je 0x1800298d1
and dword [rsp + 0x20], 0
mov r9, rax
mov r8d, ebx
mov word [rdi + 0x56], si
xor edx, edx
mov rcx, rdi
call fcn.180028d04
movsxd rcx, dword [rsp + 0x30]
mov ebx, eax
xor eax, eax
mov qword [rcx + r12], rax
mov qword [rcx + r12 + 8], rax
mov word [rcx + r12 + 0x10], ax
and byte [rdi + 1], 0xfb
test ebx, ebx
jne 0x1800298c7
xor r9d, r9d
mov r8, r14
mov rdx, r12
call fcn.180034404
mov rcx, r12
mov ebx, eax
call fcn.1800163bc
mov r12d, dword [rsp + 0x88]
test ebx, ebx
jns 0x1800297e4
lea r12d, [rsi + 1]
mov dword [rsp + 0x88], r12d
jmp 0x1800297f3
xor r13d, r13d
test ebx, ebx
jle 0x1800298a3
lea r13d, [rsi - 1]
cmp r12d, r13d
jg 0x180029644
lea esi, [r12 + r13]
sar esi, 1
jmp 0x1800296c0
mov rcx, qword [rbp + 0x60]
movsxd rdx, r12d
movzx eax, byte [rcx + rdx*2]
shl eax, 8
movsxd r8, eax
movzx eax, byte [rcx + rdx*2 + 1]
or r8, rax
movzx eax, word [rbp + 0x1a]
and r8, rax
add r8, qword [rbp + 0x50]
movzx eax, byte [r8 + 2]
movzx edx, byte [r8 + 1]
shl edx, 8
or edx, eax
movzx eax, byte [r8]
shl eax, 0x18
shl edx, 8
or edx, eax
movzx eax, byte [r8 + 3]
or edx, eax
mov word [rdi + 0x56], r12w
mov rcx, rdi
call fcn.1800290c0
mov ebx, eax
test eax, eax
jne 0x1800298ea
mov eax, dword [rsp + 0x34]
jmp 0x180029594
mov ecx, 0x10d00
call fcn.180081c90
jmp 0x1800298f1
or byte [rdi + 1], 2
mov qword [rdi + 0x30], rax
mov rax, qword [rsp + 0xa0]
mov dword [rax], r13d
xor eax, eax
jmp 0x1800298ec
mov rax, qword [rsp + 0xa0]
mov word [rdi + 0x56], si
mov dword [rax], ebx
mov ebx, r13d
jmp 0x1800298ea
mov rax, qword [rsp + 0xa0]
mov ebx, r13d
mov word [rdi + 0x56], si
mov dword [rax], r13d
cmp byte [r14 + 0x13], r13b
je 0x1800298ea
mov ecx, 0x10d6b
call fcn.180081c90
jmp 0x1800298e8
mov rcx, r12
call fcn.1800163bc
jmp 0x1800298d6
mov ebx, 7
xor r13d, r13d
jmp 0x1800298ea
mov ecx, 0x10d4b
call fcn.180081c90
xor r13d, r13d
mov ebx, eax
mov eax, ebx
mov word [rdi + 0x46], r13w
mov rbx, qword [rsp + 0x80]
add rsp, 0x40
pop r15
pop r14
pop r13
pop r12
pop rdi
pop rsi
pop rbp
ret