Function at 0x14000fed0
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 edi, edx
mov r12, rcx
mov rax, qword [0x140063010]
xor rax, rsp
mov qword [rsp + 0x48], rax
mov byte [rcx + 8], 0
call fcn.14000edc0
cmp edi, 0x31c
je 0x1400101d6
cmp edi, 0x488
jne 0x140010492
mov rcx, qword [r12 + 0x20]
lea rdx, [rsp + 0x30]
mov r8d, 8
call fcn.140011640
test al, al
je 0x14001161f
mov rbx, qword [r12 + 0x20]
cmp byte [rbx + 0x62], 0
je 0x14000ff55
cmp byte [rbx + 0x60], 0
je 0x14000ff55
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 0x14000ffa6
lea rdx, [rsp + 0x2c]
mov rcx, rbx
call fcn.140011750
test al, al
je 0x140011617
mov ebp, dword [rsp + 0x2c]
or qword [rdi], rbp
cmp ebp, 0x1000000
jne 0x140011617
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.140011640
test al, al
je 0x140011617
mov rcx, qword [r12 + 0x20]
mov rax, qword [rcx]
mov rax, qword [rax + 0x48]
call qword [case.0x14004ab96.0]
test rax, rax
je 0x140010009
cmp byte [rax + 8], 0
je 0x140011617
movzx eax, word [rax + 0x18]
cmp eax, 0x8002
jne 0x140011617
mov rax, qword [r12 + 0x20]
cmp byte [rax + 0x62], 0
je 0x1400101ba
cmp byte [rax + 0x60], 0
je 0x1400101ba
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 0x140010044
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 0x1400100ef
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 0x140010128
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 0x140011617
mov qword [r12 + 0x10], rdi
jmp 0x140010c09
mov rcx, qword [r12 + 0x20]
lea rdx, [rsp + 0x30]
mov r8d, 8
call fcn.140011640
test al, al
je 0x14001161f
mov rbx, qword [r12 + 0x20]
cmp byte [rbx + 0x62], 0
je 0x140010218
cmp byte [rbx + 0x60], 0
je 0x140010218
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 r15, 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 0x140010260
lea rdx, [rsp + 0x2c]
mov rcx, rbx
call fcn.140011750
test al, al
je 0x14001096f
mov eax, dword [rsp + 0x2c]
or qword [r15], rax
cmp eax, 0x80000000
jne 0x14001096f
mov rax, qword [rsp + 0x30]
mov qword [r15], rax
lea r14, [r15 + 8]
mov rcx, qword [r12 + 0x20]
mov r8d, 0x314
mov rdx, r14
call fcn.140011640
test al, al
je 0x14001096f
mov rcx, qword [r12 + 0x20]
mov rax, qword [rcx]
mov rax, qword [rax + 0x48]
call qword [case.0x14004ab96.0]
test rax, rax
je 0x1400102c2
cmp byte [rax + 8], 0
je 0x14001096f
movzx eax, word [rax + 0x18]
cmp eax, 0x8003
jne 0x14001096f
mov r8, qword [r12 + 0x20]
cmp byte [r8 + 0x62], 0
je 0x1400103ad
cmp byte [r8 + 0x60], 0
je 0x1400103ad
xor ecx, ecx
mov eax, dword [r15 + rcx*8 + 8]
mov edx, dword [r15 + rcx*8 + 0xc]
bswap eax
bswap edx
mov dword [r15 + rcx*8 + 8], edx
mov dword [r15 + rcx*8 + 0xc], eax
inc rcx
cmp rcx, 0x21
jne 0x1400102df
mov eax, dword [r15 + 0x110]
mov ecx, dword [r15 + 0x114]
bswap eax
mov dword [r15 + 0x110], eax
bswap ecx
mov dword [r15 + 0x114], ecx
mov eax, dword [r15 + 0x118]
bswap eax
mov dword [r15 + 0x118], eax
lea rcx, [r15 + 0x124]
mov edx, 0x20
xor ebp, ebp
cmp byte [r8 + 0x62], 0
je 0x140010364
lea rbx, [rcx - 8]
cmp byte [r8 + 0x61], 0
je 0x140010376
mov rax, rbp
shl rax, 4
add rax, r15
add rax, 0x124
mov esi, dword [rcx]
jmp 0x140010387
mov rax, rbp
shl rax, 4
lea rbx, [r15 + rax]
add rbx, 0x11c
mov rsi, qword [rcx - 8]
mov rax, qword [rcx]
mov qword [rcx], rsi
mov qword [rcx - 8], rax
mov rax, rcx
bswap esi
mov edi, dword [rax + 4]
bswap edi
mov dword [rax], edi
mov dword [rax + 4], esi
mov eax, dword [rbx]
mov edi, dword [rbx + 4]
bswap eax
bswap edi
mov dword [rbx], edi
mov dword [rbx + 4], eax
inc rbp
add rcx, 0x10
dec rdx
jne 0x14001033e
mov ecx, 0x390
call sub.mozglue.dll_void____ptr64___cdecl_operator_new_unsigned_long_long_unsigned___int64__
mov rbx, rax
mov rax, qword [r15]
xor ecx, ecx
test eax, 0x80000002
setne cl
lea ebp, [rcx + rcx*2]
mov ecx, ebp
or ecx, 0x400000
or ebp, 0x400004
test eax, 0x80000004
cmove ebp, ecx
mov dword [rbx], ebp
mov eax, dword [r15 + 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, r15
add rdx, 0x11c
mov r8d, 0x200
call sub.VCRUNTIME140.dll_memcpy
mov eax, dword [r15 + 0x118]
mov dword [rbx + 0x310], eax
mov eax, dword [r15 + 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, r15
call fcn.14004b9c0
jmp 0x140010c09
lea rdx, [rsp + 0x2c]
mov dword [rdx], 0
mov rcx, qword [r12 + 0x20]
call fcn.140011750
test al, al
je 0x14001161f
mov dword [rsp + 0x28], 0
mov ebx, dword [rsp + 0x2c]
cmp ebx, 0x100000
jne 0x140010977
mov ecx, 0x4d0
call sub.mozglue.dll_void____ptr64___cdecl_operator_new_unsigned_long_long_unsigned___int64__
mov rbx, rax
mov r8d, 0x4d0
mov rcx, rax
xor edx, edx
call sub.VCRUNTIME140.dll_memset
mov rcx, qword [r12 + 0x20]
mov r8d, 0x4d0
mov rdx, rbx
call fcn.140011640
test al, al
je 0x1400109c6
mov r14, qword [r12 + 0x20]
cmp byte [r14 + 0x62], 0
je 0x14001051a
cmp byte [r14 + 0x60], 0
je 0x14001051a
mov eax, dword [rbx + 0x30]
bswap eax
mov dword [rbx + 0x30], eax
mov eax, dword [rbx + 0x30]
mov dword [rsp + 0x28], eax
mov ecx, eax
and ecx, 0xffffff00
cmp ecx, 0x100000
jne 0x1400109c6
mov ecx, 0x308
mov rdx, qword [rbx + rcx - 8]
mov rbp, qword [rbx + rcx]
mov qword [rbx + rcx], rdx
mov qword [rbx + rcx - 8], rbp
add rcx, 0x10
cmp rcx, 0x4a8
jne 0x14001053a
cmp byte [r14 + 0x62], 0
je 0x14001091d
cmp byte [r14 + 0x60], 0
je 0x14001091d
mov ecx, dword [rbx]
mov edx, dword [rbx + 4]
bswap ecx
bswap edx
mov dword [rbx], edx
mov dword [rbx + 4], ecx
mov ecx, dword [rbx + 8]
bswap ecx
mov edx, dword [rbx + 0xc]
bswap edx
mov dword [rbx + 8], edx
mov dword [rbx + 0xc], ecx
mov ecx, dword [rbx + 0x10]
bswap ecx
mov edx, dword [rbx + 0x14]
bswap edx
mov dword [rbx + 0x10], edx
mov dword [rbx + 0x14], ecx
mov ecx, dword [rbx + 0x18]
bswap ecx
mov edx, dword [rbx + 0x1c]
bswap edx
mov dword [rbx + 0x18], edx
mov dword [rbx + 0x1c], ecx
mov ecx, dword [rbx + 0x20]
bswap ecx
mov edx, dword [rbx + 0x24]
bswap edx
mov dword [rbx + 0x20], edx
mov dword [rbx + 0x24], ecx
mov ecx, dword [rbx + 0x28]
mov edx, dword [rbx + 0x2c]
bswap ecx
bswap edx
mov dword [rbx + 0x28], edx
mov dword [rbx + 0x2c], ecx
mov ecx, dword [rbx + 0x34]
bswap ecx
mov dword [rbx + 0x34], ecx
rol word [rbx + 0x38], 8
rol word [rbx + 0x3a], 8
rol word [rbx + 0x3c], 8
rol word [rbx + 0x3e], 8
rol word [rbx + 0x42], 8
mov ecx, dword [rbx + 0x44]
bswap ecx
mov dword [rbx + 0x44], ecx
mov ecx, dword [rbx + 0x48]
mov edx, dword [rbx + 0x4c]
bswap ecx
bswap edx
mov dword [rbx + 0x48], edx
mov dword [rbx + 0x4c], ecx
mov ecx, dword [rbx + 0x50]
mov edx, dword [rbx + 0x54]
bswap ecx
bswap edx
mov dword [rbx + 0x50], edx
mov dword [rbx + 0x54], ecx
mov ecx, dword [rbx + 0x58]
mov edx, dword [rbx + 0x5c]
bswap ecx
bswap edx
mov dword [rbx + 0x58], edx
mov dword [rbx + 0x5c], ecx
mov ecx, dword [rbx + 0x60]
mov edx, dword [rbx + 0x64]
bswap ecx
bswap edx
mov dword [rbx + 0x60], edx
mov dword [rbx + 0x64], ecx
mov ecx, dword [rbx + 0x68]
mov edx, dword [rbx + 0x6c]
bswap ecx
bswap edx
mov dword [rbx + 0x68], edx
mov dword [rbx + 0x6c], ecx
mov ecx, dword [rbx + 0x70]
mov edx, dword [rbx + 0x74]
bswap ecx
bswap edx
mov dword [rbx + 0x70], edx
mov dword [rbx + 0x74], ecx
mov ecx, dword [rbx + 0x78]
mov edx, dword [rbx + 0x7c]
bswap ecx
bswap edx
mov dword [rbx + 0x78], edx
mov dword [rbx + 0x7c], ecx
mov ecx, dword [rbx + 0x80]
mov edx, dword [rbx + 0x84]
bswap ecx
bswap edx
mov dword [rbx + 0x80], edx
mov dword [rbx + 0x84], ecx
mov ecx, dword [rbx + 0x88]
mov edx, dword [rbx + 0x8c]
bswap ecx
bswap edx
mov dword [rbx + 0x88], edx
mov dword [rbx + 0x8c], ecx
mov ecx, dword [rbx + 0x90]
mov edx, dword [rbx + 0x94]
bswap ecx
bswap edx
mov dword [rbx + 0x90], edx
mov dword [rbx + 0x94], ecx
mov ecx, dword [rbx + 0x98]
mov edx, dword [rbx + 0x9c]
bswap ecx
bswap edx
mov dword [rbx + 0x98], edx
mov dword [rbx + 0x9c], ecx
mov ecx, dword [rbx + 0xa0]
mov edx, dword [rbx + 0xa4]
bswap ecx
bswap edx
mov dword [rbx + 0xa0], edx
mov dword [rbx + 0xa4], ecx
mov ecx, dword [rbx + 0xa8]
mov edx, dword [rbx + 0xac]
bswap ecx
bswap edx
mov dword [rbx + 0xa8], edx
mov dword [rbx + 0xac], ecx
mov ecx, dword [rbx + 0xb0]
mov edx, dword [rbx + 0xb4]
bswap ecx
bswap edx
mov dword [rbx + 0xb0], edx
mov dword [rbx + 0xb4], ecx
mov ecx, dword [rbx + 0xb8]
mov edx, dword [rbx + 0xbc]
bswap ecx
bswap edx
mov dword [rbx + 0xb8], edx
mov dword [rbx + 0xbc], ecx
mov ecx, dword [rbx + 0xc0]
mov edx, dword [rbx + 0xc4]
bswap ecx
bswap edx
mov dword [rbx + 0xc0], edx
mov dword [rbx + 0xc4], ecx
mov ecx, dword [rbx + 0xc8]
mov edx, dword [rbx + 0xcc]
bswap ecx
bswap edx
mov dword [rbx + 0xc8], edx
mov dword [rbx + 0xcc], ecx
mov ecx, dword [rbx + 0xd0]
mov edx, dword [rbx + 0xd4]
bswap ecx
bswap edx
mov dword [rbx + 0xd0], edx
mov dword [rbx + 0xd4], ecx
mov ecx, dword [rbx + 0xd8]
mov edx, dword [rbx + 0xdc]
bswap ecx
bswap edx
mov dword [rbx + 0xd8], edx
mov dword [rbx + 0xdc], ecx
mov ecx, dword [rbx + 0xe0]
mov edx, dword [rbx + 0xe4]
bswap ecx
bswap edx
mov dword [rbx + 0xe0], edx
mov dword [rbx + 0xe4], ecx
mov ecx, dword [rbx + 0xe8]
mov edx, dword [rbx + 0xec]
bswap ecx
bswap edx
mov dword [rbx + 0xe8], edx
mov dword [rbx + 0xec], ecx
mov ecx, dword [rbx + 0xf0]
mov edx, dword [rbx + 0xf4]
bswap ecx
bswap edx
mov dword [rbx + 0xf0], edx
mov dword [rbx + 0xf4], ecx
mov ecx, dword [rbx + 0xf8]
mov edx, dword [rbx + 0xfc]
bswap ecx
bswap edx
mov dword [rbx + 0xf8], edx
mov dword [rbx + 0xfc], ecx
xor ecx, ecx
mov edx, dword [rbx + rcx + 0x308]
bswap edx
mov ebp, dword [rbx + rcx + 0x30c]
bswap ebp
mov dword [rbx + rcx + 0x308], ebp
mov dword [rbx + rcx + 0x30c], edx
mov edx, dword [rbx + rcx + 0x300]
mov ebp, dword [rbx + rcx + 0x304]
bswap edx
bswap ebp
mov dword [rbx + rcx + 0x300], ebp
mov dword [rbx + rcx + 0x304], edx
add rcx, 0x10
cmp rcx, 0x1a0
jne 0x140010828
mov ecx, dword [rbx + 0x4a0]
mov edx, dword [rbx + 0x4a4]
bswap ecx
bswap edx
mov dword [rbx + 0x4a0], edx
mov dword [rbx + 0x4a4], ecx
mov ecx, dword [rbx + 0x4a8]
bswap ecx
mov edx, dword [rbx + 0x4ac]
bswap edx
mov dword [rbx + 0x4a8], edx
mov dword [rbx + 0x4ac], ecx
mov ecx, dword [rbx + 0x4b0]
bswap ecx
mov edx, dword [rbx + 0x4b4]
bswap edx
mov dword [rbx + 0x4b0], edx
mov dword [rbx + 0x4b4], ecx
mov ecx, dword [rbx + 0x4b8]
bswap ecx
mov edx, dword [rbx + 0x4bc]
bswap edx
mov dword [rbx + 0x4b8], edx
mov dword [rbx + 0x4bc], ecx
mov ecx, dword [rbx + 0x4c0]
bswap ecx
mov edx, dword [rbx + 0x4c4]
bswap edx
mov dword [rbx + 0x4c0], edx
mov dword [rbx + 0x4c4], ecx
mov ecx, dword [rbx + 0x4c8]
mov edx, dword [rbx + 0x4cc]
bswap ecx
bswap edx
mov dword [rbx + 0x4c8], edx
mov dword [rbx + 0x4cc], ecx
mov dword [r12 + 0x18], eax
mov qword [r12 + 0x10], rbx
cmp byte [r14 + 0x62], 0
je 0x140010bf0
mov rcx, qword [r14 + 0x58]
test rcx, rcx
je 0x140010bf0
lea rbx, [rsp + 0x30]
mov rdx, rbx
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 [rbx + 8]
add rax, qword [rbx]
movsxd rcx, eax
lea edx, [rcx - 0x4d0]
cmp rcx, rax
mov eax, 0xfffffb2f
cmove eax, edx
add edi, eax
jmp 0x140010bf6
mov rcx, r15
jmp 0x14001161a
mov rcx, qword [r12 + 0x20]
lea rdx, [rsp + 0x28]
mov r8d, 4
call fcn.140011640
test al, al
je 0x14001161f
mov r15, qword [r12 + 0x20]
cmp byte [r15 + 0x62], 0
je 0x1400109b1
cmp byte [r15 + 0x60], 0
je 0x1400109b1
mov eax, dword [rsp + 0x28]
bswap eax
mov dword [rsp + 0x28], eax
mov ebp, dword [rsp + 0x28]
mov eax, ebp
and eax, 0xffffff00
je 0x1400109ce
mov dword [rsp + 0x2c], eax
mov ebx, eax
jmp 0x1400109de
mov rcx, rbx
jmp 0x14001161a
test bpl, 0x40
jne 0x140010c4d
or ebp, ebx
mov dword [rsp + 0x28], ebp
cmp ebx, 0x3fffff
jg 0x140010a0f
cmp ebx, 0x7ffff
jg 0x140010c17
cmp ebx, 0x10000
je 0x140010ead
cmp ebx, 0x40000
je 0x140010e18
jmp 0x14001161f
cmp ebx, 0x1fffffff
jg 0x140010c34
cmp ebx, 0x400000
je 0x14001111b
cmp ebx, 0x10000000
jne 0x14001161f
cmp edi, 0x248
jne 0x14001161f
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
lea rdx, [rdi + 4]
mov r8d, 0x244
mov rcx, r15
call fcn.140011640
test al, al
je 0x140011617
mov rcx, qword [r12 + 0x20]
mov rax, qword [rcx]
mov rax, qword [rax + 0x48]
call qword [case.0x14004ab96.0]
test rax, rax
je 0x140010aa8
cmp byte [rax + 8], 0
je 0x140011617
movzx eax, word [rax + 0x18]
cmp eax, 0x8001
jne 0x140011617
mov rax, qword [r12 + 0x20]
cmp byte [rax + 0x62], 0
je 0x14001160d
cmp byte [rax + 0x60], 0
je 0x14001160d
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 0x140010ac3
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 0x140010b8a
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 0x14001160d
add edi, 0xfffffb2f
mov rcx, r14
mov edx, edi
call fcn.140011910
mov eax, dword [rsp + 0x28]
mov dword [r12 + 0x18], eax
mov byte [r12 + 8], 1
mov sil, 1
jmp 0x140011621
cmp ebx, 0x80000
je 0x140010e18
cmp ebx, 0x100000
je 0x1400104c7
jmp 0x14001161f
cmp ebx, 0x20000000
je 0x140011284
cmp ebx, 0x40000000
je 0x140010c62
jmp 0x14001161f
and ebp, 0xbfffffbf
mov eax, 0x40000000
or ebp, eax
mov dword [rsp + 0x28], ebp
mov dword [rsp + 0x2c], eax
cmp edi, 0x170
jne 0x14001161f
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
lea rdx, [rdi + 4]
mov r8d, 0x16c
mov rcx, r15
call fcn.140011640
test al, al
je 0x140011617
mov rcx, qword [r12 + 0x20]
mov rax, qword [rcx]
mov rax, qword [rax + 0x48]
call qword [case.0x14004ab96.0]
test rax, rax
je 0x140010cd3
cmp byte [rax + 8], 0
je 0x140011617
cmp word [rax + 0x18], 5
jne 0x140011617
mov rax, qword [r12 + 0x20]
cmp byte [rax + 0x62], 0
je 0x14001160d
cmp byte [rax + 0x60], 0
je 0x14001160d
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 0x140010d86
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 0x14001160d
cmp edi, 0x258
jne 0x14001161f
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
lea rdx, [rdi + 4]
mov r8d, 0x254
mov rcx, r15
call fcn.140011640
test al, al
je 0x140011617
mov rcx, qword [r12 + 0x20]
mov rax, qword [rcx]
mov rax, qword [rax + 0x48]
call qword [case.0x14004ab96.0]
test rax, rax
je 0x1400114a0
cmp byte [rax + 8], 0
je 0x140011617
movzx eax, word [rax + 0x18]
cmp ebx, 0x80000
je 0x140011492
cmp ebx, 0x40000
jne 0x140011617
cmp ax, 1
je 0x1400114a0
jmp 0x140011617
mov ecx, 0x2cc
call sub.mozglue.dll_void____ptr64___cdecl_operator_new_unsigned_long_long_unsigned___int64__
mov r14, rax
mov r8d, 0x2cc
mov rcx, rax
xor edx, edx
call sub.VCRUNTIME140.dll_memset
mov dword [r14], ebp
lea rdx, [r14 + 4]
mov r8d, 0x2c8
mov rcx, r15
call fcn.140011640
test al, al
je 0x14001127c
mov rcx, qword [r12 + 0x20]
mov rax, qword [rcx]
mov rax, qword [rax + 0x48]
call qword [case.0x14004ab96.0]
test rax, rax
je 0x140010f24
cmp byte [rax + 8], 0
je 0x14001127c
movzx eax, word [rax + 0x18]
cmp ax, 0xa
ja 0x14001127c
mov ecx, 0x601
bt ecx, eax
jae 0x14001127c
mov rbx, qword [r12 + 0x20]
cmp byte [rbx + 0x62], 0
je 0x1400110cf
cmp byte [rbx + 0x60], 0
je 0x1400110cf
mov eax, dword [r14 + 4]
mov ecx, dword [r14 + 8]
bswap eax
mov dword [r14 + 4], eax
bswap ecx
mov dword [r14 + 8], ecx
mov eax, dword [r14 + 0xc]
bswap eax
mov dword [r14 + 0xc], eax
mov eax, dword [r14 + 0x10]
bswap eax
mov dword [r14 + 0x10], eax
mov eax, dword [r14 + 0x14]
bswap eax
mov dword [r14 + 0x14], eax
mov eax, dword [r14 + 0x18]
bswap eax
mov dword [r14 + 0x18], eax
mov eax, dword [r14 + 0x1c]
bswap eax
mov dword [r14 + 0x1c], eax
mov eax, dword [r14 + 0x20]
bswap eax
mov dword [r14 + 0x20], eax
mov eax, dword [r14 + 0x24]
bswap eax
mov dword [r14 + 0x24], eax
mov eax, dword [r14 + 0x28]
bswap eax
mov dword [r14 + 0x28], eax
mov eax, dword [r14 + 0x2c]
bswap eax
mov dword [r14 + 0x2c], eax
mov eax, dword [r14 + 0x30]
bswap eax
mov dword [r14 + 0x30], eax
mov eax, dword [r14 + 0x34]
bswap eax
mov dword [r14 + 0x34], eax
mov eax, dword [r14 + 0x88]
bswap eax
mov dword [r14 + 0x88], eax
mov eax, dword [r14 + 0x8c]
bswap eax
mov dword [r14 + 0x8c], eax
mov eax, dword [r14 + 0x90]
bswap eax
mov dword [r14 + 0x90], eax
mov eax, dword [r14 + 0x94]
bswap eax
mov dword [r14 + 0x94], eax
mov eax, dword [r14 + 0x98]
bswap eax
mov dword [r14 + 0x98], eax
mov eax, dword [r14 + 0x9c]
bswap eax
mov dword [r14 + 0x9c], eax
mov eax, dword [r14 + 0xa0]
bswap eax
mov dword [r14 + 0xa0], eax
mov eax, dword [r14 + 0xa4]
bswap eax
mov dword [r14 + 0xa4], eax
mov eax, dword [r14 + 0xa8]
bswap eax
mov dword [r14 + 0xa8], eax
mov eax, dword [r14 + 0xac]
bswap eax
mov dword [r14 + 0xac], eax
mov eax, dword [r14 + 0xb0]
bswap eax
mov dword [r14 + 0xb0], eax
mov eax, dword [r14 + 0xb4]
bswap eax
mov dword [r14 + 0xb4], eax
mov eax, dword [r14 + 0xb8]
bswap eax
mov dword [r14 + 0xb8], eax
mov eax, dword [r14 + 0xbc]
bswap eax
mov dword [r14 + 0xbc], eax
mov eax, dword [r14 + 0xc0]
bswap eax
mov dword [r14 + 0xc0], eax
mov eax, dword [r14 + 0xc4]
bswap eax
mov dword [r14 + 0xc4], eax
mov eax, dword [r14 + 0xc8]
bswap eax
mov dword [r14 + 0xc8], eax
mov qword [r12 + 0x10], r14
cmp byte [rbx + 0x62], 0
je 0x140011484
mov rcx, qword [rbx + 0x58]
test rcx, rcx
je 0x140011484
lea r14, [rsp + 0x30]
mov rdx, r14
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 [r14 + 8]
add rax, qword [r14]
movsxd rcx, eax
lea edx, [rcx - 0x2cc]
cmp rcx, rax
mov eax, 0xfffffd33
cmove eax, edx
add edi, eax
jmp 0x14001148a
cmp edi, 0x390
jne 0x14001161f
mov ecx, 0x390
call sub.mozglue.dll_void____ptr64___cdecl_operator_new_unsigned_long_long_unsigned___int64__
mov r14, rax
mov r8d, 0x390
mov rcx, rax
xor edx, edx
call sub.VCRUNTIME140.dll_memset
mov dword [r14], ebp
lea rdx, [r14 + 4]
mov r8d, 0x38c
mov rcx, r15
call fcn.140011640
test al, al
je 0x14001127c
mov rcx, qword [r12 + 0x20]
mov rax, qword [rcx]
mov rax, qword [rax + 0x48]
call qword [case.0x14004ab96.0]
test rax, rax
je 0x14001118d
cmp byte [rax + 8], 0
je 0x14001127c
cmp word [rax + 0x18], 0xc
jne 0x14001127c
mov r8, qword [r12 + 0x20]
cmp byte [r8 + 0x62], 0
je 0x140011272
cmp byte [r8 + 0x60], 0
je 0x140011272
xor ecx, ecx
mov eax, dword [r14 + rcx*8 + 8]
mov edx, dword [r14 + rcx*8 + 0xc]
bswap eax
bswap edx
mov dword [r14 + rcx*8 + 8], edx
mov dword [r14 + rcx*8 + 0xc], eax
inc rcx
cmp rcx, 0x21
jne 0x1400111aa
mov eax, dword [r14 + 4]
bswap eax
mov dword [r14 + 4], eax
mov eax, dword [r14 + 0x314]
bswap eax
mov dword [r14 + 0x314], eax
mov eax, dword [r14 + 0x310]
bswap eax
mov dword [r14 + 0x310], eax
lea rcx, [r14 + 0x118]
mov edx, 0x20
xor ebp, ebp
cmp byte [r8 + 0x62], 0
je 0x140011229
lea rbx, [rcx - 8]
cmp byte [r8 + 0x61], 0
je 0x14001123b
mov rax, rbp
shl rax, 4
add rax, r14
add rax, 0x118
mov esi, dword [rcx]
jmp 0x14001124c
mov rax, rbp
shl rax, 4
lea rbx, [r14 + rax]
add rbx, 0x110
mov rsi, qword [rcx - 8]
mov rax, qword [rcx]
mov qword [rcx], rsi
mov qword [rcx - 8], rax
mov rax, rcx
bswap esi
mov edi, dword [rax + 4]
bswap edi
mov dword [rax], edi
mov dword [rax + 4], esi
mov eax, dword [rbx]
mov edi, dword [rbx + 4]
bswap eax
bswap edi
mov dword [rbx], edi
mov dword [rbx + 4], eax
inc rbp
add rcx, 0x10
dec rdx
jne 0x140011203
mov qword [r12 + 0x10], r14
jmp 0x140010c00
mov rcx, r14
jmp 0x14001161a
cmp edi, 0x3ec
jne 0x14001161f
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
lea rdx, [rdi + 4]
mov r8d, 0x3e8
mov rcx, r15
call fcn.140011640
test al, al
je 0x140011617
mov rcx, qword [r12 + 0x20]
mov rax, qword [rcx]
mov rax, qword [rax + 0x48]
call qword [case.0x14004ab96.0]
test rax, rax
je 0x1400112f5
cmp byte [rax + 8], 0
je 0x140011617
cmp word [rax + 0x18], 3
jne 0x140011617
mov rax, qword [r12 + 0x20]
cmp byte [rax + 0x62], 0
je 0x14001160d
cmp byte [rax + 0x60], 0
je 0x14001160d
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 0x140011324
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 0x1400113b4
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 0x1400113ed
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 0x14001160d
add edi, 0xfffffd33
mov rcx, rbx
jmp 0x140010bf9
movzx eax, ax
cmp eax, 0x8004
jne 0x140011617
mov rax, qword [r12 + 0x20]
cmp byte [rax + 0x62], 0
je 0x14001160d
cmp byte [rax + 0x60], 0
je 0x14001160d
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 0x1400114bb
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 0x1400115c8
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 0x140010c00
mov rcx, rdi
call fcn.14004b9c0
xor esi, esi
mov rcx, qword [rsp + 0x48]
xor rcx, rsp
call fcn.14004b7a0
mov eax, esi
add rsp, 0x50
pop rbx
pop rbp
pop rdi
pop rsi
pop r12
pop r14
pop r15
ret