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

Disassembly:
mov qword [rsp + 0x10], rbx
mov qword [rsp + 0x18], rbp
mov qword [rsp + 0x20], rsi
push rdi
sub rsp, 0x20
mov eax, dword [rdx]
mov rdi, rdx
mov dword [rcx], eax
mov rbx, rcx
mov eax, dword [rdx + 4]
mov dword [rcx + 4], eax
movsd xmm0, qword [rdx + 8]
movsd qword [rcx + 8], xmm0
mov eax, dword [rdx + 0x10]
mov dword [rcx + 0x10], eax
mov eax, dword [rdx + 0x14]
mov dword [rcx + 0x14], eax
mov rax, qword [rdx + 0x18]
mov qword [rcx + 0x18], rax
mov rax, qword [rdx + 0x20]
mov qword [rcx + 0x20], rax
mov eax, dword [rdx + 0x28]
mov dword [rcx + 0x28], eax
mov eax, dword [rdx + 0x2c]
mov dword [rcx + 0x2c], eax
mov eax, dword [rdx + 0x30]
mov dword [rcx + 0x30], eax
mov eax, dword [rdx + 0x34]
mov dword [rcx + 0x34], eax
mov eax, dword [rdx + 0x38]
mov dword [rcx + 0x38], eax
mov eax, dword [rdx + 0x3c]
mov dword [rcx + 0x3c], eax
mov eax, dword [rdx + 0x40]
mov dword [rcx + 0x40], eax
mov eax, dword [rdx + 0x44]
mov dword [rcx + 0x44], eax
mov eax, dword [rdx + 0x48]
mov dword [rcx + 0x48], eax
mov eax, dword [rdx + 0x4c]
mov dword [rcx + 0x4c], eax
mov eax, dword [rdx + 0x50]
mov dword [rcx + 0x50], eax
mov eax, dword [rdx + 0x54]
mov dword [rcx + 0x54], eax
mov eax, dword [rdx + 0x58]
mov dword [rcx + 0x58], eax
mov eax, dword [rdx + 0x5c]
mov dword [rcx + 0x5c], eax
mov eax, dword [rdx + 0x60]
mov dword [rcx + 0x60], eax
mov eax, dword [rdx + 0x64]
mov dword [rcx + 0x64], eax
mov eax, dword [rdx + 0x68]
mov dword [rcx + 0x68], eax
mov eax, dword [rdx + 0x6c]
mov dword [rcx + 0x6c], eax
mov eax, dword [rdx + 0x70]
mov dword [rcx + 0x70], eax
mov eax, dword [rdx + 0x74]
mov dword [rcx + 0x74], eax
mov eax, dword [rdx + 0x78]
mov dword [rcx + 0x78], eax
mov eax, dword [rdx + 0x7c]
mov dword [rcx + 0x7c], eax
mov eax, dword [rdx + 0x80]
mov dword [rcx + 0x80], eax
mov eax, dword [rdx + 0x84]
mov dword [rcx + 0x84], eax
mov eax, dword [rdx + 0x88]
mov dword [rcx + 0x88], eax
mov eax, dword [rdx + 0x8c]
mov dword [rcx + 0x8c], eax
mov rax, qword [rdx + 0x90]
mov qword [rcx + 0x90], rax
mov rax, qword [rdx + 0x98]
mov qword [rcx + 0x98], rax
mov eax, dword [rdx + 0xa0]
mov dword [rcx + 0xa0], eax
movzx eax, byte [rdx + 0xa4]
mov byte [rcx + 0xa4], al
mov rax, qword [rdx + 0xa8]
mov qword [rcx + 0xa8], rax
movsd xmm0, qword [rdx + 0xb0]
movsd qword [rcx + 0xb0], xmm0
movzx eax, byte [rdx + 0xb8]
mov byte [rcx + 0xb8], al
mov r8d, 0x100
movzx eax, byte [rdx + 0xb9]
mov byte [rcx + 0xb9], al
movzx eax, byte [rdx + 0xba]
mov byte [rcx + 0xba], al
movzx eax, byte [rdx + 0xbb]
mov byte [rcx + 0xbb], al
movzx eax, byte [rdx + 0xbc]
mov byte [rcx + 0xbc], al
mov rax, qword [rdx + 0xc0]
mov qword [rcx + 0xc0], rax
mov rax, qword [rdx + 0xc8]
mov qword [rcx + 0xc8], rax
mov rax, qword [rdx + 0xd0]
mov qword [rcx + 0xd0], rax
mov rax, qword [rdx + 0xd8]
mov qword [rcx + 0xd8], rax
mov rax, qword [rdx + 0xe0]
mov qword [rcx + 0xe0], rax
mov rax, qword [rdx + 0xe8]
mov qword [rcx + 0xe8], rax
mov rax, qword [rdx + 0xf0]
mov qword [rcx + 0xf0], rax
mov rax, qword [rdx + 0xf8]
mov qword [rcx + 0xf8], rax
mov rax, qword [rdx + 0x100]
mov qword [rcx + 0x100], rax
mov rax, qword [rdx + 0x108]
mov qword [rcx + 0x108], rax
mov rax, qword [rdx + 0x110]
mov qword [rcx + 0x110], rax
movsd xmm0, qword [rdx + 0x118]
movsd qword [rcx + 0x118], xmm0
movzx eax, byte [rdx + 0x120]
mov byte [rcx + 0x120], al
movzx eax, byte [rdx + 0x121]
mov byte [rcx + 0x121], al
movzx eax, byte [rdx + 0x122]
mov byte [rcx + 0x122], al
movzx eax, byte [rdx + 0x123]
mov byte [rcx + 0x123], al
movzx eax, byte [rdx + 0x124]
mov byte [rcx + 0x124], al
mov eax, dword [rdx + 0x128]
mov dword [rcx + 0x128], eax
mov eax, dword [rdx + 0x12c]
mov dword [rcx + 0x12c], eax
movzx eax, byte [rdx + 0x130]
mov byte [rcx + 0x130], al
movzx eax, byte [rdx + 0x131]
mov byte [rcx + 0x131], al
movzx eax, byte [rdx + 0x132]
mov byte [rcx + 0x132], al
movzx eax, byte [rdx + 0x133]
lea rdx, [rcx + 0x134]
mov byte [rcx + 0x133], al
mov rcx, rdi
sub rcx, rbx
nop dword [rax]
movzx eax, byte [rcx + rdx]
mov byte [rdx], al
movzx eax, byte [rcx + rdx + 1]
mov byte [rdx + 1], al
lea rdx, [rdx + 2]
sub r8, 1
jne 0x18007a530
mov eax, dword [rdi + 0x334]
mov dword [rbx + 0x334], eax
mov eax, dword [rdi + 0x338]
mov dword [rbx + 0x338], eax
mov eax, dword [rdi + 0x33c]
mov dword [rbx + 0x33c], eax
mov eax, dword [rdi + 0x340]
mov dword [rbx + 0x340], eax
mov eax, dword [rdi + 0x344]
mov dword [rbx + 0x344], eax
mov eax, dword [rdi + 0x348]
mov dword [rbx + 0x348], eax
mov eax, dword [rdi + 0x34c]
mov dword [rbx + 0x34c], eax
mov eax, dword [rdi + 0x350]
mov dword [rbx + 0x350], eax
mov eax, dword [rdi + 0x354]
mov dword [rbx + 0x354], eax
mov eax, dword [rdi + 0x358]
mov dword [rbx + 0x358], eax
mov eax, dword [rdi + 0x35c]
mov dword [rbx + 0x35c], eax
mov eax, dword [rdi + 0x360]
mov dword [rbx + 0x360], eax
mov eax, dword [rdi + 0x364]
mov dword [rbx + 0x364], eax
mov eax, dword [rdi + 0x368]
mov dword [rbx + 0x368], eax
mov eax, dword [rdi + 0x36c]
mov dword [rbx + 0x36c], eax
mov eax, dword [rdi + 0x370]
mov dword [rbx + 0x370], eax
mov eax, dword [rdi + 0x374]
mov dword [rbx + 0x374], eax
mov eax, dword [rdi + 0x378]
mov dword [rbx + 0x378], eax
mov eax, dword [rdi + 0x37c]
mov dword [rbx + 0x37c], eax
mov eax, dword [rdi + 0x380]
mov dword [rbx + 0x380], eax
mov eax, dword [rdi + 0x384]
mov dword [rbx + 0x384], eax
mov eax, dword [rdi + 0x388]
mov dword [rbx + 0x388], eax
movzx eax, byte [rdi + 0x38c]
mov byte [rbx + 0x38c], al
movzx eax, byte [rdi + 0x38d]
mov byte [rbx + 0x38d], al
movzx eax, byte [rdi + 0x38e]
mov byte [rbx + 0x38e], al
movzx eax, byte [rdi + 0x38f]
mov byte [rbx + 0x38f], al
movzx eax, byte [rdi + 0x390]
mov byte [rbx + 0x390], al
movzx eax, byte [rdi + 0x391]
mov byte [rbx + 0x391], al
movzx eax, byte [rdi + 0x392]
mov byte [rbx + 0x392], al
mov eax, dword [rdi + 0x394]
mov dword [rbx + 0x394], eax
mov eax, dword [rdi + 0x398]
mov dword [rbx + 0x398], eax
mov eax, dword [rdi + 0x39c]
mov dword [rbx + 0x39c], eax
mov eax, dword [rdi + 0x3a0]
mov dword [rbx + 0x3a0], eax
mov eax, dword [rdi + 0x3a4]
mov dword [rbx + 0x3a4], eax
mov eax, dword [rdi + 0x3a8]
mov dword [rbx + 0x3a8], eax
movsd xmm0, qword [rdi + 0x3ac]
movsd qword [rbx + 0x3ac], xmm0
movsd xmm1, qword [rdi + 0x3b4]
movsd qword [rbx + 0x3b4], xmm1
movsd xmm0, qword [rdi + 0x3bc]
movsd qword [rbx + 0x3bc], xmm0
movsd xmm1, qword [rdi + 0x3c4]
movsd qword [rbx + 0x3c4], xmm1
movsd xmm0, qword [rdi + 0x3cc]
movsd qword [rbx + 0x3cc], xmm0
movsd xmm1, qword [rdi + 0x3d4]
movsd qword [rbx + 0x3d4], xmm1
movsd xmm0, qword [rdi + 0x3dc]
movsd qword [rbx + 0x3dc], xmm0
mov rax, qword [rdi + 0x3e8]
mov qword [rbx + 0x3e8], rax
mov rax, qword [rdi + 0x3f0]
mov qword [rbx + 0x3f0], rax
mov rax, qword [rdi + 0x3f8]
mov qword [rbx + 0x3f8], rax
mov rax, qword [rdi + 0x400]
mov qword [rbx + 0x400], rax
mov rax, qword [rdi + 0x408]
mov qword [rbx + 0x408], rax
movzx eax, byte [rdi + 0x410]
mov byte [rbx + 0x410], al
movzx eax, byte [rdi + 0x411]
mov byte [rbx + 0x411], al
movzx eax, byte [rdi + 0x412]
mov byte [rbx + 0x412], al
movzx eax, byte [rdi + 0x413]
mov byte [rbx + 0x413], al
movzx eax, byte [rdi + 0x414]
mov byte [rbx + 0x414], al
movzx eax, byte [rdi + 0x415]
mov byte [rbx + 0x415], al
movzx eax, byte [rdi + 0x416]
mov byte [rbx + 0x416], al
movzx eax, byte [rdi + 0x417]
mov byte [rbx + 0x417], al
movzx eax, byte [rdi + 0x418]
mov byte [rbx + 0x418], al
movzx eax, byte [rdi + 0x419]
mov byte [rbx + 0x419], al
movzx eax, byte [rdi + 0x41a]
mov byte [rbx + 0x41a], al
movzx eax, byte [rdi + 0x41b]
mov byte [rbx + 0x41b], al
movzx eax, byte [rdi + 0x41c]
mov byte [rbx + 0x41c], al
movzx eax, byte [rdi + 0x41d]
mov byte [rbx + 0x41d], al
movzx eax, byte [rdi + 0x41e]
mov byte [rbx + 0x41e], al
movzx eax, byte [rdi + 0x41f]
mov byte [rbx + 0x41f], al
movzx eax, byte [rdi + 0x420]
mov byte [rbx + 0x420], al
movzx eax, byte [rdi + 0x421]
mov byte [rbx + 0x421], al
movzx eax, byte [rdi + 0x422]
mov byte [rbx + 0x422], al
movzx eax, byte [rdi + 0x423]
mov byte [rbx + 0x423], al
movzx eax, byte [rdi + 0x424]
mov byte [rbx + 0x424], al
movzx eax, byte [rdi + 0x425]
mov byte [rbx + 0x425], al
movzx eax, byte [rdi + 0x426]
mov byte [rbx + 0x426], al
movzx eax, byte [rdi + 0x427]
mov byte [rbx + 0x427], al
movzx eax, byte [rdi + 0x428]
mov byte [rbx + 0x428], al
mov eax, dword [rdi + 0x42c]
mov dword [rbx + 0x42c], eax
mov eax, dword [rdi + 0x430]
mov dword [rbx + 0x430], eax
mov eax, dword [rdi + 0x434]
mov dword [rbx + 0x434], eax
mov eax, dword [rdi + 0x438]
mov dword [rbx + 0x438], eax
mov eax, dword [rdi + 0x43c]
mov dword [rbx + 0x43c], eax
mov eax, dword [rdi + 0x440]
mov dword [rbx + 0x440], eax
mov eax, dword [rdi + 0x444]
mov dword [rbx + 0x444], eax
mov eax, dword [rdi + 0x448]
mov dword [rbx + 0x448], eax
mov eax, dword [rdi + 0x44c]
mov dword [rbx + 0x44c], eax
mov eax, dword [rdi + 0x450]
lea rdx, [rbx + 0x490]
mov dword [rbx + 0x450], eax
mov r9d, 0x40
movsd xmm0, qword [rdi + 0x454]
mov r8d, r9d
movsd qword [rbx + 0x454], xmm0
movsd xmm1, qword [rdi + 0x45c]
movsd qword [rbx + 0x45c], xmm1
movsd xmm0, qword [rdi + 0x464]
movsd qword [rbx + 0x464], xmm0
movsd xmm1, qword [rdi + 0x46c]
movsd qword [rbx + 0x46c], xmm1
movsd xmm0, qword [rdi + 0x474]
movsd qword [rbx + 0x474], xmm0
mov eax, dword [rdi + 0x47c]
mov dword [rbx + 0x47c], eax
mov eax, dword [rdi + 0x480]
mov dword [rbx + 0x480], eax
mov eax, dword [rdi + 0x484]
mov dword [rbx + 0x484], eax
mov eax, dword [rdi + 0x488]
mov dword [rbx + 0x488], eax
mov eax, dword [rdi + 0x48c]
mov dword [rbx + 0x48c], eax
nop dword [rax]
nop word [rax + rax]
mov eax, dword [rdx + rcx]
mov dword [rdx], eax
mov eax, dword [rcx + rdx + 4]
mov dword [rdx + 4], eax
mov eax, dword [rcx + rdx + 8]
mov dword [rdx + 8], eax
mov eax, dword [rcx + rdx + 0xc]
mov dword [rdx + 0xc], eax
mov eax, dword [rcx + rdx + 0x10]
mov dword [rdx + 0x10], eax
mov eax, dword [rcx + rdx + 0x14]
mov dword [rdx + 0x14], eax
mov eax, dword [rcx + rdx + 0x18]
mov dword [rdx + 0x18], eax
mov eax, dword [rcx + rdx + 0x1c]
mov dword [rdx + 0x1c], eax
lea rdx, [rdx + 0x20]
sub r8, 1
jne 0x18007aa10
lea rdx, [rbx + 0xc90]
nop word [rax + rax]
mov eax, dword [rdx + rcx]
mov dword [rdx], eax
mov eax, dword [rdx + rcx + 4]
mov dword [rdx + 4], eax
mov eax, dword [rdx + rcx + 8]
mov dword [rdx + 8], eax
mov eax, dword [rdx + rcx + 0xc]
mov dword [rdx + 0xc], eax
mov eax, dword [rdx + rcx + 0x10]
mov dword [rdx + 0x10], eax
mov eax, dword [rdx + rcx + 0x14]
mov dword [rdx + 0x14], eax
mov eax, dword [rdx + rcx + 0x18]
mov dword [rdx + 0x18], eax
mov eax, dword [rdx + rcx + 0x1c]
mov dword [rdx + 0x1c], eax
lea rdx, [rdx + 0x20]
sub r9, 1
jne 0x18007aa60
mov eax, dword [rdi + 0x1490]
mov dword [rbx + 0x1490], eax
mov eax, dword [rdi + 0x1494]
mov dword [rbx + 0x1494], eax
mov eax, dword [rdi + 0x1498]
mov dword [rbx + 0x1498], eax
mov eax, dword [rdi + 0x149c]
mov dword [rbx + 0x149c], eax
mov eax, dword [rdi + 0x14a0]
mov dword [rbx + 0x14a0], eax
mov eax, dword [rdi + 0x14a4]
mov dword [rbx + 0x14a4], eax
mov eax, dword [rdi + 0x14a8]
mov dword [rbx + 0x14a8], eax
mov eax, dword [rdi + 0x14ac]
mov dword [rbx + 0x14ac], eax
mov eax, dword [rdi + 0x14b0]
mov dword [rbx + 0x14b0], eax
mov eax, dword [rdi + 0x14b4]
mov dword [rbx + 0x14b4], eax
mov eax, dword [rdi + 0x14b8]
mov dword [rbx + 0x14b8], eax
mov eax, dword [rdi + 0x14bc]
mov dword [rbx + 0x14bc], eax
mov eax, dword [rdi + 0x14c0]
mov dword [rbx + 0x14c0], eax
mov eax, dword [rdi + 0x14c4]
mov dword [rbx + 0x14c4], eax
mov eax, dword [rdi + 0x14c8]
mov dword [rbx + 0x14c8], eax
mov eax, dword [rdi + 0x14cc]
mov dword [rbx + 0x14cc], eax
mov eax, dword [rdi + 0x14d0]
mov dword [rbx + 0x14d0], eax
mov eax, dword [rdi + 0x14d4]
mov dword [rbx + 0x14d4], eax
mov eax, dword [rdi + 0x14d8]
mov dword [rbx + 0x14d8], eax
mov eax, dword [rdi + 0x14dc]
mov dword [rbx + 0x14dc], eax
mov eax, dword [rdi + 0x14e0]
mov dword [rbx + 0x14e0], eax
mov eax, dword [rdi + 0x14e4]
mov dword [rbx + 0x14e4], eax
mov eax, dword [rdi + 0x14e8]
mov dword [rbx + 0x14e8], eax
mov eax, dword [rdi + 0x14ec]
mov dword [rbx + 0x14ec], eax
mov eax, dword [rdi + 0x14f0]
mov dword [rbx + 0x14f0], eax
mov eax, dword [rdi + 0x14f4]
mov dword [rbx + 0x14f4], eax
mov eax, dword [rdi + 0x14f8]
mov dword [rbx + 0x14f8], eax
mov eax, dword [rdi + 0x14fc]
mov dword [rbx + 0x14fc], eax
mov eax, dword [rdi + 0x1500]
mov dword [rbx + 0x1500], eax
mov eax, dword [rdi + 0x1504]
mov dword [rbx + 0x1504], eax
mov eax, dword [rdi + 0x1508]
mov dword [rbx + 0x1508], eax
mov eax, dword [rdi + 0x150c]
mov dword [rbx + 0x150c], eax
mov eax, dword [rdi + 0x1510]
mov dword [rbx + 0x1510], eax
mov eax, dword [rdi + 0x1514]
mov dword [rbx + 0x1514], eax
mov eax, dword [rdi + 0x1518]
mov dword [rbx + 0x1518], eax
mov eax, dword [rdi + 0x151c]
mov dword [rbx + 0x151c], eax
mov eax, dword [rdi + 0x1520]
mov dword [rbx + 0x1520], eax
mov eax, dword [rdi + 0x1524]
mov dword [rbx + 0x1524], eax
mov eax, dword [rdi + 0x1528]
mov dword [rbx + 0x1528], eax
mov eax, dword [rdi + 0x152c]
mov dword [rbx + 0x152c], eax
mov eax, dword [rdi + 0x1530]
mov dword [rbx + 0x1530], eax
mov eax, dword [rdi + 0x1534]
mov dword [rbx + 0x1534], eax
mov eax, dword [rdi + 0x1538]
mov dword [rbx + 0x1538], eax
mov eax, dword [rdi + 0x153c]
mov dword [rbx + 0x153c], eax
mov rsi, qword [rbx + 0x1548]
test rsi, rsi
je 0x18007acd6
xor ebp, ebp
mov rcx, rsi
mov qword [rbx + 0x1540], rbp
call fcn.180047680
mov qword [rbx + 0x1548], rbp
mov esi, ebp
movsxd rbp, dword [rdi + 0x1540]
mov ecx, dword [rbx + 0x1544]
cmp ebp, ecx
jle 0x18007ad59
mov qword [rsp + 0x30], r14
test ecx, ecx
je 0x18007acfb
mov eax, ecx
cdq
sub eax, edx
sar eax, 1
add eax, ecx
jmp 0x18007ad00
mov eax, 8
cmp eax, ebp
mov r14d, ebp
cmovg r14d, eax
cmp r14d, ecx
jle 0x18007ad54
movsxd rcx, r14d
add rcx, rcx
call fcn.180047660
mov rdx, qword [rbx + 0x1548]
mov rsi, rax
test rdx, rdx
je 0x18007ad46
movsxd r8, dword [rbx + 0x1540]
mov rcx, rax
add r8, r8
call sub.VCRUNTIME140.dll_memcpy
mov rcx, qword [rbx + 0x1548]
call fcn.180047680
mov qword [rbx + 0x1548], rsi
mov dword [rbx + 0x1544], r14d
mov r14, qword [rsp + 0x30]
mov dword [rbx + 0x1540], ebp
mov r8, rbp
mov rdx, qword [rdi + 0x1548]
add r8, r8
mov rcx, rsi
call sub.VCRUNTIME140.dll_memcpy
mov rbp, qword [rsp + 0x40]
mov rax, rbx
mov rbx, qword [rsp + 0x38]
mov rsi, qword [rsp + 0x48]
add rsp, 0x20
pop rdi
ret