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

Disassembly:
push r15
push r14
push r13
push r12
push rbp
push rdi
push rsi
push rbx
sub rsp, 0x58
mov rax, qword [rdx + 0x148]
mov r14d, dword [rdx + 0x34]
mov r12d, dword [rdx + 0x38]
mov r15, qword [rcx]
movzx r9d, word [rdx + 0x130]
add r12d, r14d
mov qword [rcx + 0xb0], rax
mov eax, dword [rdx + 0x90]
mov rbx, rcx
mov rdi, rdx
mov qword [rdx + 0x148], 0
mov dword [rsp + 0x4c], eax
test r14d, r14d
jne 0x812190
test r12d, r12d
setg al
cmp al, 1
sbb r12d, 0xffffffff
mov eax, dword [rbx + 0x90]
mov esi, dword [rdi + 0x3c]
lea rdx, [rsp + 0x4c]
mov dword [rsp + 0x28], r9d
lea eax, [rax + rax*2]
shl eax, 3
movsxd rcx, eax
add rcx, qword [rbx + 0x88]
sub esi, eax
mov r13, rcx
mov rcx, rbx
and esi, 0xfffffff8
call fcn.00777c40
xor eax, eax
cmp byte [rdi + 0x20], 0
mov r9d, dword [rsp + 0x28]
movsxd rsi, esi
je 0x8121da
cmp byte [rdi + 0x21], 0
setne al
shl eax, 5
mov edx, eax
movzx eax, byte [rbx + 0xc8]
and eax, 0xffffffdf
or eax, edx
mov byte [rbx + 0xc8], al
movzx edx, byte [rdi + 0x133]
test dl, dl
je 0x81222d
cmp r12d, 0xa
mov ecx, 0xa
cmovl r12d, ecx
and edx, 3
and eax, 0xfffffff3
lea ecx, [rdx*4]
not edx
and edx, 3
or eax, ecx
shl edx, 2
mov byte [rbx + 0xc8], al
mov word [rbx + 0xc0], dx
movsxd rax, r12d
and byte [rbx + 0xc8], 0xfc
lea rbp, [rax*8]
sub rbp, rax
shl rbp, 3
cmp rsi, rbp
jl 0x812490
sub rsi, rbp
xor edx, edx
lea r10, [r13 + rsi]
movsx rax, r9w
mov qword [rbx + 0x68], r10
lea rdi, [rax*8]
sub rdi, rax
shl rdi, 3
cmp rdi, rsi
jg 0x812480
sub rsi, rdi
lea r11, [r13 + rsi]
movsxd rax, dword [rsp + 0x4c]
mov qword [rbx + 0x80], r11
shl rax, 3
cmp rax, rsi
jg 0x812470
sub rsi, rax
lea rax, [r13 + rsi]
movsxd r8, r14d
mov qword [rbx + 0x70], rax
shl r8, 3
cmp r8, rsi
jg 0x812460
sub rsi, r8
lea rcx, [r13 + rsi]
mov qword [rbx + 0x78], rcx
test rdx, rdx
jne 0x812330
cmp byte [r15 + 0x67], 0
je 0x8123b7
xor r10d, r10d
mov qword [rbx + 0x24], 0
mov word [rbx + 0x20], r10w
mov eax, 0xffffff02
mov byte [rbx + 0xc7], 1
mov word [rbx + 0xc4], ax
movabs rax, 0xffffffff00000001
mov qword [rbx + 0x2c], rax
mov qword [rbx + 0x34], 0
mov qword [rbx + 0x3c], 0
mov qword [rbx + 0x50], 0
add rsp, 0x58
pop rbx
pop rsi
pop rdi
pop rbp
pop r12
pop r13
pop r14
pop r15
ret
mov rcx, r15
mov qword [rsp + 0x38], r8
mov dword [rsp + 0x34], r9d
mov qword [rsp + 0x28], rdx
call fcn.007ae070
mov rdx, qword [rsp + 0x28]
mov r9d, dword [rsp + 0x34]
mov qword [rbx + 0x100], rax
cmp byte [r15 + 0x67], 0
mov r8, qword [rsp + 0x38]
jne 0x8122d2
mov r10, qword [rbx + 0x68]
test r10, r10
je 0x8124a0
mov r11, qword [rbx + 0x80]
mov qword [rbx + 0x68], r10
test r11, r11
je 0x8124f0
mov rcx, qword [rbx + 0x70]
movsxd rsi, dword [rsp + 0x4c]
mov qword [rbx + 0x80], r11
test rcx, rcx
je 0x8124d0
mov qword [rbx + 0x70], rcx
mov rcx, qword [rbx + 0x78]
test rcx, rcx
je 0x8124b8
mov qword [rbx + 0x78], rcx
mov dword [rbx + 0x28], r14d
mov word [rbx + 0x20], r9w
test r9w, r9w
jle 0x812408
movsx r9d, r9w
lea eax, [r9 - 1]
add rax, 1
lea rdx, [rax*8]
sub rdx, rax
lea rax, [r11 + rdx*8]
nop dword [rax]
mov r9d, 1
mov qword [r11 + 0x18], r15
add r11, 0x38
mov word [r11 - 0x24], r9w
mov dword [r11 - 0x18], 0
cmp r11, rax
jne 0x8123e8
mov dword [rbx + 0x24], r12d
test r12d, r12d
jle 0x81244c
lea eax, [r12 - 1]
add rax, 1
lea rdx, [rax*8]
sub rdx, rax
lea rax, [r10 + rdx*8]
nop dword [rax]
xor edx, edx
mov qword [r10 + 0x18], r15
add r10, 0x38
mov word [r10 - 0x24], dx
mov dword [r10 - 0x18], 0
cmp r10, rax
jne 0x812430
xor edx, edx
call sub.msvcrt.dll_memset
jmp 0x8122e2
add rdx, r8
xor ecx, ecx
jmp 0x8122be
add rdx, rax
xor eax, eax
jmp 0x8122a2
add rdx, rdi
xor r11d, r11d
jmp 0x812281
mov rdx, rbp
xor r10d, r10d
jmp 0x812259
cmp rbp, rdx
jg 0x812375
sub rdx, rbp
lea r10, [rax + rdx]
jmp 0x812375
mov rsi, rdx
sub rsi, r8
add rax, rsi
cmp r8, rdx
cmovle rcx, rax
jmp 0x8123b3
shl rsi, 3
cmp rsi, rdx
jg 0x8123a2
sub rdx, rsi
lea rcx, [rax + rdx]
jmp 0x8123a2
cmp rdi, rdx
jg 0x812389
sub rdx, rdi
lea r11, [rax + rdx]
jmp 0x812389