Function at 0x140013030
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.140012090
cmp ebx, 0x31c
je 0x140013336
cmp ebx, 0x488
jne 0x1400135e2
mov rcx, qword [r12 + 0x20]
lea rdx, [rsp + 0x30]
mov r8d, 8
call fcn.140014730
test al, al
je 0x140014710
mov rbx, qword [r12 + 0x20]
cmp byte [rbx + 0x62], 0
je 0x1400130b5
cmp byte [rbx + 0x60], 0
je 0x1400130b5
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 0x140013106
lea rdx, [rsp + 0x2c]
mov rcx, rbx
call fcn.140014840
test al, al
je 0x140014708
mov ebp, dword [rsp + 0x2c]
mov qword [rdi], rbp
cmp ebp, 0x1000000
jne 0x140014708
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.140014730
test al, al
je 0x140014708
mov rcx, qword [r12 + 0x20]
mov rax, qword [rcx]
mov rax, qword [rax + 0x48]
call qword [case.0x14003b30e.0]
test rax, rax
je 0x140013169
cmp byte [rax + 8], 0
je 0x140014708
movzx eax, word [rax + 0x18]
cmp eax, 0x8002
jne 0x140014708
mov rax, qword [r12 + 0x20]
cmp byte [rax + 0x62], 0
je 0x14001331a
cmp byte [rax + 0x60], 0
je 0x14001331a
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 0x1400131a4
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 0x14001324f
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 0x140013288
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 0x140014708
mov qword [r12 + 0x10], rdi
jmp 0x140013b1f
mov rcx, qword [r12 + 0x20]
lea rdx, [rsp + 0x30]
mov r8d, 8
call fcn.140014730
test al, al
je 0x140014710
mov rbx, qword [r12 + 0x20]
cmp byte [rbx + 0x62], 0
je 0x140013378
cmp byte [rbx + 0x60], 0
je 0x140013378
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 0x1400133c0
lea rdx, [rsp + 0x2c]
mov rcx, rbx
call fcn.140014840
test al, al
je 0x140014708
mov eax, dword [rsp + 0x2c]
mov qword [rdi], rax
cmp eax, 0x80000000
jne 0x140014708
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.140014730
test al, al
je 0x140014708
mov rcx, qword [r12 + 0x20]
mov rax, qword [rcx]
mov rax, qword [rax + 0x48]
call qword [case.0x14003b30e.0]
test rax, rax
je 0x140013422
cmp byte [rax + 8], 0
je 0x140014708
movzx eax, word [rax + 0x18]
cmp eax, 0x8003
jne 0x140014708
mov rax, qword [r12 + 0x20]
cmp byte [rax + 0x62], 0
je 0x140013500
cmp byte [rax + 0x60], 0
je 0x140013500
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 0x14001343d
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 0x1400134a9
cmp byte [rax + 0x61], 0
je 0x1400134a9
mov ebp, dword [rdi + rcx + 0x124]
mov ebx, dword [rdi + rcx + 0x11c]
mov edx, dword [rdi + rcx + 0x120]
jmp 0x1400134c8
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 0x140013486
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 fcn.140045850
jmp 0x140013b1f
lea rdx, [rsp + 0x2c]
mov dword [rdx], 0
mov rcx, qword [r12 + 0x20]
call fcn.140014840
test al, al
je 0x140014710
mov dword [rsp + 0x28], 0
mov ebp, dword [rsp + 0x2c]
mov r14, qword [r12 + 0x20]
cmp ebp, 0x100000
jne 0x14001366b
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.140014730
test al, al
je 0x140014708
mov r14, qword [r12 + 0x20]
cmp byte [r14 + 0x62], 0
je 0x1400136bf
cmp byte [r14 + 0x60], 0
je 0x1400136bf
mov eax, dword [rdi + 0x30]
bswap eax
mov dword [rdi + 0x30], eax
jmp 0x1400136c2
lea rdx, [rsp + 0x28]
mov r8d, 4
mov rcx, r14
call fcn.140014730
test al, al
je 0x140014710
mov r14, qword [r12 + 0x20]
cmp byte [r14 + 0x62], 0
mov r15d, dword [rsp + 0x28]
je 0x1400136a6
cmp byte [r14 + 0x60], 0
je 0x1400136a6
bswap r15d
mov dword [rsp + 0x28], r15d
mov eax, r15d
and eax, 0xffffff00
je 0x140013b2d
mov dword [rsp + 0x2c], eax
mov ebp, eax
jmp 0x140013b3f
mov eax, dword [rdi + 0x30]
mov dword [rsp + 0x28], eax
mov ecx, eax
and ecx, 0xffffff00
cmp ecx, 0x100000
jne 0x140014708
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 0x1400136df
cmp byte [r14 + 0x62], 0
je 0x140013ac4
cmp byte [r14 + 0x60], 0
je 0x140013ac4
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 0x1400139cd
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 0x140013b0c
mov rcx, qword [r14 + 0x58]
test rcx, rcx
je 0x140013b0c
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.1400149e0
mov eax, dword [rsp + 0x28]
mov dword [r12 + 0x18], eax
mov byte [r12 + 8], 1
mov sil, 1
jmp 0x140014712
test r15b, 0x40
jne 0x140013d8b
or r15d, ebp
mov dword [rsp + 0x28], r15d
cmp ebp, 0x3fffff
jg 0x140013b70
cmp ebp, 0x7ffff
jg 0x140013d55
cmp ebp, 0x10000
je 0x140013ff6
cmp ebp, 0x40000
je 0x140013f5d
jmp 0x140014710
cmp ebp, 0x1fffffff
jg 0x140013d72
cmp ebp, 0x400000
je 0x14001422d
cmp ebp, 0x10000000
jne 0x140014710
cmp ebx, 0x248
jne 0x140014710
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.140014730
test al, al
je 0x140014708
mov rcx, qword [r12 + 0x20]
mov rax, qword [rcx]
mov rax, qword [rax + 0x48]
call qword [case.0x14003b30e.0]
test rax, rax
je 0x140013c0d
cmp byte [rax + 8], 0
je 0x140014708
movzx eax, word [rax + 0x18]
cmp eax, 0x8001
jne 0x140014708
mov rax, qword [r12 + 0x20]
cmp byte [rax + 0x62], 0
je 0x1400146fe
cmp byte [rax + 0x60], 0
je 0x1400146fe
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 0x140013c28
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 0x140013cef
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 0x1400146fe
cmp ebp, 0x80000
je 0x140013f5d
cmp ebp, 0x100000
je 0x140013618
jmp 0x140014710
cmp ebp, 0x20000000
je 0x14001437f
cmp ebp, 0x40000000
je 0x140013da3
jmp 0x140014710
and r15d, 0xbfffffbf
mov eax, 0x40000000
or r15d, eax
mov dword [rsp + 0x28], r15d
mov dword [rsp + 0x2c], eax
cmp ebx, 0x170
jne 0x140014710
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.140014730
test al, al
je 0x140014708
mov rcx, qword [r12 + 0x20]
mov rax, qword [rcx]
mov rax, qword [rax + 0x48]
call qword [case.0x14003b30e.0]
test rax, rax
je 0x140013e18
cmp byte [rax + 8], 0
je 0x140014708
cmp word [rax + 0x18], 5
jne 0x140014708
mov rax, qword [r12 + 0x20]
cmp byte [rax + 0x62], 0
je 0x1400146fe
cmp byte [rax + 0x60], 0
je 0x1400146fe
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 0x140013ecb
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 0x1400146fe
cmp ebx, 0x258
jne 0x140014710
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.140014730
test al, al
je 0x140014708
mov rcx, qword [r12 + 0x20]
mov rax, qword [rcx]
mov rax, qword [rax + 0x48]
call qword [case.0x14003b30e.0]
test rax, rax
je 0x140014591
cmp byte [rax + 8], 0
je 0x140014708
movzx eax, word [rax + 0x18]
cmp ebp, 0x80000
je 0x140014583
cmp ebp, 0x40000
jne 0x140014708
cmp ax, 1
je 0x140014591
jmp 0x140014708
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.140014730
test al, al
je 0x140014708
mov rcx, qword [r12 + 0x20]
mov rax, qword [rcx]
mov rax, qword [rax + 0x48]
call qword [case.0x14003b30e.0]
test rax, rax
je 0x14001406f
cmp byte [rax + 8], 0
je 0x140014708
movzx eax, word [rax + 0x18]
cmp eax, 0xa
ja 0x140014708
mov ecx, 0x601
bt ecx, eax
jae 0x140014708
mov r14, qword [r12 + 0x20]
cmp byte [r14 + 0x62], 0
je 0x1400141e0
cmp byte [r14 + 0x60], 0
je 0x1400141e0
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 0x140013b0c
mov rcx, qword [r14 + 0x58]
test rcx, rcx
je 0x140013b0c
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 0x140013b09
cmp ebx, 0x390
jne 0x140014710
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.140014730
test al, al
je 0x140014708
mov rcx, qword [r12 + 0x20]
mov rax, qword [rcx]
mov rax, qword [rax + 0x48]
call qword [case.0x14003b30e.0]
test rax, rax
je 0x1400142a2
cmp byte [rax + 8], 0
je 0x140014708
cmp word [rax + 0x18], 0xc
jne 0x140014708
mov rax, qword [r12 + 0x20]
cmp byte [rax + 0x62], 0
je 0x1400146fe
cmp byte [rax + 0x60], 0
je 0x1400146fe
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 0x1400142bd
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 0x140014323
cmp byte [rax + 0x61], 0
je 0x140014323
mov ebp, dword [rdi + rcx + 0x118]
mov ebx, dword [rdi + rcx + 0x110]
mov edx, dword [rdi + rcx + 0x114]
jmp 0x140014342
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 0x140014300
jmp 0x1400146fe
cmp ebx, 0x3ec
jne 0x140014710
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.140014730
test al, al
je 0x140014708
mov rcx, qword [r12 + 0x20]
mov rax, qword [rcx]
mov rax, qword [rax + 0x48]
call qword [case.0x14003b30e.0]
test rax, rax
je 0x1400143f4
cmp byte [rax + 8], 0
je 0x140014708
cmp word [rax + 0x18], 3
jne 0x140014708
mov rax, qword [r12 + 0x20]
cmp byte [rax + 0x62], 0
je 0x1400146fe
cmp byte [rax + 0x60], 0
je 0x1400146fe
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 0x140014423
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 0x1400144b3
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 0x1400144ec
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 0x1400146fe
movzx eax, ax
cmp eax, 0x8004
jne 0x140014708
mov rax, qword [r12 + 0x20]
cmp byte [rax + 0x62], 0
je 0x1400146fe
cmp byte [rax + 0x60], 0
je 0x1400146fe
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 0x1400145ac
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 0x1400146b9
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 0x140013b16
mov rcx, rdi
call fcn.140045850
xor esi, esi
mov rcx, qword [rsp + 0x48]
xor rcx, rsp
call fcn.14003bec0
mov eax, esi
add rsp, 0x50
pop rbx
pop rbp
pop rdi
pop rsi
pop r12
pop r14
pop r15
ret