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

Disassembly:
push r15
push r14
push r12
push rsi
push rdi
push rbp
push rbx
sub rsp, 0x50
mov ebx, edx
mov r12, rcx
mov rax, qword [0x140083010]
xor rax, rsp
mov qword [rsp + 0x48], rax
mov byte [rcx + 8], 0
call fcn.140011bf0
cmp ebx, 0x31c
je 0x140012e96
cmp ebx, 0x488
jne 0x140013142
mov rcx, qword [r12 + 0x20]
lea rdx, [rsp + 0x30]
mov r8d, 8
call fcn.140014290
test al, al
je 0x140014270
mov rbx, qword [r12 + 0x20]
cmp byte [rbx + 0x62], 0
je 0x140012c15
cmp byte [rbx + 0x60], 0
je 0x140012c15
mov eax, dword [rsp + 0x30]
mov ecx, dword [rsp + 0x34]
bswap eax
bswap ecx
mov dword [rsp + 0x30], ecx
mov dword [rsp + 0x34], eax
mov esi, dword [rsp + 0x30]
mov ebp, 0xffffff00
mov eax, 0xffffff00
and eax, esi
mov dword [rsp + 0x2c], 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 ebp, esi
jne 0x140012c66
lea rdx, [rsp + 0x2c]
mov rcx, rbx
call fcn.1400143a0
test al, al
je 0x140014268
mov ebp, dword [rsp + 0x2c]
mov qword [rdi], rbp
cmp ebp, 0x1000000
jne 0x140014268
mov rax, qword [rsp + 0x30]
mov qword [rdi], rax
mov rdx, rdi
add rdx, 8
mov rcx, qword [r12 + 0x20]
mov r8d, 0x480
call fcn.140014290
test al, al
je 0x140014268
mov rcx, qword [r12 + 0x20]
mov rax, qword [rcx]
mov rax, qword [rax + 0x48]
call qword [case.0x14003aeae.0]
test rax, rax
je 0x140012cc9
cmp byte [rax + 8], 0
je 0x140014268
movzx eax, word [rax + 0x18]
cmp eax, 0x8002
jne 0x140014268
mov rax, qword [r12 + 0x20]
cmp byte [rax + 0x62], 0
je 0x140012e7a
cmp byte [rax + 0x60], 0
je 0x140012e7a
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 0x140012d04
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 0x140012daf
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 0x140012de8
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 [r12 + 0x18], eax
shr rax, 0x20
jne 0x140014268
mov qword [r12 + 0x10], rdi
jmp 0x14001367f
mov rcx, qword [r12 + 0x20]
lea rdx, [rsp + 0x30]
mov r8d, 8
call fcn.140014290
test al, al
je 0x140014270
mov rbx, qword [r12 + 0x20]
cmp byte [rbx + 0x62], 0
je 0x140012ed8
cmp byte [rbx + 0x60], 0
je 0x140012ed8
mov eax, dword [rsp + 0x30]
mov ecx, dword [rsp + 0x34]
bswap eax
bswap ecx
mov dword [rsp + 0x30], ecx
mov dword [rsp + 0x34], 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 + 0x30]
mov dword [rsp + 0x2c], eax
jne 0x140012f20
lea rdx, [rsp + 0x2c]
mov rcx, rbx
call fcn.1400143a0
test al, al
je 0x140014268
mov eax, dword [rsp + 0x2c]
mov qword [rdi], rax
cmp eax, 0x80000000
jne 0x140014268
mov rax, qword [rsp + 0x30]
mov qword [rdi], rax
lea r14, [rdi + 8]
mov rcx, qword [r12 + 0x20]
mov r8d, 0x314
mov rdx, r14
call fcn.140014290
test al, al
je 0x140014268
mov rcx, qword [r12 + 0x20]
mov rax, qword [rcx]
mov rax, qword [rax + 0x48]
call qword [case.0x14003aeae.0]
test rax, rax
je 0x140012f82
cmp byte [rax + 8], 0
je 0x140014268
movzx eax, word [rax + 0x18]
cmp eax, 0x8003
jne 0x140014268
mov rax, qword [r12 + 0x20]
cmp byte [rax + 0x62], 0
je 0x140013060
cmp byte [rax + 0x60], 0
je 0x140013060
xor ecx, ecx
mov edx, dword [rdi + rcx*8 + 8]
mov ebp, dword [rdi + rcx*8 + 0xc]
bswap edx
bswap ebp
mov dword [rdi + rcx*8 + 8], ebp
mov dword [rdi + rcx*8 + 0xc], edx
inc rcx
cmp rcx, 0x21
jne 0x140012f9d
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 0x140013009
cmp byte [rax + 0x61], 0
je 0x140013009
mov ebp, dword [rdi + rcx + 0x124]
mov ebx, dword [rdi + rcx + 0x11c]
mov edx, dword [rdi + rcx + 0x120]
jmp 0x140013028
mov rbp, qword [rdi + rcx + 0x11c]
mov rbx, qword [rdi + rcx + 0x124]
mov qword [rdi + rcx + 0x124], rbp
mov rdx, rbx
shr rdx, 0x20
bswap ebp
mov esi, dword [rdi + rcx + 0x128]
bswap esi
mov dword [rdi + rcx + 0x124], esi
mov dword [rdi + rcx + 0x128], ebp
bswap ebx
bswap edx
mov dword [rdi + rcx + 0x11c], edx
mov dword [rdi + rcx + 0x120], ebx
add rcx, 0x10
cmp rcx, 0x200
jne 0x140012fe6
mov ecx, 0x390
call sub.mozglue.dll_void____ptr64___cdecl_operator_new_unsigned_long_long_unsigned___int64__
mov rbx, 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 [rbx], ebp
mov eax, dword [rdi + 0x110]
mov dword [rbx + 4], eax
lea rcx, [rbx + 8]
mov r8d, 0x108
mov rdx, r14
call sub.VCRUNTIME140.dll_memcpy
lea rcx, [rbx + 0x110]
mov rdx, rdi
add rdx, 0x11c
mov r8d, 0x200
call sub.VCRUNTIME140.dll_memcpy
mov eax, dword [rdi + 0x118]
mov dword [rbx + 0x310], eax
mov eax, dword [rdi + 0x114]
mov dword [rbx + 0x314], eax
pxor xmm0, xmm0
movdqu xmmword [rbx + 0x378], xmm0
movdqu xmmword [rbx + 0x368], xmm0
movdqu xmmword [rbx + 0x358], xmm0
movdqu xmmword [rbx + 0x348], xmm0
movdqu xmmword [rbx + 0x338], xmm0
movdqu xmmword [rbx + 0x328], xmm0
movdqu xmmword [rbx + 0x318], xmm0
mov qword [rbx + 0x388], 0
mov dword [r12 + 0x18], ebp
mov qword [r12 + 0x10], rbx
mov rcx, rdi
call sub.mozglue.dll_void___cdecl_operator_delete_void____ptr64_
jmp 0x14001367f
lea rdx, [rsp + 0x2c]
mov dword [rdx], 0
mov rcx, qword [r12 + 0x20]
call fcn.1400143a0
test al, al
je 0x140014270
mov dword [rsp + 0x28], 0
mov ebp, dword [rsp + 0x2c]
mov r14, qword [r12 + 0x20]
cmp ebp, 0x100000
jne 0x1400131cb
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.140014290
test al, al
je 0x140014268
mov r14, qword [r12 + 0x20]
cmp byte [r14 + 0x62], 0
je 0x14001321f
cmp byte [r14 + 0x60], 0
je 0x14001321f
mov eax, dword [rdi + 0x30]
bswap eax
mov dword [rdi + 0x30], eax
jmp 0x140013222
lea rdx, [rsp + 0x28]
mov r8d, 4
mov rcx, r14
call fcn.140014290
test al, al
je 0x140014270
mov r14, qword [r12 + 0x20]
cmp byte [r14 + 0x62], 0
mov r15d, dword [rsp + 0x28]
je 0x140013206
cmp byte [r14 + 0x60], 0
je 0x140013206
bswap r15d
mov dword [rsp + 0x28], r15d
mov eax, r15d
and eax, 0xffffff00
je 0x14001368d
mov dword [rsp + 0x2c], eax
mov ebp, eax
jmp 0x14001369f
mov eax, dword [rdi + 0x30]
mov dword [rsp + 0x28], eax
mov ecx, eax
and ecx, 0xffffff00
cmp ecx, 0x100000
jne 0x140014268
mov ecx, 0x308
mov rdx, qword [rdi + rcx - 8]
mov rbp, qword [rdi + rcx]
mov qword [rdi + rcx], rdx
mov qword [rdi + rcx - 8], rbp
add rcx, 0x10
cmp rcx, 0x4a8
jne 0x14001323f
cmp byte [r14 + 0x62], 0
je 0x140013624
cmp byte [r14 + 0x60], 0
je 0x140013624
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 0x14001352d
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 [r12 + 0x18], eax
mov qword [r12 + 0x10], rdi
mov edx, 0xfffffb2f
cmp byte [r14 + 0x62], 0
je 0x14001366c
mov rcx, qword [r14 + 0x58]
test rcx, rcx
je 0x14001366c
lea rdi, [rsp + 0x30]
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 ebp, [rcx - 0x4d0]
cmp rcx, rax
mov edx, 0xfffffb2f
cmove edx, ebp
add edx, ebx
mov rcx, r14
call fcn.140014540
mov eax, dword [rsp + 0x28]
mov dword [r12 + 0x18], eax
mov byte [r12 + 8], 1
mov sil, 1
jmp 0x140014272
test r15b, 0x40
jne 0x1400138eb
or r15d, ebp
mov dword [rsp + 0x28], r15d
cmp ebp, 0x3fffff
jg 0x1400136d0
cmp ebp, 0x7ffff
jg 0x1400138b5
cmp ebp, 0x10000
je 0x140013b56
cmp ebp, 0x40000
je 0x140013abd
jmp 0x140014270
cmp ebp, 0x1fffffff
jg 0x1400138d2
cmp ebp, 0x400000
je 0x140013d8d
cmp ebp, 0x10000000
jne 0x140014270
cmp ebx, 0x248
jne 0x140014270
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], r15d
mov rdx, rdi
add rdx, 4
mov r8d, 0x244
mov rcx, r14
call fcn.140014290
test al, al
je 0x140014268
mov rcx, qword [r12 + 0x20]
mov rax, qword [rcx]
mov rax, qword [rax + 0x48]
call qword [case.0x14003aeae.0]
test rax, rax
je 0x14001376d
cmp byte [rax + 8], 0
je 0x140014268
movzx eax, word [rax + 0x18]
cmp eax, 0x8001
jne 0x140014268
mov rax, qword [r12 + 0x20]
cmp byte [rax + 0x62], 0
je 0x14001425e
cmp byte [rax + 0x60], 0
je 0x14001425e
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 0x140013788
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 0x14001384f
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 0x14001425e
cmp ebp, 0x80000
je 0x140013abd
cmp ebp, 0x100000
je 0x140013178
jmp 0x140014270
cmp ebp, 0x20000000
je 0x140013edf
cmp ebp, 0x40000000
je 0x140013903
jmp 0x140014270
and r15d, 0xbfffffbf
mov eax, 0x40000000
or r15d, eax
mov dword [rsp + 0x28], r15d
mov dword [rsp + 0x2c], eax
cmp ebx, 0x170
jne 0x140014270
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], r15d
mov rdx, rdi
add rdx, 4
mov r8d, 0x16c
mov rcx, r14
call fcn.140014290
test al, al
je 0x140014268
mov rcx, qword [r12 + 0x20]
mov rax, qword [rcx]
mov rax, qword [rax + 0x48]
call qword [case.0x14003aeae.0]
test rax, rax
je 0x140013978
cmp byte [rax + 8], 0
je 0x140014268
cmp word [rax + 0x18], 5
jne 0x140014268
mov rax, qword [r12 + 0x20]
cmp byte [rax + 0x62], 0
je 0x14001425e
cmp byte [rax + 0x60], 0
je 0x14001425e
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 0x140013a2b
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 0x14001425e
cmp ebx, 0x258
jne 0x140014270
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], r15d
mov rdx, rdi
add rdx, 4
mov r8d, 0x254
mov rcx, r14
call fcn.140014290
test al, al
je 0x140014268
mov rcx, qword [r12 + 0x20]
mov rax, qword [rcx]
mov rax, qword [rax + 0x48]
call qword [case.0x14003aeae.0]
test rax, rax
je 0x1400140f1
cmp byte [rax + 8], 0
je 0x140014268
movzx eax, word [rax + 0x18]
cmp ebp, 0x80000
je 0x1400140e3
cmp ebp, 0x40000
jne 0x140014268
cmp ax, 1
je 0x1400140f1
jmp 0x140014268
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], r15d
mov rdx, rdi
add rdx, 4
mov r8d, 0x2c8
mov rcx, r14
call fcn.140014290
test al, al
je 0x140014268
mov rcx, qword [r12 + 0x20]
mov rax, qword [rcx]
mov rax, qword [rax + 0x48]
call qword [case.0x14003aeae.0]
test rax, rax
je 0x140013bcf
cmp byte [rax + 8], 0
je 0x140014268
movzx eax, word [rax + 0x18]
cmp eax, 0xa
ja 0x140014268
mov ecx, 0x601
bt ecx, eax
jae 0x140014268
mov r14, qword [r12 + 0x20]
cmp byte [r14 + 0x62], 0
je 0x140013d40
cmp byte [r14 + 0x60], 0
je 0x140013d40
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 [r12 + 0x10], rdi
mov edx, 0xfffffd33
cmp byte [r14 + 0x62], 0
je 0x14001366c
mov rcx, qword [r14 + 0x58]
test rcx, rcx
je 0x14001366c
lea rdi, [rsp + 0x30]
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 ebp, [rcx - 0x2cc]
cmp rcx, rax
mov edx, 0xfffffd33
jmp 0x140013669
cmp ebx, 0x390
jne 0x140014270
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], r15d
mov rdx, rdi
add rdx, 4
mov r8d, 0x38c
mov rcx, r14
call fcn.140014290
test al, al
je 0x140014268
mov rcx, qword [r12 + 0x20]
mov rax, qword [rcx]
mov rax, qword [rax + 0x48]
call qword [case.0x14003aeae.0]
test rax, rax
je 0x140013e02
cmp byte [rax + 8], 0
je 0x140014268
cmp word [rax + 0x18], 0xc
jne 0x140014268
mov rax, qword [r12 + 0x20]
cmp byte [rax + 0x62], 0
je 0x14001425e
cmp byte [rax + 0x60], 0
je 0x14001425e
xor ecx, ecx
mov edx, dword [rdi + rcx*8 + 8]
mov ebp, dword [rdi + rcx*8 + 0xc]
bswap edx
bswap ebp
mov dword [rdi + rcx*8 + 8], ebp
mov dword [rdi + rcx*8 + 0xc], edx
inc rcx
cmp rcx, 0x21
jne 0x140013e1d
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 0x140013e83
cmp byte [rax + 0x61], 0
je 0x140013e83
mov ebp, dword [rdi + rcx + 0x118]
mov ebx, dword [rdi + rcx + 0x110]
mov edx, dword [rdi + rcx + 0x114]
jmp 0x140013ea2
mov rbp, qword [rdi + rcx + 0x110]
mov rbx, qword [rdi + rcx + 0x118]
mov qword [rdi + rcx + 0x118], rbp
mov rdx, rbx
shr rdx, 0x20
bswap ebp
mov esi, dword [rdi + rcx + 0x11c]
bswap esi
mov dword [rdi + rcx + 0x118], esi
mov dword [rdi + rcx + 0x11c], ebp
bswap ebx
bswap edx
mov dword [rdi + rcx + 0x110], edx
mov dword [rdi + rcx + 0x114], ebx
add rcx, 0x10
cmp rcx, 0x200
jne 0x140013e60
jmp 0x14001425e
cmp ebx, 0x3ec
jne 0x140014270
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], r15d
mov rdx, rdi
add rdx, 4
mov r8d, 0x3e8
mov rcx, r14
call fcn.140014290
test al, al
je 0x140014268
mov rcx, qword [r12 + 0x20]
mov rax, qword [rcx]
mov rax, qword [rax + 0x48]
call qword [case.0x14003aeae.0]
test rax, rax
je 0x140013f54
cmp byte [rax + 8], 0
je 0x140014268
cmp word [rax + 0x18], 3
jne 0x140014268
mov rax, qword [r12 + 0x20]
cmp byte [rax + 0x62], 0
je 0x14001425e
cmp byte [rax + 0x60], 0
je 0x14001425e
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 0x140013f83
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 0x140014013
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 0x14001404c
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 0x14001425e
movzx eax, ax
cmp eax, 0x8004
jne 0x140014268
mov rax, qword [r12 + 0x20]
cmp byte [rax + 0x62], 0
je 0x14001425e
cmp byte [rax + 0x60], 0
je 0x14001425e
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 0x14001410c
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 0x140014219
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 [r12 + 0x10], rdi
jmp 0x140013676
mov rcx, rdi
call sub.mozglue.dll_void___cdecl_operator_delete_void____ptr64_
xor esi, esi
mov rcx, qword [rsp + 0x48]
xor rcx, rsp
call fcn.14003ba60
mov eax, esi
add rsp, 0x50
pop rbx
pop rbp
pop rdi
pop rsi
pop r12
pop r14
pop r15
ret