Function at 0x78c150
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
xor ebp, ebp
cmp edx, 1
mov rbx, rcx
mov r12d, edx
setne bpl
add ebp, r8d
cmp ebp, dword [rcx + 0x80]
jge 0x78c1a0
movsxd rsi, ebp
mov edi, ebp
imul rsi, rsi, 0x38
mov rax, qword [rbx + 0x78]
add edi, 1
mov rcx, qword [rax + rsi + 0x10]
add rsi, 0x38
call fcn.00741bf0
cmp edi, dword [rbx + 0x80]
jl 0x78c183
cmp r12d, 1
mov dword [rbx + 0x80], ebp
je 0x78c4d2
mov rdi, qword [rbx + 0x128]
test rdi, rdi
je 0x78c430
test ebp, ebp
je 0x78c574
movsxd rbp, ebp
mov rax, qword [rbx + 0x78]
imul rbp, rbp, 0x38
lea rax, [rax + rbp - 0x38]
test rax, rax
mov qword [rsp + 0x38], rax
je 0x78c574
mov r14, qword [rsp + 0x38]
mov ecx, 0x200
mov esi, 7
mov edi, dword [r14 + 0x18]
call fcn.0074b070
test rax, rax
mov rbp, rax
je 0x78c415
mov dword [rax], edi
mov eax, dword [r14 + 0x18]
cmp qword [rbx + 0x128], 0
mov rdi, qword [rbx + 0x60]
mov dword [rbx + 0x20], eax
movzx eax, byte [rbx + 0x10]
mov byte [rbx + 0x17], al
je 0x78c520
mov qword [rbx + 0x60], 0
xor eax, eax
cmp rax, rdi
jge 0x78c39f
lea r14, [rsp + 0x44]
lea r13, [rsp + 0x48]
lea r12, [rbx + 0x60]
nop dword [rax]
xor edx, edx
mov qword [rsp + 0x20], r13
mov r9, r14
mov r8, rdi
mov rcx, rbx
mov dword [rsp + 0x44], 0
call fcn.007519f0
mov esi, eax
mov eax, dword [rsp + 0x44]
test eax, eax
jne 0x78c330
mov rcx, qword [rbx + 0x60]
mov eax, dword [rbx + 0xb8]
add rax, qword [rbx + 0x68]
cmp rax, rcx
je 0x78c4a3
test esi, esi
je 0x78c38a
cmp qword [rsp + 0x38], 0
je 0x78c40d
mov rax, qword [rsp + 0x38]
mov rcx, qword [rbx + 0x128]
mov edx, dword [rax + 0x1c]
mov rax, qword [rbx + 0xc8]
mov r12, rdx
add rax, 4
imul rax, rdx
test rcx, rcx
mov qword [rsp + 0x48], rax
je 0x78c40d
mov rax, qword [rsp + 0x38]
mov edx, dword [rcx + 0x88]
cmp dword [rax + 0x30], edx
je 0x78c5f6
mov rdx, qword [rsp + 0x38]
mov dword [rdx + 0x24], 0
mov eax, dword [rcx + 0x88]
mov dword [rdx + 0x30], eax
xor eax, eax
cmp dword [rcx + 0x58], eax
jbe 0x78c3ce
mov rsi, qword [rsp + 0x38]
mov dword [rcx + 0x58], eax
mov eax, dword [rsi + 0x28]
mov dword [rcx + 0x60], eax
mov eax, dword [rsi + 0x2c]
mov dword [rcx + 0x64], eax
call fcn.0074bb40
mov r12d, dword [rsi + 0x1c]
jmp 0x78c3ce
test esi, esi
jne 0x78c29a
mov rcx, qword [rbx + 0x60]
cmp rdi, rcx
jle 0x78c393
xor r15d, r15d
jmp 0x78c355
cmp rdi, rcx
jle 0x78c393
mov dword [rsp + 0x20], 1
mov r9d, 1
mov r8, rbp
mov rdx, r12
mov rcx, rbx
add r15d, 1
call fcn.0078bda0
test eax, eax
mov esi, eax
jne 0x78c29a
cmp r15d, dword [rsp + 0x44]
mov rcx, qword [rbx + 0x60]
jb 0x78c350
cmp rdi, rcx
jg 0x78c250
cmp qword [rsp + 0x38], 0
je 0x78c490
mov rax, qword [rsp + 0x38]
mov rcx, qword [rbx + 0x128]
mov edx, dword [rax + 0x1c]
mov rax, qword [rbx + 0xc8]
mov r12, rdx
add rax, 4
imul rax, rdx
test rcx, rcx
mov qword [rsp + 0x48], rax
jne 0x78c2d5
cmp r12d, dword [rbx + 0x3c]
jae 0x78c490
lea r13, [rsp + 0x48]
jmp 0x78c3ea
cmp r12d, dword [rbx + 0x3c]
jae 0x78c490
xor r9d, r9d
mov dword [rsp + 0x20], 1
mov r8, rbp
mov rdx, r13
mov rcx, rbx
add r12d, 1
call fcn.0078bda0
test eax, eax
mov esi, eax
je 0x78c3e0
mov rcx, rbp
call fcn.00741bf0
mov eax, esi
add rsp, 0x58
pop rbx
pop rsi
pop rdi
pop rbp
pop r12
pop r13
pop r14
pop r15
ret
mov rax, qword [rbx + 0x50]
cmp qword [rax], 0
je 0x78c49c
test ebp, ebp
je 0x78c45c
movsxd rax, ebp
mov rdx, qword [rbx + 0x78]
imul rax, rax, 0x38
lea rax, [rdx + rax - 0x38]
test rax, rax
mov qword [rsp + 0x38], rax
jne 0x78c1e6
mov qword [rsp + 0x38], 0
mov eax, dword [rbx + 0x24]
xor ebp, ebp
mov rdi, qword [rbx + 0x60]
mov qword [rbx + 0x60], 0
mov dword [rbx + 0x20], eax
movzx eax, byte [rbx + 0x10]
test rdi, rdi
mov byte [rbx + 0x17], al
jg 0x78c23f
nop dword [rax]
mov rcx, rbp
call fcn.00741bf0
mov qword [rbx + 0x60], rdi
xor esi, esi
jmp 0x78c415
mov rdx, qword [rbx + 0xc8]
mov rax, rdi
sub rax, rcx
lea r8, [rdx + 8]
cqo
idiv r8
test esi, esi
mov dword [rsp + 0x44], eax
jne 0x78c29a
test eax, eax
jne 0x78c33c
jmp 0x78c38a
movsxd rdi, ebp
imul rdi, rdi, 0x38
add rdi, qword [rbx + 0x78]
mov esi, dword [rdi + 0x20]
test esi, esi
je 0x78c415
mov rcx, qword [rbx + 0x58]
xor esi, esi
mov rax, qword [rcx]
test rax, rax
je 0x78c415
lea rdx, [0x00b5a860]
mov r8d, dword [rdi + 0x1c]
cmp rax, rdx
je 0x78c6b1
mov dword [rbx + 0x3c], r8d
jmp 0x78c415
mov rax, qword [rsp + 0x38]
lea r13, [rbx + 0x60]
mov r12, qword [rax + 8]
mov rax, qword [rax]
test r12, r12
cmove r12, rdi
mov qword [rbx + 0x60], rax
jmp 0x78c544
mov rax, qword [rbx + 0x60]
cmp r12, rax
jle 0x78c236
mov dword [rsp + 0x20], 1
mov r9d, 1
mov r8, rbp
mov rdx, r13
mov rcx, rbx
call fcn.0078bda0
test eax, eax
mov esi, eax
je 0x78c540
jmp 0x78c2a6
mov eax, dword [rbx + 0x24]
xor esi, esi
mov r13d, 1
mov dword [rbx + 0x20], eax
movzx eax, byte [rbx + 0x10]
mov byte [rbx + 0x17], al
cmp byte [rdi + 0x40], 0
jne 0x78c5fe
mov rax, qword [rbx + 0x120]
mov rcx, qword [rax]
test rcx, rcx
mov rax, rcx
je 0x78c5b1
mov rdx, qword [rax + 0x38]
test rdx, rdx
mov qword [rax + 0x20], rdx
mov rax, rdx
jne 0x78c5a1
call fcn.0073ea60
test rax, rax
je 0x78c415
test r13b, r13b
jne 0x78c5d8
jmp 0x78c415
test esi, esi
jne 0x78c415
mov rdi, qword [rax + 0x20]
mov rcx, rbx
mov edx, dword [rax + 0x30]
call fcn.00764680
test rdi, rdi
mov esi, eax
mov rax, rdi
jne 0x78c5d0
jmp 0x78c415
mov eax, dword [rax + 0x24]
jmp 0x78c300
mov rcx, qword [rdi + 0x30]
mov ebp, dword [rdi + 0x58]
mov rax, qword [rcx]
mov r8, qword [rax]
mov qword [rdi + 0x48], r8
mov r8, qword [rax + 8]
mov qword [rdi + 0x50], r8
mov r8, qword [rax + 0x10]
mov qword [rdi + 0x58], r8
mov r8, qword [rax + 0x18]
mov qword [rdi + 0x60], r8
mov r8, qword [rax + 0x20]
mov qword [rdi + 0x68], r8
mov rax, qword [rax + 0x28]
mov qword [rdi + 0x70], rax
mov eax, dword [rdi + 0x58]
lea r12d, [rax + 1]
cmp ebp, r12d
jae 0x78c689
jmp 0x78c6d3
lea rdx, [r12*4 + 0x84]
cdqe
and edx, 0x3ffc
add rdx, qword [rcx + rax*8]
mov edx, dword [rdx]
mov rcx, rbx
add r12d, 1
call fcn.00764680
test eax, eax
mov esi, eax
sete al
cmp ebp, r12d
mov r13d, eax
jb 0x78c6d0
test al, al
je 0x78c6d0
mov rcx, qword [rdi + 0x30]
lea eax, [r12 + 0x1000]
sub rax, 0xfdf
shr rax, 0xc
test eax, eax
jne 0x78c650
mov rdx, qword [rcx]
mov eax, r12d
lea rax, [rdx + rax*4 + 0x84]
mov edx, dword [rax]
jmp 0x78c666
mov rax, qword [rbx + 0xc8]
lea rdx, [rax + 4]
imul rdx, r8
call fcn.00745290
mov r8d, dword [rdi + 0x1c]
mov esi, eax
jmp 0x78c50e
mov eax, dword [rdi + 0x58]
cmp ebp, eax
je 0x78c58f
mov rcx, rdi
call fcn.0074bb40
jmp 0x78c58f