Function at 0x1400114f0
Capabilities:
Inspect section memory permissions
Resolve function by parsing pe exports

Disassembly:
push r15
push r14
push rsi
push rdi
push rbp
push rbx
sub rsp, 0x48
mov ebx, edx
mov rsi, rcx
mov rax, qword [0x140084030]
xor rax, rsp
mov qword [rsp + 0x40], rax
mov byte [rcx + 8], 0
call fcn.140010520
cmp ebx, 0x31c
je 0x1400117f0
cmp ebx, 0x488
jne 0x140011aaf
mov rcx, qword [rsi + 0x20]
lea rdx, [rsp + 0x28]
mov r8d, 8
call fcn.140012c00
test al, al
je 0x140012bd4
mov rbx, qword [rsi + 0x20]
cmp byte [rbx + 0x62], 0
je 0x140011571
cmp byte [rbx + 0x60], 0
je 0x140011571
mov eax, dword [rsp + 0x28]
mov ecx, dword [rsp + 0x2c]
bswap eax
bswap ecx
mov dword [rsp + 0x28], ecx
mov dword [rsp + 0x2c], eax
mov ebp, dword [rsp + 0x28]
mov r14d, 0xffffff00
mov eax, 0xffffff00
and eax, ebp
mov dword [rsp + 0x24], eax
mov ecx, 0x488
call sub.mozglue.dll_void____ptr64___cdecl_operator_new_unsigned_long_long_unsigned___int64__
mov rdi, rax
mov r8d, 0x488
mov rcx, rax
xor edx, edx
call sub.VCRUNTIME140.dll_memset
and r14d, ebp
jne 0x1400115c5
lea rdx, [rsp + 0x24]
mov rcx, rbx
call fcn.140012d90
test al, al
je 0x140012bcc
mov r14d, dword [rsp + 0x24]
mov qword [rdi], r14
cmp r14d, 0x1000000
jne 0x140012bcc
mov rax, qword [rsp + 0x28]
mov qword [rdi], rax
mov rdx, rdi
add rdx, 8
mov rcx, qword [rsi + 0x20]
mov r8d, 0x480
call fcn.140012c00
test al, al
je 0x140012bcc
mov rcx, qword [rsi + 0x20]
mov rax, qword [rcx]
mov rax, qword [rax + 0x48]
call qword [0x1400ba010]
test rax, rax
je 0x140011627
cmp byte [rax + 8], 0
je 0x140012bcc
movzx eax, word [rax + 0x18]
cmp eax, 0x8002
jne 0x140012bcc
mov rax, qword [rsi + 0x20]
cmp byte [rax + 0x62], 0
je 0x1400117d7
cmp byte [rax + 0x60], 0
je 0x1400117d7
mov eax, dword [rdi + 8]
mov ecx, dword [rdi + 0xc]
bswap eax
bswap ecx
mov dword [rdi + 8], ecx
mov dword [rdi + 0xc], eax
mov eax, dword [rdi + 0x10]
bswap eax
mov ecx, dword [rdi + 0x14]
bswap ecx
mov dword [rdi + 0x10], ecx
mov dword [rdi + 0x14], eax
xor eax, eax
mov ecx, dword [rdi + rax*8 + 0x18]
mov edx, dword [rdi + rax*8 + 0x1c]
bswap ecx
bswap edx
mov dword [rdi + rax*8 + 0x18], edx
mov dword [rdi + rax*8 + 0x1c], ecx
inc rax
cmp rax, 0x20
jne 0x140011661
mov eax, dword [rdi + 0x118]
mov ecx, dword [rdi + 0x11c]
bswap eax
bswap ecx
mov dword [rdi + 0x118], ecx
mov dword [rdi + 0x11c], eax
mov eax, dword [rdi + 0x120]
bswap eax
mov ecx, dword [rdi + 0x124]
bswap ecx
mov dword [rdi + 0x120], ecx
mov dword [rdi + 0x124], eax
mov eax, dword [rdi + 0x128]
bswap eax
mov ecx, dword [rdi + 0x12c]
bswap ecx
mov dword [rdi + 0x128], ecx
mov dword [rdi + 0x12c], eax
mov eax, dword [rdi + 0x130]
bswap eax
mov ecx, dword [rdi + 0x134]
bswap ecx
mov dword [rdi + 0x130], ecx
mov dword [rdi + 0x134], eax
mov eax, dword [rdi + 0x138]
bswap eax
mov ecx, dword [rdi + 0x13c]
bswap ecx
mov dword [rdi + 0x138], ecx
mov dword [rdi + 0x13c], eax
xor eax, eax
mov ecx, dword [rdi + rax*8 + 0x140]
mov edx, dword [rdi + rax*8 + 0x144]
bswap ecx
bswap edx
mov dword [rdi + rax*8 + 0x140], edx
mov dword [rdi + rax*8 + 0x144], ecx
inc rax
cmp rax, 0x20
jne 0x14001170c
mov eax, dword [rdi + 0x244]
bswap eax
mov dword [rdi + 0x244], eax
xor eax, eax
mov ecx, dword [rdi + rax + 0x250]
bswap ecx
mov edx, dword [rdi + rax + 0x254]
bswap edx
mov dword [rdi + rax + 0x250], edx
mov dword [rdi + rax + 0x254], ecx
mov ecx, dword [rdi + rax + 0x248]
mov edx, dword [rdi + rax + 0x24c]
bswap ecx
bswap edx
mov dword [rdi + rax + 0x248], edx
mov dword [rdi + rax + 0x24c], ecx
add rax, 0x10
cmp rax, 0x200
jne 0x140011745
mov eax, dword [rdi + 0x450]
bswap eax
mov ecx, dword [rdi + 0x454]
bswap ecx
mov dword [rdi + 0x450], ecx
mov dword [rdi + 0x454], eax
mov eax, dword [rdi + 0x448]
mov ecx, dword [rdi + 0x44c]
bswap eax
bswap ecx
mov dword [rdi + 0x448], ecx
mov dword [rdi + 0x44c], eax
mov eax, dword [rdi + 0x468]
bswap eax
mov dword [rdi + 0x468], eax
mov rax, qword [rdi]
mov dword [rsi + 0x18], eax
shr rax, 0x20
jne 0x140012bcc
mov qword [rsi + 0x10], rdi
jmp 0x140011fe4
mov rcx, qword [rsi + 0x20]
lea rdx, [rsp + 0x28]
mov r8d, 8
call fcn.140012c00
test al, al
je 0x140012bd4
mov rbx, qword [rsi + 0x20]
cmp byte [rbx + 0x62], 0
je 0x140011830
cmp byte [rbx + 0x60], 0
je 0x140011830
mov eax, dword [rsp + 0x28]
mov ecx, dword [rsp + 0x2c]
bswap eax
bswap ecx
mov dword [rsp + 0x28], ecx
mov dword [rsp + 0x2c], eax
mov ecx, 0x31c
call sub.mozglue.dll_void____ptr64___cdecl_operator_new_unsigned_long_long_unsigned___int64__
mov rdi, rax
mov r8d, 0x31c
mov rcx, rax
xor edx, edx
call sub.VCRUNTIME140.dll_memset
mov eax, 0xffffff00
and eax, dword [rsp + 0x28]
mov dword [rsp + 0x24], eax
jne 0x140011878
lea rdx, [rsp + 0x24]
mov rcx, rbx
call fcn.140012d90
test al, al
je 0x140012bcc
mov eax, dword [rsp + 0x24]
mov qword [rdi], rax
cmp eax, 0x80000000
jne 0x140012bcc
mov rax, qword [rsp + 0x28]
mov qword [rdi], rax
lea rbx, [rdi + 8]
mov rcx, qword [rsi + 0x20]
mov r8d, 0x314
mov rdx, rbx
call fcn.140012c00
test al, al
je 0x140012bcc
mov rcx, qword [rsi + 0x20]
mov rax, qword [rcx]
mov rax, qword [rax + 0x48]
call qword [0x1400ba010]
test rax, rax
je 0x1400118d8
cmp byte [rax + 8], 0
je 0x140012bcc
movzx eax, word [rax + 0x18]
cmp eax, 0x8003
jne 0x140012bcc
mov rax, qword [rsi + 0x20]
cmp byte [rax + 0x62], 0
je 0x1400119c5
cmp byte [rax + 0x60], 0
je 0x1400119c5
xor ecx, ecx
mov edx, dword [rdi + rcx*8 + 8]
mov r8d, dword [rdi + rcx*8 + 0xc]
bswap edx
bswap r8d
mov dword [rdi + rcx*8 + 8], r8d
mov dword [rdi + rcx*8 + 0xc], edx
inc rcx
cmp rcx, 0x21
jne 0x1400118f2
mov ecx, dword [rdi + 0x110]
mov edx, dword [rdi + 0x114]
bswap ecx
mov dword [rdi + 0x110], ecx
bswap edx
mov dword [rdi + 0x114], edx
mov ecx, dword [rdi + 0x118]
bswap ecx
mov dword [rdi + 0x118], ecx
xor ecx, ecx
cmp byte [rax + 0x62], 0
je 0x140011963
cmp byte [rax + 0x61], 0
je 0x140011963
mov r8d, dword [rdi + rcx + 0x124]
mov edx, dword [rdi + rcx + 0x11c]
mov r9d, dword [rdi + rcx + 0x120]
jmp 0x140011982
mov r8, qword [rdi + rcx + 0x11c]
mov rdx, qword [rdi + rcx + 0x124]
mov qword [rdi + rcx + 0x124], r8
mov r9, rdx
shr r9, 0x20
bswap r8d
mov r10d, dword [rdi + rcx + 0x128]
bswap r10d
mov dword [rdi + rcx + 0x124], r10d
mov dword [rdi + rcx + 0x128], r8d
bswap edx
bswap r9d
mov dword [rdi + rcx + 0x11c], r9d
mov dword [rdi + rcx + 0x120], edx
add rcx, 0x10
cmp rcx, 0x200
jne 0x14001193e
mov ecx, 0x390
call sub.mozglue.dll_void____ptr64___cdecl_operator_new_unsigned_long_long_unsigned___int64__
mov r14, rax
mov rax, qword [rdi]
xor ecx, ecx
test eax, 0x80000002
setne cl
lea ecx, [rcx + rcx*2]
xor ebp, ebp
test eax, 0x80000004
setne bpl
shl ebp, 2
or ebp, ecx
or ebp, 0x400000
mov dword [r14], ebp
mov eax, dword [rdi + 0x110]
mov dword [r14 + 4], eax
lea rcx, [r14 + 8]
mov r8d, 0x108
mov rdx, rbx
call sub.VCRUNTIME140.dll_memcpy
lea rcx, [r14 + 0x110]
mov rdx, rdi
add rdx, 0x11c
mov r8d, 0x200
call sub.VCRUNTIME140.dll_memcpy
mov eax, dword [rdi + 0x118]
mov dword [r14 + 0x310], eax
mov eax, dword [rdi + 0x114]
mov dword [r14 + 0x314], eax
pxor xmm0, xmm0
movdqu xmmword [r14 + 0x378], xmm0
movdqu xmmword [r14 + 0x368], xmm0
movdqu xmmword [r14 + 0x358], xmm0
movdqu xmmword [r14 + 0x348], xmm0
movdqu xmmword [r14 + 0x338], xmm0
movdqu xmmword [r14 + 0x328], xmm0
movdqu xmmword [r14 + 0x318], xmm0
mov qword [r14 + 0x388], 0
mov dword [rsi + 0x18], ebp
mov qword [rsi + 0x10], r14
mov rcx, rdi
call fcn.1400465d0
jmp 0x140011fe4
lea rdx, [rsp + 0x24]
mov dword [rdx], 0
mov rcx, qword [rsi + 0x20]
call fcn.140012d90
test al, al
je 0x140012bd4
mov dword [rsp + 0x20], 0
mov r15d, dword [rsp + 0x24]
mov r14, qword [rsi + 0x20]
cmp r15d, 0x100000
jne 0x140011b37
mov ecx, 0x4d0
call sub.mozglue.dll_void____ptr64___cdecl_operator_new_unsigned_long_long_unsigned___int64__
mov rdi, rax
mov r8d, 0x4d0
mov rcx, rax
xor edx, edx
call sub.VCRUNTIME140.dll_memset
mov r8d, 0x4d0
mov rcx, r14
mov rdx, rdi
call fcn.140012c00
test al, al
je 0x140012bcc
mov r14, qword [rsi + 0x20]
cmp byte [r14 + 0x62], 0
je 0x140011b87
cmp byte [r14 + 0x60], 0
je 0x140011b87
mov eax, dword [rdi + 0x30]
bswap eax
mov dword [rdi + 0x30], eax
jmp 0x140011b8a
lea rdx, [rsp + 0x20]
mov r8d, 4
mov rcx, r14
call fcn.140012c00
test al, al
je 0x140012bd4
mov r14, qword [rsi + 0x20]
cmp byte [r14 + 0x62], 0
mov ebp, dword [rsp + 0x20]
je 0x140011b6e
cmp byte [r14 + 0x60], 0
je 0x140011b6e
bswap ebp
mov dword [rsp + 0x20], ebp
mov eax, ebp
and eax, 0xffffff00
je 0x140011ff0
mov dword [rsp + 0x24], eax
mov r15d, eax
jmp 0x140012001
mov eax, dword [rdi + 0x30]
mov dword [rsp + 0x20], eax
mov ecx, eax
and ecx, 0xffffff00
cmp ecx, 0x100000
jne 0x140012bcc
mov ecx, 0x308
mov rdx, qword [rdi + rcx - 8]
mov r8, qword [rdi + rcx]
mov qword [rdi + rcx], rdx
mov qword [rdi + rcx - 8], r8
add rcx, 0x10
cmp rcx, 0x4a8
jne 0x140011ba7
cmp byte [r14 + 0x62], 0
je 0x140011f8c
cmp byte [r14 + 0x60], 0
je 0x140011f8c
mov eax, dword [rdi]
mov ecx, dword [rdi + 4]
bswap eax
bswap ecx
mov dword [rdi], ecx
mov dword [rdi + 4], eax
mov eax, dword [rdi + 8]
bswap eax
mov ecx, dword [rdi + 0xc]
bswap ecx
mov dword [rdi + 8], ecx
mov dword [rdi + 0xc], eax
mov eax, dword [rdi + 0x10]
bswap eax
mov ecx, dword [rdi + 0x14]
bswap ecx
mov dword [rdi + 0x10], ecx
mov dword [rdi + 0x14], eax
mov eax, dword [rdi + 0x18]
bswap eax
mov ecx, dword [rdi + 0x1c]
bswap ecx
mov dword [rdi + 0x18], ecx
mov dword [rdi + 0x1c], eax
mov eax, dword [rdi + 0x20]
bswap eax
mov ecx, dword [rdi + 0x24]
bswap ecx
mov dword [rdi + 0x20], ecx
mov dword [rdi + 0x24], eax
mov eax, dword [rdi + 0x28]
mov ecx, dword [rdi + 0x2c]
bswap eax
bswap ecx
mov dword [rdi + 0x28], ecx
mov dword [rdi + 0x2c], eax
mov eax, dword [rdi + 0x34]
bswap eax
mov dword [rdi + 0x34], eax
rol word [rdi + 0x38], 8
rol word [rdi + 0x3a], 8
rol word [rdi + 0x3c], 8
rol word [rdi + 0x3e], 8
rol word [rdi + 0x42], 8
mov eax, dword [rdi + 0x44]
bswap eax
mov dword [rdi + 0x44], eax
mov eax, dword [rdi + 0x48]
mov ecx, dword [rdi + 0x4c]
bswap eax
bswap ecx
mov dword [rdi + 0x48], ecx
mov dword [rdi + 0x4c], eax
mov eax, dword [rdi + 0x50]
mov ecx, dword [rdi + 0x54]
bswap eax
bswap ecx
mov dword [rdi + 0x50], ecx
mov dword [rdi + 0x54], eax
mov eax, dword [rdi + 0x58]
mov ecx, dword [rdi + 0x5c]
bswap eax
bswap ecx
mov dword [rdi + 0x58], ecx
mov dword [rdi + 0x5c], eax
mov eax, dword [rdi + 0x60]
mov ecx, dword [rdi + 0x64]
bswap eax
bswap ecx
mov dword [rdi + 0x60], ecx
mov dword [rdi + 0x64], eax
mov eax, dword [rdi + 0x68]
mov ecx, dword [rdi + 0x6c]
bswap eax
bswap ecx
mov dword [rdi + 0x68], ecx
mov dword [rdi + 0x6c], eax
mov eax, dword [rdi + 0x70]
mov ecx, dword [rdi + 0x74]
bswap eax
bswap ecx
mov dword [rdi + 0x70], ecx
mov dword [rdi + 0x74], eax
mov eax, dword [rdi + 0x78]
mov ecx, dword [rdi + 0x7c]
bswap eax
bswap ecx
mov dword [rdi + 0x78], ecx
mov dword [rdi + 0x7c], eax
mov eax, dword [rdi + 0x80]
mov ecx, dword [rdi + 0x84]
bswap eax
bswap ecx
mov dword [rdi + 0x80], ecx
mov dword [rdi + 0x84], eax
mov eax, dword [rdi + 0x88]
mov ecx, dword [rdi + 0x8c]
bswap eax
bswap ecx
mov dword [rdi + 0x88], ecx
mov dword [rdi + 0x8c], eax
mov eax, dword [rdi + 0x90]
mov ecx, dword [rdi + 0x94]
bswap eax
bswap ecx
mov dword [rdi + 0x90], ecx
mov dword [rdi + 0x94], eax
mov eax, dword [rdi + 0x98]
mov ecx, dword [rdi + 0x9c]
bswap eax
bswap ecx
mov dword [rdi + 0x98], ecx
mov dword [rdi + 0x9c], eax
mov eax, dword [rdi + 0xa0]
mov ecx, dword [rdi + 0xa4]
bswap eax
bswap ecx
mov dword [rdi + 0xa0], ecx
mov dword [rdi + 0xa4], eax
mov eax, dword [rdi + 0xa8]
mov ecx, dword [rdi + 0xac]
bswap eax
bswap ecx
mov dword [rdi + 0xa8], ecx
mov dword [rdi + 0xac], eax
mov eax, dword [rdi + 0xb0]
mov ecx, dword [rdi + 0xb4]
bswap eax
bswap ecx
mov dword [rdi + 0xb0], ecx
mov dword [rdi + 0xb4], eax
mov eax, dword [rdi + 0xb8]
mov ecx, dword [rdi + 0xbc]
bswap eax
bswap ecx
mov dword [rdi + 0xb8], ecx
mov dword [rdi + 0xbc], eax
mov eax, dword [rdi + 0xc0]
mov ecx, dword [rdi + 0xc4]
bswap eax
bswap ecx
mov dword [rdi + 0xc0], ecx
mov dword [rdi + 0xc4], eax
mov eax, dword [rdi + 0xc8]
mov ecx, dword [rdi + 0xcc]
bswap eax
bswap ecx
mov dword [rdi + 0xc8], ecx
mov dword [rdi + 0xcc], eax
mov eax, dword [rdi + 0xd0]
mov ecx, dword [rdi + 0xd4]
bswap eax
bswap ecx
mov dword [rdi + 0xd0], ecx
mov dword [rdi + 0xd4], eax
mov eax, dword [rdi + 0xd8]
mov ecx, dword [rdi + 0xdc]
bswap eax
bswap ecx
mov dword [rdi + 0xd8], ecx
mov dword [rdi + 0xdc], eax
mov eax, dword [rdi + 0xe0]
mov ecx, dword [rdi + 0xe4]
bswap eax
bswap ecx
mov dword [rdi + 0xe0], ecx
mov dword [rdi + 0xe4], eax
mov eax, dword [rdi + 0xe8]
mov ecx, dword [rdi + 0xec]
bswap eax
bswap ecx
mov dword [rdi + 0xe8], ecx
mov dword [rdi + 0xec], eax
mov eax, dword [rdi + 0xf0]
mov ecx, dword [rdi + 0xf4]
bswap eax
bswap ecx
mov dword [rdi + 0xf0], ecx
mov dword [rdi + 0xf4], eax
mov eax, dword [rdi + 0xf8]
mov ecx, dword [rdi + 0xfc]
bswap eax
bswap ecx
mov dword [rdi + 0xf8], ecx
mov dword [rdi + 0xfc], eax
xor eax, eax
mov ecx, dword [rdi + rax + 0x308]
bswap ecx
mov edx, dword [rdi + rax + 0x30c]
bswap edx
mov dword [rdi + rax + 0x308], edx
mov dword [rdi + rax + 0x30c], ecx
mov ecx, dword [rdi + rax + 0x300]
mov edx, dword [rdi + rax + 0x304]
bswap ecx
bswap edx
mov dword [rdi + rax + 0x300], edx
mov dword [rdi + rax + 0x304], ecx
add rax, 0x10
cmp rax, 0x1a0
jne 0x140011e95
mov eax, dword [rdi + 0x4a0]
mov ecx, dword [rdi + 0x4a4]
bswap eax
bswap ecx
mov dword [rdi + 0x4a0], ecx
mov dword [rdi + 0x4a4], eax
mov eax, dword [rdi + 0x4a8]
bswap eax
mov ecx, dword [rdi + 0x4ac]
bswap ecx
mov dword [rdi + 0x4a8], ecx
mov dword [rdi + 0x4ac], eax
mov eax, dword [rdi + 0x4b0]
bswap eax
mov ecx, dword [rdi + 0x4b4]
bswap ecx
mov dword [rdi + 0x4b0], ecx
mov dword [rdi + 0x4b4], eax
mov eax, dword [rdi + 0x4b8]
bswap eax
mov ecx, dword [rdi + 0x4bc]
bswap ecx
mov dword [rdi + 0x4b8], ecx
mov dword [rdi + 0x4bc], eax
mov eax, dword [rdi + 0x4c0]
bswap eax
mov ecx, dword [rdi + 0x4c4]
bswap ecx
mov dword [rdi + 0x4c0], ecx
mov dword [rdi + 0x4c4], eax
mov eax, dword [rdi + 0x4c8]
mov ecx, dword [rdi + 0x4cc]
bswap eax
bswap ecx
mov dword [rdi + 0x4c8], ecx
mov dword [rdi + 0x4cc], eax
mov eax, dword [rdi + 0x30]
mov dword [rsi + 0x18], eax
mov qword [rsi + 0x10], rdi
mov edx, 0xfffffb2f
cmp byte [r14 + 0x62], 0
je 0x140011fd3
mov rcx, qword [r14 + 0x58]
test rcx, rcx
je 0x140011fd3
lea rdi, [rsp + 0x28]
mov rdx, rdi
call qword [sym.imp.MSVCP140.dll_public:_class_std::fpos_struct__Mbstatet____cdecl_std::basic_istream_char__struct_std::char_traits_char__::tellg_void____ptr64]
mov rax, qword [rdi + 8]
add rax, qword [rdi]
movsxd rcx, eax
lea r8d, [rcx - 0x4d0]
cmp rcx, rax
mov edx, 0xfffffb2f
cmove edx, r8d
add edx, ebx
mov rcx, r14
call fcn.140012f30
mov eax, dword [rsp + 0x20]
mov dword [rsi + 0x18], eax
mov byte [rsi + 8], 1
mov sil, 1
jmp 0x140012bd6
test bpl, 0x40
jne 0x140012255
or ebp, r15d
mov dword [rsp + 0x20], ebp
cmp r15d, 0x3fffff
jg 0x140012036
cmp r15d, 0x7ffff
jg 0x14001221b
cmp r15d, 0x10000
je 0x1400124b5
cmp r15d, 0x40000
je 0x14001241c
jmp 0x140012bd4
cmp r15d, 0x1fffffff
jg 0x14001223a
cmp r15d, 0x400000
je 0x1400126e9
cmp r15d, 0x10000000
jne 0x140012bd4
cmp ebx, 0x248
jne 0x140012bd4
mov ecx, 0x248
call sub.mozglue.dll_void____ptr64___cdecl_operator_new_unsigned_long_long_unsigned___int64__
mov rdi, rax
mov r8d, 0x248
mov rcx, rax
xor edx, edx
call sub.VCRUNTIME140.dll_memset
mov dword [rdi], ebp
mov rdx, rdi
add rdx, 4
mov r8d, 0x244
mov rcx, r14
call fcn.140012c00
test al, al
je 0x140012bcc
mov rcx, qword [rsi + 0x20]
mov rax, qword [rcx]
mov rax, qword [rax + 0x48]
call qword [0x1400ba010]
test rax, rax
je 0x1400120d4
cmp byte [rax + 8], 0
je 0x140012bcc
movzx eax, word [rax + 0x18]
cmp eax, 0x8001
jne 0x140012bcc
mov rax, qword [rsi + 0x20]
cmp byte [rax + 0x62], 0
je 0x140012bc3
cmp byte [rax + 0x60], 0
je 0x140012bc3
xor eax, eax
mov ecx, dword [rdi + rax*8 + 8]
mov edx, dword [rdi + rax*8 + 0xc]
bswap ecx
bswap edx
mov dword [rdi + rax*8 + 8], edx
mov dword [rdi + rax*8 + 0xc], ecx
inc rax
cmp rax, 0x20
jne 0x1400120ee
mov eax, dword [rdi + 0x108]
mov ecx, dword [rdi + 0x10c]
bswap eax
bswap ecx
mov dword [rdi + 0x108], ecx
mov dword [rdi + 0x10c], eax
mov eax, dword [rdi + 0x110]
bswap eax
mov ecx, dword [rdi + 0x114]
bswap ecx
mov dword [rdi + 0x110], ecx
mov dword [rdi + 0x114], eax
mov eax, dword [rdi + 0x118]
bswap eax
mov ecx, dword [rdi + 0x11c]
bswap ecx
mov dword [rdi + 0x118], ecx
mov dword [rdi + 0x11c], eax
mov eax, dword [rdi + 0x120]
bswap eax
mov ecx, dword [rdi + 0x124]
bswap ecx
mov dword [rdi + 0x120], ecx
mov dword [rdi + 0x124], eax
mov eax, dword [rdi + 0x128]
bswap eax
mov ecx, dword [rdi + 0x12c]
bswap ecx
mov dword [rdi + 0x128], ecx
mov dword [rdi + 0x12c], eax
mov eax, dword [rdi + 0x130]
mov ecx, dword [rdi + 0x134]
bswap eax
bswap ecx
mov dword [rdi + 0x130], ecx
mov dword [rdi + 0x134], eax
xor eax, eax
mov ecx, dword [rdi + rax*8 + 0x138]
mov edx, dword [rdi + rax*8 + 0x13c]
bswap ecx
bswap edx
mov dword [rdi + rax*8 + 0x138], edx
mov dword [rdi + rax*8 + 0x13c], ecx
inc rax
cmp rax, 0x20
jne 0x1400121b5
mov eax, dword [rdi + 0x238]
mov ecx, dword [rdi + 0x23c]
bswap eax
bswap ecx
mov dword [rdi + 0x238], ecx
mov dword [rdi + 0x23c], eax
mov eax, dword [rdi + 0x240]
bswap eax
mov ecx, dword [rdi + 0x244]
bswap ecx
mov dword [rdi + 0x240], ecx
mov dword [rdi + 0x244], eax
jmp 0x140012bc3
cmp r15d, 0x80000
je 0x14001241c
cmp r15d, 0x100000
je 0x140011ae5
jmp 0x140012bd4
cmp r15d, 0x20000000
je 0x140012848
cmp r15d, 0x40000000
je 0x140012265
jmp 0x140012bd4
and ebp, 0xbfffffbf
or ebp, 0x40000000
mov dword [rsp + 0x20], ebp
cmp ebx, 0x170
jne 0x140012bd4
mov ecx, 0x170
call sub.mozglue.dll_void____ptr64___cdecl_operator_new_unsigned_long_long_unsigned___int64__
mov rdi, rax
mov r8d, 0x170
mov rcx, rax
xor edx, edx
call sub.VCRUNTIME140.dll_memset
mov dword [rdi], ebp
mov rdx, rdi
add rdx, 4
mov r8d, 0x16c
mov rcx, r14
call fcn.140012c00
test al, al
je 0x140012bcc
mov rcx, qword [rsi + 0x20]
mov rax, qword [rcx]
mov rax, qword [rax + 0x48]
call qword [0x1400ba010]
test rax, rax
je 0x1400122d8
cmp byte [rax + 8], 0
je 0x140012bcc
cmp word [rax + 0x18], 5
jne 0x140012bcc
mov rax, qword [rsi + 0x20]
cmp byte [rax + 0x62], 0
je 0x140012bc3
cmp byte [rax + 0x60], 0
je 0x140012bc3
mov eax, dword [rdi + 4]
mov ecx, dword [rdi + 8]
bswap eax
mov dword [rdi + 4], eax
bswap ecx
mov dword [rdi + 8], ecx
mov eax, dword [rdi + 0xc]
bswap eax
mov dword [rdi + 0xc], eax
mov eax, dword [rdi + 0x10]
bswap eax
mov dword [rdi + 0x10], eax
mov eax, dword [rdi + 0x14]
bswap eax
mov dword [rdi + 0x14], eax
mov eax, dword [rdi + 0x18]
bswap eax
mov dword [rdi + 0x18], eax
mov eax, dword [rdi + 0x1c]
bswap eax
mov dword [rdi + 0x1c], eax
mov eax, dword [rdi + 0x20]
bswap eax
mov dword [rdi + 0x20], eax
mov eax, dword [rdi + 0x24]
bswap eax
mov dword [rdi + 0x24], eax
mov eax, dword [rdi + 0x28]
bswap eax
mov dword [rdi + 0x28], eax
mov eax, dword [rdi + 0x2c]
bswap eax
mov dword [rdi + 0x2c], eax
mov eax, dword [rdi + 0x30]
bswap eax
mov dword [rdi + 0x30], eax
mov eax, dword [rdi + 0x34]
bswap eax
mov dword [rdi + 0x34], eax
mov eax, dword [rdi + 0x38]
bswap eax
mov dword [rdi + 0x38], eax
mov eax, dword [rdi + 0x3c]
bswap eax
mov dword [rdi + 0x3c], eax
mov eax, dword [rdi + 0x40]
bswap eax
mov dword [rdi + 0x40], eax
mov eax, dword [rdi + 0x44]
bswap eax
mov dword [rdi + 0x44], eax
mov eax, dword [rdi + 0x48]
mov ecx, dword [rdi + 0x4c]
bswap eax
bswap ecx
mov dword [rdi + 0x48], ecx
mov dword [rdi + 0x4c], eax
xor eax, eax
mov ecx, dword [rdi + rax*8 + 0x50]
mov edx, dword [rdi + rax*8 + 0x54]
bswap ecx
bswap edx
mov dword [rdi + rax*8 + 0x50], edx
mov dword [rdi + rax*8 + 0x54], ecx
inc rax
cmp rax, 0x20
jne 0x14001238a
mov eax, dword [rdi + 0x150]
mov ecx, dword [rdi + 0x154]
bswap eax
mov dword [rdi + 0x150], eax
bswap ecx
mov dword [rdi + 0x154], ecx
mov eax, dword [rdi + 0x158]
bswap eax
mov dword [rdi + 0x158], eax
mov eax, dword [rdi + 0x15c]
bswap eax
mov dword [rdi + 0x15c], eax
mov eax, dword [rdi + 0x160]
bswap eax
mov dword [rdi + 0x160], eax
mov eax, dword [rdi + 0x164]
bswap eax
mov dword [rdi + 0x164], eax
mov eax, dword [rdi + 0x168]
bswap eax
mov dword [rdi + 0x168], eax
mov eax, dword [rdi + 0x16c]
bswap eax
mov dword [rdi + 0x16c], eax
jmp 0x140012bc3
cmp ebx, 0x258
jne 0x140012bd4
mov ecx, 0x258
call sub.mozglue.dll_void____ptr64___cdecl_operator_new_unsigned_long_long_unsigned___int64__
mov rdi, rax
mov r8d, 0x258
mov rcx, rax
xor edx, edx
call sub.VCRUNTIME140.dll_memset
mov dword [rdi], ebp
mov rdx, rdi
add rdx, 4
mov r8d, 0x254
mov rcx, r14
call fcn.140012c00
test al, al
je 0x140012bcc
mov rcx, qword [rsi + 0x20]
mov rax, qword [rcx]
mov rax, qword [rax + 0x48]
call qword [0x1400ba010]
test rax, rax
je 0x140012a57
cmp byte [rax + 8], 0
je 0x140012bcc
movzx eax, word [rax + 0x18]
cmp r15d, 0x80000
je 0x140012a49
cmp r15d, 0x40000
jne 0x140012bcc
cmp ax, 1
je 0x140012a57
jmp 0x140012bcc
mov ecx, 0x2cc
call sub.mozglue.dll_void____ptr64___cdecl_operator_new_unsigned_long_long_unsigned___int64__
mov rdi, rax
mov r8d, 0x2cc
mov rcx, rax
xor edx, edx
call sub.VCRUNTIME140.dll_memset
mov dword [rdi], ebp
mov rdx, rdi
add rdx, 4
mov r8d, 0x2c8
mov rcx, r14
call fcn.140012c00
test al, al
je 0x140012bcc
mov rcx, qword [rsi + 0x20]
mov rax, qword [rcx]
mov rax, qword [rax + 0x48]
call qword [0x1400ba010]
test rax, rax
je 0x14001252c
cmp byte [rax + 8], 0
je 0x140012bcc
movzx eax, word [rax + 0x18]
cmp eax, 0xa
ja 0x140012bcc
mov ecx, 0x601
bt ecx, eax
jae 0x140012bcc
mov r14, qword [rsi + 0x20]
cmp byte [r14 + 0x62], 0
je 0x14001269c
cmp byte [r14 + 0x60], 0
je 0x14001269c
mov eax, dword [rdi + 4]
mov ecx, dword [rdi + 8]
bswap eax
mov dword [rdi + 4], eax
bswap ecx
mov dword [rdi + 8], ecx
mov eax, dword [rdi + 0xc]
bswap eax
mov dword [rdi + 0xc], eax
mov eax, dword [rdi + 0x10]
bswap eax
mov dword [rdi + 0x10], eax
mov eax, dword [rdi + 0x14]
bswap eax
mov dword [rdi + 0x14], eax
mov eax, dword [rdi + 0x18]
bswap eax
mov dword [rdi + 0x18], eax
mov eax, dword [rdi + 0x1c]
bswap eax
mov dword [rdi + 0x1c], eax
mov eax, dword [rdi + 0x20]
bswap eax
mov dword [rdi + 0x20], eax
mov eax, dword [rdi + 0x24]
bswap eax
mov dword [rdi + 0x24], eax
mov eax, dword [rdi + 0x28]
bswap eax
mov dword [rdi + 0x28], eax
mov eax, dword [rdi + 0x2c]
bswap eax
mov dword [rdi + 0x2c], eax
mov eax, dword [rdi + 0x30]
bswap eax
mov dword [rdi + 0x30], eax
mov eax, dword [rdi + 0x34]
bswap eax
mov dword [rdi + 0x34], eax
mov eax, dword [rdi + 0x88]
bswap eax
mov dword [rdi + 0x88], eax
mov eax, dword [rdi + 0x8c]
bswap eax
mov dword [rdi + 0x8c], eax
mov eax, dword [rdi + 0x90]
bswap eax
mov dword [rdi + 0x90], eax
mov eax, dword [rdi + 0x94]
bswap eax
mov dword [rdi + 0x94], eax
mov eax, dword [rdi + 0x98]
bswap eax
mov dword [rdi + 0x98], eax
mov eax, dword [rdi + 0x9c]
bswap eax
mov dword [rdi + 0x9c], eax
mov eax, dword [rdi + 0xa0]
bswap eax
mov dword [rdi + 0xa0], eax
mov eax, dword [rdi + 0xa4]
bswap eax
mov dword [rdi + 0xa4], eax
mov eax, dword [rdi + 0xa8]
bswap eax
mov dword [rdi + 0xa8], eax
mov eax, dword [rdi + 0xac]
bswap eax
mov dword [rdi + 0xac], eax
mov eax, dword [rdi + 0xb0]
bswap eax
mov dword [rdi + 0xb0], eax
mov eax, dword [rdi + 0xb4]
bswap eax
mov dword [rdi + 0xb4], eax
mov eax, dword [rdi + 0xb8]
bswap eax
mov dword [rdi + 0xb8], eax
mov eax, dword [rdi + 0xbc]
bswap eax
mov dword [rdi + 0xbc], eax
mov eax, dword [rdi + 0xc0]
bswap eax
mov dword [rdi + 0xc0], eax
mov eax, dword [rdi + 0xc4]
bswap eax
mov dword [rdi + 0xc4], eax
mov eax, dword [rdi + 0xc8]
bswap eax
mov dword [rdi + 0xc8], eax
mov qword [rsi + 0x10], rdi
mov edx, 0xfffffd33
cmp byte [r14 + 0x62], 0
je 0x140011fd3
mov rcx, qword [r14 + 0x58]
test rcx, rcx
je 0x140011fd3
lea rdi, [rsp + 0x28]
mov rdx, rdi
call qword [sym.imp.MSVCP140.dll_public:_class_std::fpos_struct__Mbstatet____cdecl_std::basic_istream_char__struct_std::char_traits_char__::tellg_void____ptr64]
mov rax, qword [rdi + 8]
add rax, qword [rdi]
movsxd rcx, eax
lea r8d, [rcx - 0x2cc]
cmp rcx, rax
mov edx, 0xfffffd33
jmp 0x140011fcf
cmp ebx, 0x390
jne 0x140012bd4
mov ecx, 0x390
call sub.mozglue.dll_void____ptr64___cdecl_operator_new_unsigned_long_long_unsigned___int64__
mov rdi, rax
mov r8d, 0x390
mov rcx, rax
xor edx, edx
call sub.VCRUNTIME140.dll_memset
mov dword [rdi], ebp
mov rdx, rdi
add rdx, 4
mov r8d, 0x38c
mov rcx, r14
call fcn.140012c00
test al, al
je 0x140012bcc
mov rcx, qword [rsi + 0x20]
mov rax, qword [rcx]
mov rax, qword [rax + 0x48]
call qword [0x1400ba010]
test rax, rax
je 0x14001275c
cmp byte [rax + 8], 0
je 0x140012bcc
cmp word [rax + 0x18], 0xc
jne 0x140012bcc
mov rax, qword [rsi + 0x20]
cmp byte [rax + 0x62], 0
je 0x140012bc3
cmp byte [rax + 0x60], 0
je 0x140012bc3
xor ecx, ecx
mov edx, dword [rdi + rcx*8 + 8]
mov r8d, dword [rdi + rcx*8 + 0xc]
bswap edx
bswap r8d
mov dword [rdi + rcx*8 + 8], r8d
mov dword [rdi + rcx*8 + 0xc], edx
inc rcx
cmp rcx, 0x21
jne 0x140012776
mov ecx, dword [rdi + 4]
bswap ecx
mov dword [rdi + 4], ecx
mov ecx, dword [rdi + 0x314]
bswap ecx
mov dword [rdi + 0x314], ecx
mov ecx, dword [rdi + 0x310]
bswap ecx
mov dword [rdi + 0x310], ecx
xor ecx, ecx
cmp byte [rax + 0x62], 0
je 0x1400127e1
cmp byte [rax + 0x61], 0
je 0x1400127e1
mov r8d, dword [rdi + rcx + 0x118]
mov edx, dword [rdi + rcx + 0x110]
mov r9d, dword [rdi + rcx + 0x114]
jmp 0x140012800
mov r8, qword [rdi + rcx + 0x110]
mov rdx, qword [rdi + rcx + 0x118]
mov qword [rdi + rcx + 0x118], r8
mov r9, rdx
shr r9, 0x20
bswap r8d
mov r10d, dword [rdi + rcx + 0x11c]
bswap r10d
mov dword [rdi + rcx + 0x118], r10d
mov dword [rdi + rcx + 0x11c], r8d
bswap edx
bswap r9d
mov dword [rdi + rcx + 0x110], r9d
mov dword [rdi + rcx + 0x114], edx
add rcx, 0x10
cmp rcx, 0x200
jne 0x1400127bc
jmp 0x140012bc3
cmp ebx, 0x3ec
jne 0x140012bd4
mov ecx, 0x3ec
call sub.mozglue.dll_void____ptr64___cdecl_operator_new_unsigned_long_long_unsigned___int64__
mov rdi, rax
mov r8d, 0x3ec
mov rcx, rax
xor edx, edx
call sub.VCRUNTIME140.dll_memset
mov dword [rdi], ebp
mov rdx, rdi
add rdx, 4
mov r8d, 0x3e8
mov rcx, r14
call fcn.140012c00
test al, al
je 0x140012bcc
mov rcx, qword [rsi + 0x20]
mov rax, qword [rcx]
mov rax, qword [rax + 0x48]
call qword [0x1400ba010]
test rax, rax
je 0x1400128bb
cmp byte [rax + 8], 0
je 0x140012bcc
cmp word [rax + 0x18], 3
jne 0x140012bcc
mov rax, qword [rsi + 0x20]
cmp byte [rax + 0x62], 0
je 0x140012bc3
cmp byte [rax + 0x60], 0
je 0x140012bc3
mov eax, dword [rdi + 4]
mov ecx, dword [rdi + 8]
bswap eax
mov dword [rdi + 4], eax
bswap ecx
mov dword [rdi + 8], ecx
xor eax, eax
pxor xmm0, xmm0
movdqu xmm1, xmmword [rdi + rax*4 + 0xc]
movdqa xmm2, xmm1
punpckhbw xmm2, xmm0
pshuflw xmm2, xmm2, 0x1b
pshufhw xmm2, xmm2, 0x1b
punpcklbw xmm1, xmm0
pshuflw xmm1, xmm1, 0x1b
pshufhw xmm1, xmm1, 0x1b
packuswb xmm1, xmm2
movdqu xmmword [rdi + rax*4 + 0xc], xmm1
add rax, 4
cmp rax, 0x20
jne 0x1400128e9
mov eax, dword [rdi + 0x8c]
mov ecx, dword [rdi + 0x90]
bswap eax
mov dword [rdi + 0x8c], eax
bswap ecx
mov dword [rdi + 0x90], ecx
mov eax, dword [rdi + 0x94]
bswap eax
mov dword [rdi + 0x94], eax
mov eax, dword [rdi + 0x98]
bswap eax
mov dword [rdi + 0x98], eax
mov eax, dword [rdi + 0x9c]
bswap eax
mov dword [rdi + 0x9c], eax
mov eax, dword [rdi + 0xa0]
bswap eax
mov dword [rdi + 0xa0], eax
xor eax, eax
mov ecx, dword [rdi + rax*8 + 0xa4]
mov edx, dword [rdi + rax*8 + 0xa8]
bswap ecx
bswap edx
mov dword [rdi + rax*8 + 0xa4], edx
mov dword [rdi + rax*8 + 0xa8], ecx
inc rax
cmp rax, 0x20
jne 0x140012979
mov eax, dword [rdi + 0x1a8]
bswap eax
mov dword [rdi + 0x1a8], eax
xor eax, eax
mov ecx, dword [rdi + rax + 0x1b4]
bswap ecx
mov edx, dword [rdi + rax + 0x1b8]
bswap edx
mov dword [rdi + rax + 0x1b4], edx
mov dword [rdi + rax + 0x1b8], ecx
mov ecx, dword [rdi + rax + 0x1ac]
mov edx, dword [rdi + rax + 0x1b0]
bswap ecx
bswap edx
mov dword [rdi + rax + 0x1ac], edx
mov dword [rdi + rax + 0x1b0], ecx
add rax, 0x10
cmp rax, 0x200
jne 0x1400129b2
mov eax, dword [rdi + 0x3b4]
bswap eax
mov ecx, dword [rdi + 0x3b8]
bswap ecx
mov dword [rdi + 0x3b4], ecx
mov dword [rdi + 0x3b8], eax
mov eax, dword [rdi + 0x3ac]
mov ecx, dword [rdi + 0x3b0]
bswap eax
bswap ecx
mov dword [rdi + 0x3ac], ecx
mov dword [rdi + 0x3b0], eax
mov eax, dword [rdi + 0x3cc]
bswap eax
mov dword [rdi + 0x3cc], eax
jmp 0x140012bc3
movzx eax, ax
cmp eax, 0x8004
jne 0x140012bcc
mov rax, qword [rsi + 0x20]
cmp byte [rax + 0x62], 0
je 0x140012bc3
cmp byte [rax + 0x60], 0
je 0x140012bc3
xor eax, eax
mov ecx, dword [rdi + rax*8 + 8]
mov edx, dword [rdi + rax*8 + 0xc]
bswap ecx
bswap edx
mov dword [rdi + rax*8 + 8], edx
mov dword [rdi + rax*8 + 0xc], ecx
inc rax
cmp rax, 0x20
jne 0x140012a71
mov eax, dword [rdi + 0x108]
mov ecx, dword [rdi + 0x10c]
bswap eax
bswap ecx
mov dword [rdi + 0x108], ecx
mov dword [rdi + 0x10c], eax
mov eax, dword [rdi + 0x110]
bswap eax
mov ecx, dword [rdi + 0x114]
bswap ecx
mov dword [rdi + 0x110], ecx
mov dword [rdi + 0x114], eax
mov eax, dword [rdi + 0x118]
bswap eax
mov dword [rdi + 0x118], eax
mov eax, dword [rdi + 0x124]
bswap eax
mov dword [rdi + 0x124], eax
mov eax, dword [rdi + 0x11c]
bswap eax
mov dword [rdi + 0x11c], eax
mov eax, dword [rdi + 0x128]
bswap eax
mov dword [rdi + 0x128], eax
mov eax, dword [rdi + 0x120]
bswap eax
mov dword [rdi + 0x120], eax
mov eax, dword [rdi + 0x12c]
bswap eax
mov dword [rdi + 0x12c], eax
mov eax, dword [rdi + 0x130]
bswap eax
mov dword [rdi + 0x130], eax
mov eax, dword [rdi + 0x138]
mov ecx, dword [rdi + 0x13c]
bswap eax
bswap ecx
mov dword [rdi + 0x138], ecx
mov dword [rdi + 0x13c], eax
mov eax, dword [rdi + 0x140]
mov ecx, dword [rdi + 0x144]
bswap eax
bswap ecx
mov dword [rdi + 0x140], ecx
mov dword [rdi + 0x144], eax
mov eax, dword [rdi + 0x148]
bswap eax
mov dword [rdi + 0x148], eax
mov eax, dword [rdi + 0x14c]
bswap eax
mov dword [rdi + 0x14c], eax
xor eax, eax
mov ecx, dword [rdi + rax*8 + 0x150]
mov edx, dword [rdi + rax*8 + 0x154]
bswap ecx
bswap edx
mov dword [rdi + rax*8 + 0x150], edx
mov dword [rdi + rax*8 + 0x154], ecx
inc rax
cmp rax, 0x20
jne 0x140012b7e
mov eax, dword [rdi + 0x250]
mov ecx, dword [rdi + 0x254]
bswap eax
mov dword [rdi + 0x250], eax
bswap ecx
mov dword [rdi + 0x254], ecx
mov qword [rsi + 0x10], rdi
jmp 0x140011fdd
mov rcx, rdi
call fcn.1400465d0
xor esi, esi
mov rcx, qword [rsp + 0x40]
xor rcx, rsp
call fcn.14003b840
mov eax, esi
add rsp, 0x48
pop rbx
pop rbp
pop rdi
pop rsi
pop r14
pop r15
ret