Function at 0x428970
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, 0xa8
test rdx, rdx
mov rdi, rcx
mov rbx, rdx
mov r14d, r8d
je 0x49feba
mov rax, qword [0x005cfe80]
mov edx, dword [rdx]
mov rcx, qword [rax]
call fcn.004487e0
lea rcx, [rsp + 0x40]
mov r8d, 1
mov rbp, rax
mov edx, eax
mov rsi, rax
call fcn.0042fd80
shr rbp, 0x20
mov r8d, 2
mov r12d, dword [rsp + 0x48]
lea rcx, [rsp + 0x60]
mov edx, ebp
call fcn.0042fd80
mov edx, dword [rbx]
xor r8d, r8d
lea rcx, [rsp + 0x80]
mov r13d, dword [rsp + 0x68]
call fcn.0042fd80
mov rax, qword [rdi + 0x18]
cmp qword [rsp + 0x40], rax
je 0x428a11
xor eax, eax
add rsp, 0xa8
pop rbx
pop rsi
pop rdi
pop rbp
pop r12
pop r13
pop r14
pop r15
ret
cmp rax, qword [rsp + 0x60]
jne 0x4289fb
movzx r15d, byte [rbx + 4]
mov r8d, dword [rsp + 0x88]
test r15b, r15b
jne 0x428b21
cmp r12d, r13d
mov r9d, dword [rsp + 0x8c]
mov r11d, r8d
jle 0x428bf0
mov rax, qword [rdi + 0x78]
test rax, rax
je 0x428c60
mov edx, dword [rax + 4]
test edx, edx
jne 0x4289fb
test r14b, r14b
je 0x428b90
mov dword [rsp + 0x2c], r9d
mov r14d, r8d
mov ebp, r9d
mov esi, r8d
mov rax, qword [rdi + 0x88]
test rax, rax
je 0x4289fb
mov edx, dword [rax + 4]
test edx, edx
jle 0x4289fb
lea rcx, [rax + 8]
sub edx, 1
lea rdx, [rax + rdx*8 + 0x10]
mov rax, rcx
cmp dword [rax], r12d
ja 0x428bb0
cmp dword [rax + 4], r12d
jb 0x428bb0
mov rax, rcx
cmp dword [rax], r13d
ja 0x428bc2
cmp dword [rax + 4], r13d
jb 0x428bc2
cmp byte [rbx + 4], 0
jne 0x428b70
mov rbx, qword [rdi + 0x78]
test rbx, rbx
je 0x428dff
mov eax, dword [rbx]
mov r12d, dword [rbx + 4]
and eax, 0x7fffffff
lea r13d, [r12 + 1]
cmp eax, r12d
mov edx, r13d
je 0x428c82
imul r12, r12, 0x1c
mov edi, dword [rsp + 0x2c]
mov dword [rbx + 4], edx
lea rax, [rbx + r12 + 8]
mov dword [rax], r14d
mov dword [rax + 4], ebp
mov dword [rax + 8], esi
mov dword [rax + 0xc], edi
mov byte [rax + 0x10], r15b
mov dword [rax + 0x14], r8d
mov dword [rax + 0x18], r9d
mov eax, 1
jmp 0x4289fd
cmp rax, qword [rsp + 0x80]
jne 0x4289fb
mov rax, qword [rdi + 0x78]
test rax, rax
je 0x428a2e
mov ecx, dword [rax + 4]
test ecx, ecx
je 0x428bd4
mov edx, dword [rdi + 0x14]
mov dword [rsp + 0x2c], r8d
mov ecx, dword [rbx]
call fcn.004285a0
test al, al
je 0x4289fb
movzx r15d, byte [rbx + 4]
mov r8d, dword [rsp + 0x2c]
jmp 0x428a2e
cmp dword [rcx], r8d
ja 0x428b7f
cmp dword [rcx + 4], r8d
jae 0x428ac6
add rcx, 8
cmp rcx, rdx
jne 0x428b70
jmp 0x4289fb
mov rbx, rax
mov dword [rsp + 0x2c], r9d
mov r14d, r8d
mov ebp, r9d
mov esi, r8d
jmp 0x428ad3
add rax, 8
cmp rax, rdx
jne 0x428a93
jmp 0x4289fb
add rax, 8
cmp rax, rdx
jne 0x428aa9
jmp 0x4289fb
cmp r12d, r13d
mov r9d, dword [rsp + 0x8c]
mov r11d, r8d
jg 0x428a4f
nop dword [rax + rax]
mov eax, dword [rsp + 0x4c]
mov ecx, esi
mov dword [rsp + 0x38], r11d
mov edx, dword [rdi + 0x14]
mov dword [rsp + 0x34], r9d
mov dword [rsp + 0x30], r8d
mov dword [rsp + 0x3c], eax
mov eax, dword [rsp + 0x6c]
mov dword [rsp + 0x2c], eax
call fcn.004285a0
mov r8d, dword [rsp + 0x30]
test al, al
mov r9d, dword [rsp + 0x34]
mov r11d, dword [rsp + 0x38]
je 0x428a42
mov edx, dword [rdi + 0x14]
mov ecx, ebp
call fcn.004285a0
mov r8d, dword [rsp + 0x30]
test al, al
mov r9d, dword [rsp + 0x34]
jne 0x428ddc
mov r11d, dword [rsp + 0x38]
jmp 0x428a42
mov eax, r9d
mov dword [rsp + 0x2c], r9d
mov esi, r8d
test r14b, r14b
mov ebp, r9d
mov r14d, r11d
mov r9d, eax
jne 0x428a6d
jmp 0x428ac6
cmp byte [rbx + 3], 0
js 0x428d10
mov ecx, r12d
mov dword [rsp + 0x34], r9d
mov dword [rsp + 0x30], r8d
call fcn.00422ee0
mov rcx, qword [rdi + 0x78]
mov edx, eax
mov r8d, dword [rsp + 0x30]
imul rdx, rdx, 0x1c
mov r9d, dword [rsp + 0x34]
add rdx, 8
test rcx, rcx
je 0x428def
mov r12d, dword [rcx + 4]
and eax, 0x7fffffff
mov r13d, eax
mov dword [rsp + 0x34], r9d
mov dword [rsp + 0x30], r8d
call fcn.00482910
mov r8d, dword [rsp + 0x30]
mov rbx, rax
mov qword [rdi + 0x78], rax
mov eax, dword [rax]
mov r9d, dword [rsp + 0x34]
mov dword [rbx + 4], r12d
and eax, 0x80000000
or eax, r13d
mov dword [rbx], eax
shr eax, 0x18
and eax, 0x7f
mov byte [rbx + 3], al
lea edx, [r12 + 1]
jmp 0x428aef
cmp r13d, 4
mov r11d, 4
mov dword [rsp + 0x38], r9d
cmovae r11d, r13d
mov qword [rdi + 0x78], 0
xor ecx, ecx
mov dword [rsp + 0x34], r8d
mov edx, r11d
mov dword [rsp + 0x30], r11d
imul rdx, rdx, 0x1c
add rdx, 8
call fcn.00482910
mov r11d, dword [rsp + 0x30]
mov edx, dword [rax]
mov qword [rdi + 0x78], rax
mov r8d, dword [rsp + 0x34]
mov dword [rax + 4], 0
mov r9d, dword [rsp + 0x38]
and r11d, 0x7fffffff
and edx, 0x80000000
or r11d, edx
mov dword [rax], r11d
shr r11d, 0x18
and r11d, 0x7f
test r12d, r12d
mov byte [rax + 3], r11b
je 0x428dcd
lea r11d, [r12 - 1]
mov edx, 8
imul r11, r11, 0x1c
add r11, 0x24
nop dword [rax]
mov rcx, qword [rbx + rdx]
mov qword [rax + rdx], rcx
mov rcx, qword [rbx + rdx + 8]
mov qword [rax + rdx + 8], rcx
mov rcx, qword [rbx + rdx + 0x10]
mov qword [rax + rdx + 0x10], rcx
mov ecx, dword [rbx + rdx + 0x18]
mov dword [rax + rdx + 0x18], ecx
add rdx, 0x1c
cmp r11, rdx
jne 0x428da0
mov dword [rax + 4], r12d
mov edx, r13d
mov rbx, rax
jmp 0x428aef
mov eax, r9d
mov esi, r13d
mov r9d, dword [rsp + 0x3c]
mov r11d, r12d
jmp 0x428c6b
and eax, 0x7fffffff
xor r12d, r12d
mov r13d, eax
jmp 0x428ccb
mov edx, 0x78
xor ecx, ecx
mov dword [rsp + 0x34], r9d
xor r12d, r12d
mov dword [rsp + 0x30], r8d
call fcn.00482910
mov r8d, dword [rsp + 0x30]
mov qword [rdi + 0x78], rax
mov rbx, rax
mov r9d, dword [rsp + 0x34]
mov qword [rax], 4
jmp 0x428d04