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

Disassembly:
mov qword [rsp + 8], rbx
mov qword [rsp + 0x10], rbp
mov qword [rsp + 0x18], rsi
mov qword [rsp + 0x20], rdi
push r12
push r14
push r15
sub rsp, 0x20
movzx eax, byte [rdx]
mov rbx, rdx
mov byte [rcx], al
mov rdi, rcx
mov eax, dword [rdx + 4]
mov dword [rcx + 4], eax
movzx eax, byte [rdx + 8]
mov byte [rcx + 8], al
movzx eax, byte [rdx + 9]
mov byte [rcx + 9], al
mov eax, dword [rdx + 0xa]
mov dword [rcx + 0xa], eax
movzx eax, word [rdx + 0xe]
mov word [rcx + 0xe], ax
mov eax, dword [rdx + 0x10]
mov dword [rcx + 0x10], eax
movzx eax, word [rdx + 0x14]
mov word [rcx + 0x14], ax
mov eax, dword [rdx + 0x16]
mov dword [rcx + 0x16], eax
movzx eax, word [rdx + 0x1a]
mov word [rcx + 0x1a], ax
mov eax, dword [rdx + 0x1c]
mov dword [rcx + 0x1c], eax
movzx eax, word [rdx + 0x20]
mov word [rcx + 0x20], ax
mov eax, dword [rdx + 0x22]
mov dword [rcx + 0x22], eax
movzx eax, byte [rdx + 0x26]
mov byte [rcx + 0x26], al
movzx eax, byte [rdx + 0x27]
mov byte [rcx + 0x27], al
mov rax, qword [rdx + 0x28]
mov qword [rcx + 0x28], rax
movzx eax, byte [rdx + 0x30]
mov byte [rcx + 0x30], al
movzx eax, byte [rdx + 0x31]
mov byte [rcx + 0x31], al
movzx eax, byte [rdx + 0x32]
mov byte [rcx + 0x32], al
movzx eax, byte [rdx + 0x33]
mov byte [rcx + 0x33], al
movzx eax, byte [rdx + 0x34]
mov byte [rcx + 0x34], al
movzx eax, byte [rdx + 0x35]
mov byte [rcx + 0x35], al
movzx eax, byte [rdx + 0x36]
mov byte [rcx + 0x36], al
movzx eax, byte [rdx + 0x37]
mov byte [rcx + 0x37], al
movzx eax, byte [rdx + 0x38]
mov byte [rcx + 0x38], al
movzx eax, byte [rdx + 0x39]
mov byte [rcx + 0x39], al
movzx eax, byte [rdx + 0x3a]
mov byte [rcx + 0x3a], al
movzx eax, byte [rdx + 0x3b]
mov byte [rcx + 0x3b], al
movzx eax, byte [rdx + 0x3c]
mov byte [rcx + 0x3c], al
movzx eax, byte [rdx + 0x3d]
mov byte [rcx + 0x3d], al
movzx eax, byte [rdx + 0x3e]
add rdx, 0x40
mov byte [rcx + 0x3e], al
add rcx, 0x40
call fcn.140076920
movzx eax, byte [rbx + 0x58]
mov byte [rdi + 0x58], al
movzx eax, byte [rbx + 0x59]
mov byte [rdi + 0x59], al
movzx eax, byte [rbx + 0x5a]
mov byte [rdi + 0x5a], al
mov rax, qword [rbx + 0x5c]
mov qword [rdi + 0x5c], rax
movups xmm0, xmmword [rbx + 0x64]
movups xmmword [rdi + 0x64], xmm0
movzx eax, word [rbx + 0x74]
mov word [rdi + 0x74], ax
movzx eax, byte [rbx + 0x76]
mov byte [rdi + 0x76], al
movzx eax, byte [rbx + 0x77]
lea rdx, [rbx + 0x88]
mov byte [rdi + 0x77], al
lea rcx, [rdi + 0x88]
movzx eax, byte [rbx + 0x78]
mov byte [rdi + 0x78], al
movzx eax, byte [rbx + 0x79]
mov byte [rdi + 0x79], al
movzx eax, byte [rbx + 0x7a]
mov byte [rdi + 0x7a], al
movzx eax, byte [rbx + 0x7b]
mov byte [rdi + 0x7b], al
movzx eax, byte [rbx + 0x7c]
mov byte [rdi + 0x7c], al
movzx eax, byte [rbx + 0x7d]
mov byte [rdi + 0x7d], al
movzx eax, byte [rbx + 0x7e]
mov byte [rdi + 0x7e], al
movzx eax, byte [rbx + 0x7f]
mov byte [rdi + 0x7f], al
movzx eax, byte [rbx + 0x80]
mov byte [rdi + 0x80], al
mov eax, dword [rbx + 0x84]
mov dword [rdi + 0x84], eax
call fcn.1400079b0
movzx eax, byte [rbx + 0xa8]
lea rdx, [rbx + 0xc0]
mov byte [rdi + 0xa8], al
lea rcx, [rdi + 0xc0]
movzx eax, byte [rbx + 0xa9]
mov byte [rdi + 0xa9], al
mov eax, dword [rbx + 0xac]
mov dword [rdi + 0xac], eax
mov eax, dword [rbx + 0xb0]
mov dword [rdi + 0xb0], eax
movzx eax, byte [rbx + 0xb4]
mov byte [rdi + 0xb4], al
movzx eax, byte [rbx + 0xb5]
mov byte [rdi + 0xb5], al
movzx eax, byte [rbx + 0xb6]
mov byte [rdi + 0xb6], al
movzx eax, byte [rbx + 0xb7]
mov byte [rdi + 0xb7], al
movzx eax, byte [rbx + 0xb8]
mov byte [rdi + 0xb8], al
movzx eax, byte [rbx + 0xb9]
mov byte [rdi + 0xb9], al
movzx eax, byte [rbx + 0xba]
mov byte [rdi + 0xba], al
call fcn.140076920
mov eax, dword [rbx + 0xd8]
lea r15, [rdi + 0xe0]
mov dword [rdi + 0xd8], eax
xor r12d, r12d
mov qword [r15], r12
movabs rax, 0x2aaaaaaaaaaaaaab
mov qword [r15 + 8], r12
mov qword [r15 + 0x10], r12
mov rcx, qword [rbx + 0xe8]
sub rcx, qword [rbx + 0xe0]
imul rcx
sar rdx, 3
mov rax, rdx
shr rax, 0x3f
add rdx, rax
je 0x140091812
movabs rax, 0x555555555555555
cmp rdx, rax
ja 0x140091e76
mov rcx, r15
call fcn.140095800
mov r14, qword [rbx + 0xe8]
mov rsi, qword [rbx + 0xe0]
mov rbp, qword [r15]
cmp rsi, r14
je 0x14009180e
mov rdx, rsi
mov rcx, rbp
call fcn.1400079b0
mov eax, dword [rsi + 0x20]
mov dword [rbp + 0x20], eax
mov eax, dword [rsi + 0x24]
mov dword [rbp + 0x24], eax
movzx eax, byte [rsi + 0x28]
add rsi, 0x30
mov byte [rbp + 0x28], al
add rbp, 0x30
cmp rsi, r14
jne 0x1400917e3
mov qword [r15 + 8], rbp
lea rdx, [rbx + 0xf8]
lea rcx, [rdi + 0xf8]
call fcn.1400079b0
lea rdx, [rbx + 0x118]
lea rcx, [rdi + 0x118]
call fcn.1400079b0
lea rdx, [rbx + 0x138]
lea rcx, [rdi + 0x138]
call fcn.140076920
movzx eax, byte [rbx + 0x150]
lea rdx, [rbx + 0x168]
mov byte [rdi + 0x150], al
lea rcx, [rdi + 0x168]
movzx eax, byte [rbx + 0x151]
mov byte [rdi + 0x151], al
movzx eax, byte [rbx + 0x152]
mov byte [rdi + 0x152], al
movzx eax, byte [rbx + 0x153]
mov byte [rdi + 0x153], al
movzx eax, byte [rbx + 0x154]
mov byte [rdi + 0x154], al
movzx eax, byte [rbx + 0x155]
mov byte [rdi + 0x155], al
movzx eax, byte [rbx + 0x156]
mov byte [rdi + 0x156], al
mov eax, dword [rbx + 0x158]
mov dword [rdi + 0x158], eax
movzx eax, byte [rbx + 0x15c]
mov byte [rdi + 0x15c], al
movzx eax, byte [rbx + 0x15d]
mov byte [rdi + 0x15d], al
movzx eax, byte [rbx + 0x15e]
mov byte [rdi + 0x15e], al
movzx eax, byte [rbx + 0x15f]
mov byte [rdi + 0x15f], al
mov eax, dword [rbx + 0x160]
mov dword [rdi + 0x160], eax
movzx eax, word [rbx + 0x164]
mov word [rdi + 0x164], ax
call fcn.140076920
movzx eax, byte [rbx + 0x180]
lea rdx, [rbx + 0x188]
mov byte [rdi + 0x180], al
lea rcx, [rdi + 0x188]
movzx eax, byte [rbx + 0x181]
mov byte [rdi + 0x181], al
movzx eax, byte [rbx + 0x182]
mov byte [rdi + 0x182], al
movzx eax, byte [rbx + 0x183]
mov byte [rdi + 0x183], al
movzx eax, byte [rbx + 0x184]
mov byte [rdi + 0x184], al
movzx eax, byte [rbx + 0x185]
mov byte [rdi + 0x185], al
movzx eax, byte [rbx + 0x186]
mov byte [rdi + 0x186], al
call fcn.1400079b0
lea rdx, [rbx + 0x1a8]
lea rcx, [rdi + 0x1a8]
call fcn.1400079b0
lea rdx, [rbx + 0x1c8]
lea rcx, [rdi + 0x1c8]
call fcn.140076920
mov eax, dword [rbx + 0x1e0]
lea rdx, [rbx + 0x1e8]
mov dword [rdi + 0x1e0], eax
lea rcx, [rdi + 0x1e8]
movzx eax, byte [rbx + 0x1e4]
mov byte [rdi + 0x1e4], al
call fcn.140076920
movzx eax, byte [rbx + 0x200]
lea rdx, [rbx + 0x210]
mov byte [rdi + 0x200], al
lea rcx, [rdi + 0x210]
mov eax, dword [rbx + 0x204]
mov dword [rdi + 0x204], eax
movzx eax, byte [rbx + 0x208]
mov byte [rdi + 0x208], al
call fcn.140076920
movzx eax, byte [rbx + 0x228]
mov byte [rdi + 0x228], al
movzx eax, byte [rbx + 0x229]
lea rdx, [rbx + 0x268]
mov byte [rdi + 0x229], al
lea rcx, [rdi + 0x268]
movzx eax, byte [rbx + 0x22a]
mov byte [rdi + 0x22a], al
mov eax, dword [rbx + 0x22c]
mov dword [rdi + 0x22c], eax
mov eax, dword [rbx + 0x230]
mov dword [rdi + 0x230], eax
mov eax, dword [rbx + 0x234]
mov dword [rdi + 0x234], eax
mov eax, dword [rbx + 0x238]
mov dword [rdi + 0x238], eax
mov eax, dword [rbx + 0x23c]
mov dword [rdi + 0x23c], eax
mov eax, dword [rbx + 0x240]
mov dword [rdi + 0x240], eax
mov eax, dword [rbx + 0x244]
mov dword [rdi + 0x244], eax
mov eax, dword [rbx + 0x248]
mov dword [rdi + 0x248], eax
mov eax, dword [rbx + 0x24c]
mov dword [rdi + 0x24c], eax
mov eax, dword [rbx + 0x250]
mov dword [rdi + 0x250], eax
mov eax, dword [rbx + 0x254]
mov dword [rdi + 0x254], eax
movzx eax, byte [rbx + 0x258]
mov byte [rdi + 0x258], al
mov eax, dword [rbx + 0x25c]
mov dword [rdi + 0x25c], eax
movzx eax, byte [rbx + 0x260]
mov byte [rdi + 0x260], al
call fcn.140076920
lea r15, [rdi + 0x280]
movabs rax, 0x8888888888888889
mov qword [r15], r12
mov qword [r15 + 8], r12
mov qword [r15 + 0x10], r12
mov rcx, qword [rbx + 0x288]
sub rcx, qword [rbx + 0x280]
imul rcx
add rdx, rcx
sar rdx, 6
mov rax, rdx
shr rax, 0x3f
add rdx, rax
je 0x140091bac
movabs rax, 0x222222222222222
cmp rdx, rax
ja 0x140091e70
mov rcx, r15
call fcn.140095870
mov rbp, qword [rbx + 0x288]
mov rsi, qword [rbx + 0x280]
mov r14, qword [r15]
cmp rsi, rbp
je 0x140091ba8
movzx eax, byte [rsi]
lea rdx, [rsi + 8]
lea rcx, [r14 + 8]
mov byte [r14], al
call fcn.140076920
lea rdx, [rsi + 0x20]
lea rcx, [r14 + 0x20]
call fcn.140076920
lea rdx, [rsi + 0x38]
lea rcx, [r14 + 0x38]
call fcn.1400079b0
lea rdx, [rsi + 0x58]
lea rcx, [r14 + 0x58]
call fcn.1400079b0
add r14, 0x78
add rsi, 0x78
cmp rsi, rbp
jne 0x140091b61
mov qword [r15 + 8], r14
movzx eax, byte [rbx + 0x298]
lea rdx, [rbx + 0x2d8]
mov byte [rdi + 0x298], al
lea rcx, [rdi + 0x2d8]
movzx eax, byte [rbx + 0x299]
mov byte [rdi + 0x299], al
movzx eax, byte [rbx + 0x29a]
mov byte [rdi + 0x29a], al
movzx eax, byte [rbx + 0x29b]
mov byte [rdi + 0x29b], al
movzx eax, byte [rbx + 0x29c]
mov byte [rdi + 0x29c], al
movzx eax, byte [rbx + 0x29d]
mov byte [rdi + 0x29d], al
movzx eax, byte [rbx + 0x29e]
mov byte [rdi + 0x29e], al
movzx eax, byte [rbx + 0x29f]
mov byte [rdi + 0x29f], al
mov eax, dword [rbx + 0x2a0]
mov dword [rdi + 0x2a0], eax
movzx eax, byte [rbx + 0x2a4]
mov byte [rdi + 0x2a4], al
movzx eax, byte [rbx + 0x2a5]
mov byte [rdi + 0x2a5], al
movzx eax, byte [rbx + 0x2a6]
mov byte [rdi + 0x2a6], al
movzx eax, byte [rbx + 0x2a7]
mov byte [rdi + 0x2a7], al
movzx eax, byte [rbx + 0x2a8]
mov byte [rdi + 0x2a8], al
movzx eax, byte [rbx + 0x2a9]
mov byte [rdi + 0x2a9], al
movzx eax, byte [rbx + 0x2aa]
mov byte [rdi + 0x2aa], al
movzx eax, byte [rbx + 0x2ab]
mov byte [rdi + 0x2ab], al
movzx eax, byte [rbx + 0x2ac]
mov byte [rdi + 0x2ac], al
movzx eax, byte [rbx + 0x2ad]
mov byte [rdi + 0x2ad], al
movzx eax, byte [rbx + 0x2ae]
mov byte [rdi + 0x2ae], al
movzx eax, byte [rbx + 0x2af]
mov byte [rdi + 0x2af], al
movzx eax, byte [rbx + 0x2b0]
mov byte [rdi + 0x2b0], al
movzx eax, byte [rbx + 0x2b1]
mov byte [rdi + 0x2b1], al
movzx eax, byte [rbx + 0x2b2]
mov byte [rdi + 0x2b2], al
movsd xmm0, qword [rbx + 0x2b3]
movsd qword [rdi + 0x2b3], xmm0
movzx eax, word [rbx + 0x2bb]
mov word [rdi + 0x2bb], ax
movzx eax, byte [rbx + 0x2bd]
mov byte [rdi + 0x2bd], al
movzx eax, byte [rbx + 0x2be]
mov byte [rdi + 0x2be], al
movzx eax, byte [rbx + 0x2bf]
mov byte [rdi + 0x2bf], al
mov eax, dword [rbx + 0x2c0]
mov dword [rdi + 0x2c0], eax
movzx eax, byte [rbx + 0x2c4]
mov byte [rdi + 0x2c4], al
movzx eax, byte [rbx + 0x2c5]
mov byte [rdi + 0x2c5], al
mov rax, qword [rbx + 0x2c8]
mov qword [rdi + 0x2c8], rax
movzx eax, byte [rbx + 0x2d0]
mov byte [rdi + 0x2d0], al
mov eax, dword [rbx + 0x2d1]
mov dword [rdi + 0x2d1], eax
movzx eax, byte [rbx + 0x2d5]
mov byte [rdi + 0x2d5], al
movzx eax, byte [rbx + 0x2d6]
mov byte [rdi + 0x2d6], al
call fcn.140076920
lea rdx, [rbx + 0x2f0]
lea rcx, [rdi + 0x2f0]
call fcn.140076920
mov eax, dword [rbx + 0x308]
lea rdx, [rbx + 0x310]
mov dword [rdi + 0x308], eax
lea rcx, [rdi + 0x310]
call fcn.140076920
lea rdx, [rbx + 0x328]
lea rcx, [rdi + 0x328]
call fcn.140076920
movzx eax, byte [rbx + 0x340]
lea rdx, [rbx + 0x348]
mov byte [rdi + 0x340], al
lea rcx, [rdi + 0x348]
movzx eax, byte [rbx + 0x341]
mov byte [rdi + 0x341], al
call fcn.140076920
mov qword [rdi + 0x360], r12
mov qword [rdi + 0x368], r12
mov rax, qword [rbx + 0x368]
test rax, rax
je 0x140091e32
lock inc dword [rax + 8]
mov rax, qword [rbx + 0x360]
mov rbp, qword [rsp + 0x48]
mov rsi, qword [rsp + 0x50]
mov qword [rdi + 0x360], rax
mov rax, qword [rbx + 0x368]
mov rbx, qword [rsp + 0x40]
mov qword [rdi + 0x368], rax
mov rax, rdi
mov rdi, qword [rsp + 0x58]
add rsp, 0x20
pop r15
pop r14
pop r12
ret
call fcn.140097220
int3
call fcn.140097200
int3