Function at 0x10059c70
Capabilities:
Encode data using xor
Hash data using fnv
Resolve function by parsing pe exports

Disassembly:
push ebp
mov ebp, esp
push ebx
push edi
push esi
and esp, 0xfffffff0
sub esp, 0xd0
mov edi, ecx
mov eax, dword [0x1038100c]
xor eax, ebp
mov dword [esp + 0xc8], eax
call fcn.100547f0
mov esi, eax
mov ecx, dword [eax + 4]
call dword [section..00cfg]
mov dword [esp + 8], esi
push esi
call ecx
add esp, 4
fstp qword [esp + 0x70]
movsd xmm0, qword [esp + 0x70]
movsd qword [esp + 0x20], xmm0
mov byte [edi + 0x170], 0
lea esi, [edi + 0x100]
mov edx, dword [edi + 0x100]
mov eax, dword [edx + 0x30]
test eax, eax
mov dword [esp + 0xc], edi
mov dword [esp + 0x10], esi
je 0x10059d03
mov dword [edx + 0x30], 0
mov ecx, dword [eax]
mov ecx, dword [ecx + 4]
lea edi, [eax + ecx]
mov eax, dword [eax + ecx]
mov ebx, dword [eax]
mov ecx, ebx
call dword [section..00cfg]
mov ecx, edi
mov edi, dword [esp + 0xc]
push 1
call ebx
mov edx, dword [esi]
add edx, 0x30
mov ecx, edi
call fcn.1005bc40
xor edi, edi
test al, al
je 0x1005af21
mov eax, dword [ebp + 8]
xorpd xmm0, xmm0
movapd xmmword [esp + 0xb0], xmm0
mov dword [esp + 0xc0], 0
mov edi, dword [eax + 0x1ef0]
test edi, edi
je 0x10059e2e
mov eax, dword [esp + 0xc]
cmp byte [eax + 0xc2], 0
jne 0x10059e2e
mov ebx, 0x30c
mov eax, dword [ebp + 8]
add ebx, dword [eax + 0x1ee8]
push ebx
call sub.MSVCP140.dll__Mtx_lock
add esp, 4
test eax, eax
je 0x10059d75
push eax
call sub.MSVCP140.dll_void___cdecl_std::_Throw_C_error_int_
add esp, 4
lea eax, [esp + 0xb0]
mov ecx, edi
push eax
push dword [esp + 0x10]
push dword [ebp + 8]
call fcn.10053dc0
mov edi, eax
cmp eax, 1
je 0x10059dfd
test edi, edi
jne 0x10059e07
mov esi, dword [esp + 8]
mov ecx, dword [esi + 4]
call dword [section..00cfg]
push esi
call ecx
add esp, 4
fstp qword [esp + 0x68]
movsd xmm0, qword [esp + 0x68]
subsd xmm0, qword [esp + 0x20]
mulsd xmm0, qword [0x102bc6c0]
cvttsd2si eax, xmm0
mov dword [esp + 8], eax
call fcn.100547f0
mov esi, dword [eax + 0x24]
call fcn.100547f0
mov dword [esp + 0x20], eax
mov ecx, esi
call dword [section..00cfg]
push 0x32
push 0xf4240
push 1
push dword [esp + 0x14]
push str.GPU.ANGLE.ProgramCache.ProgramCacheHitTimeUS
push dword [esp + 0x34]
call esi
add esp, 0x18
mov dword [esp + 8], 0
jmp 0x10059e0d
mov al, 1
mov dword [esp + 8], eax
push ebx
call sub.MSVCP140.dll__Mtx_unlock
add esp, 4
test eax, eax
je 0x10059e23
push eax
call sub.MSVCP140.dll_void___cdecl_std::_Throw_C_error_int_
add esp, 4
cmp byte [esp + 8], 0
je 0x1005af21
mov ebx, dword [esp + 0xc]
lea eax, [ebx + 0x40]
mov dword [esp + 0x5c], eax
mov ecx, ebx
call fcn.10058f10
mov edx, dword [ebx + 0x100]
add edx, 0x30
mov ecx, ebx
mov dword [esp + 0x3c], edx
call fcn.1005bc40
mov eax, 0x4d0
push eax
call dword [sym.imp.mozglue.dll_moz_xmalloc]
add esp, 4
mov esi, eax
lea edi, [eax + 8]
xor eax, eax
mov ecx, 0x4d0
push ecx
push eax
push esi
call sub.VCRUNTIME140.dll_memset
add esp, 0xc
mov dword [esp + 0x58], edi
mov ecx, edi
call fcn.1006e430
xor eax, eax
mov dword [esi + 0x4c8], eax
mov dword [esp + 0x84], eax
mov dword [esp + 0x88], eax
mov dword [esp + 0x8c], eax
xor edi, edi
mov eax, dword [ebx + 0x100]
lea edx, [eax + 0x3f0]
lea ecx, [ebx + 0x98]
mov dword [esp + 8], ecx
cmp dword [ebx + 0x78], edi
mov dword [esp + 0x34], esi
je 0x10059fde
lea edi, [eax + 0x404]
lea ecx, [eax + 0x3c0]
mov dword [esp + 0x20], ecx
add eax, 0x3dc
mov ecx, dword [esp + 0x58]
push edx
push dword [esp + 0xc]
push edi
push dword [esp + 0x2c]
push eax
call fcn.1006e4a0
lea eax, [esp + 0x98]
mov dword [eax], 0
add esi, 0x49c
lea eax, [ebx + 0xe0]
mov ecx, dword [ebp + 8]
lea edi, [ecx + 0x14]
lea edx, [ecx + 0x20]
mov ecx, ebx
mov dword [esp + 0x20], edx
push esi
lea esi, [esp + 0x9c]
push esi
push eax
push dword [esp + 0x48]
mov dword [esp + 0x18], edi
push edi
call fcn.1005c150
add esp, 0x14
test al, al
je 0x1005ae4c
lea eax, [esp + 0xa4]
mov dword [eax], 0
mov ecx, dword [ebp + 8]
movzx edi, byte [ecx + 0x1213]
mov ecx, ebx
mov edx, dword [esp + 0x20]
push eax
mov esi, dword [esp + 0x40]
push esi
push edi
push dword [esp + 0x14]
call fcn.1005c920
add esp, 0x10
test al, al
je 0x1005ae4c
mov eax, dword [esp + 0xa4]
add eax, dword [esp + 0x98]
mov ecx, dword [ebp + 8]
cmp eax, dword [ecx + 0x29c]
jbe 0x1005a0e8
mov ecx, esi
call fcn.10057bc0
mov esi, dword [esi]
lea edi, [esp + 0x94]
mov dword [edi], esi
add esi, 0x10
push str.The_sum_of_the_number_of_active_image_uniforms__active_shader_storage_blocks_and_active_fragment_shader_outputs_exceeds_MAX_COMBINED_SHADER_OUTPUT_RESOURCES__
push esi
call fcn.10003890
add esp, 8
mov ecx, esi
mov eax, dword [ebp + 8]
push dword [eax + 0x29c]
call dword [sym.imp.MSVCP140.dll_public:_class_std::basic_ostream_char__struct_std::char_traits_char______thiscall_std::basic_ostream_char__struct_std::char_traits_char__::operator___int_]
push 0x1034be17
push esi
call fcn.10003890
add esp, 8
mov ecx, edi
call fcn.1001b330
jmp 0x1005ae4c
lea edi, [eax + 0x410]
lea esi, [eax + 0x3c0]
add eax, 0x3dc
mov ecx, dword [esp + 0x58]
push edx
push dword [esp + 0xc]
push edi
push esi
push eax
call fcn.1006e4a0
mov edi, dword [ebp + 8]
mov al, byte [edi + 0x1213]
mov dword [esp + 0x98], 0
mov esi, dword [ebx + 0x64]
test esi, esi
je 0x1005a645
mov byte [esp + 8], al
mov ecx, esi
call fcn.10078700
mov ebx, dword [esi + 0x20]
mov ecx, esi
call fcn.10078700
mov dword [esp + 0x40], ebx
cmp ebx, 0x12c
jl 0x1005a066
lea eax, [esi + 0xa8]
mov ecx, 0x398
mov edx, dword [esp + 0x10]
add ecx, dword [edx]
cmp eax, ecx
je 0x1005a07f
mov eax, dword [esi + 0xa8]
mov edx, dword [esi + 0xac]
jmp 0x1005b855
lea eax, [esi + 0xb4]
mov ecx, 0x398
mov edx, dword [esp + 0x10]
add ecx, dword [edx]
cmp eax, ecx
jne 0x1005b849
mov edi, dword [edi + 0x238]
test edi, edi
mov dword [esp + 0x38], edi
je 0x1005a0d3
cmp edi, 0x40000000
jae 0x1005bc2d
lea esi, [edi*4]
cmp edi, 0x400
jb 0x1005a149
lea eax, [esi + 0x23]
xor ecx, ecx
dec ecx
cmp edi, 0x3ffffff8
cmovb ecx, eax
push ecx
call dword [sym.imp.mozglue.dll_moz_xmalloc]
add esp, 4
lea ecx, [eax + 0x23]
and ecx, 0xffffffe0
mov dword [ecx - 4], eax
jmp 0x1005a155
mov dword [esp + 0x2c], 0
mov dword [esp + 0x4c], 0
jmp 0x1005a16c
mov edi, dword [esp + 0x34]
lea edx, [edi + 0x448]
mov esi, dword [esp + 0x5c]
mov ecx, esi
call fcn.1005ce90
mov edx, edi
add edx, 0x470
mov ecx, esi
call fcn.1005cf30
mov edi, dword [esp + 0xc]
mov eax, dword [edi + 0x100]
mov word [eax + 0x34], 0
mov ecx, dword [edi + 0x64]
test ecx, ecx
mov esi, dword [esp + 0x10]
je 0x1005aa19
mov eax, dword [esi]
movzx ecx, byte [ecx + 0x114]
cmp ecx, 5
jne 0x1005a9fb
or byte [eax + 0x35], 0x20
mov dl, byte [eax + 0x34]
jmp 0x1005aa09
push esi
call dword [sym.imp.mozglue.dll_moz_xmalloc]
add esp, 4
mov ecx, eax
lea eax, [ecx + edi*4]
mov dword [esp + 0x4c], eax
push esi
push 0
mov dword [esp + 0x34], ecx
push ecx
call sub.VCRUNTIME140.dll_memset
add esp, 0xc
mov ecx, dword [esp + 0x10]
mov eax, dword [ecx]
mov edi, dword [eax + 0x398]
mov eax, dword [eax + 0x39c]
mov dword [esp + 0x30], eax
cmp edi, eax
je 0x1005a3a1
cmp dword [esp + 0x40], 0x12b
setg al
cmp byte [esp + 8], 0
setne cl
or cl, al
mov byte [esp + 0x50], cl
lea eax, [edi + 8]
cmp dword [edi + 0x1c], 0xf
mov edx, eax
jbe 0x1005a1b1
mov edx, dword [edi + 8]
mov dword [esp + 0x44], eax
mov dword [esp + 0x18], edi
mov eax, dword [edi + 0x18]
mov dword [esp + 8], eax
test eax, eax
mov edi, dword [esp + 0xc]
mov ebx, edx
mov eax, 0x811c9dc5
je 0x1005a1e6
xor ecx, ecx
movzx edx, byte [ebx + ecx]
xor edx, eax
imul eax, edx, 0x1000193
mov edx, ebx
inc ecx
cmp dword [esp + 8], ecx
jne 0x1005a1d1
and eax, dword [edi + 0x128]
mov ecx, dword [edi + 0x114]
mov edi, dword [edi + 0x11c]
mov dword [esp + 0x14], edi
mov edi, dword [edi + eax*8]
lea eax, [eax + eax + 1]
mov dword [esp + 0x1c], eax
mov eax, edi
mov dword [esp + 0x28], ecx
mov dword [esp + 0x20], edi
cmp ecx, eax
je 0x1005a222
mov eax, dword [esp + 0x14]
mov esi, dword [esp + 0x1c]
mov eax, dword [eax + esi*4]
mov eax, dword [eax]
cmp edi, eax
je 0x1005a29a
mov eax, dword [esp + 8]
cmp dword [edi + 0x18], eax
jne 0x1005a255
cmp dword [edi + 0x1c], 0xf
jbe 0x1005a23a
mov esi, dword [edi + 8]
jmp 0x1005a23d
lea esi, [edi + 8]
push dword [esp + 8]
push edx
push esi
call sub.VCRUNTIME140.dll_memcmp
mov edx, ebx
add esp, 0xc
test eax, eax
mov ecx, dword [esp + 0x28]
je 0x1005a25d
mov edi, dword [edi]
mov eax, dword [esp + 0x20]
jmp 0x1005a211
push dword [esp + 8]
push esi
push edx
mov esi, ecx
call sub.VCRUNTIME140.dll_memcmp
add esp, 0xc
test eax, eax
cmovne edi, esi
cmp edi, esi
je 0x1005a29a
mov eax, dword [edi + 0x20]
mov edi, dword [esp + 0x18]
lea esi, [edi + 0x88]
mov ebx, dword [edi + 0x88]
cmp eax, 0xffffffff
je 0x1005a293
cmp ebx, 0xffffffff
je 0x1005a2c3
cmp ebx, 0xffffffff
je 0x1005a2a9
jmp 0x1005a2c7
mov edi, dword [esp + 0x18]
mov ebx, dword [edi + 0x88]
cmp ebx, 0xffffffff
jne 0x1005a2bb
add edi, 0xb4
cmp edi, dword [esp + 0x30]
jne 0x1005a1a3
jmp 0x1005a334
lea esi, [edi + 0x88]
jmp 0x1005a2c7
mov dword [esi], eax
mov ebx, eax
push dword [edi]
call fcn.10228c50
add esp, 4
lea ecx, [eax + ebx]
cmp ecx, dword [esp + 0x38]
ja 0x1005b874
test eax, eax
jle 0x1005a2a9
dec eax
xor edx, edx
add ebx, edx
mov ecx, dword [esp + 0x2c]
mov edi, dword [ecx + ebx*4]
test edi, edi
je 0x1005a30e
cmp byte [esp + 0x50], 0
jne 0x1005a573
mov ecx, dword [ebp + 8]
cmp byte [ecx + 0x126c], 0
je 0x1005a315
jmp 0x1005a573
mov edi, dword [esp + 0x18]
mov dword [ecx + ebx*4], edi
xor edi, edi
inc edi
mov ecx, ebx
shl edi, cl
or dword [esp + 0x98], edi
cmp eax, edx
mov edi, dword [esp + 0x18]
je 0x1005a2a9
inc edx
mov ebx, dword [esi]
jmp 0x1005a2e5
mov ecx, dword [esp + 0x10]
mov eax, dword [ecx]
mov edi, dword [eax + 0x398]
mov ebx, dword [eax + 0x39c]
cmp edi, ebx
je 0x1005a3a1
cmp dword [edi + 0x88], 0xffffffff
je 0x1005a35f
add edi, 0xb4
cmp ebx, edi
jne 0x1005a34a
jmp 0x1005a3a1
push dword [edi]
call fcn.10228c50
add esp, 4
mov esi, eax
push dword [esp + 0x38]
push eax
lea eax, [esp + 0xa0]
push eax
call fcn.102b11e0
add esp, 0xc
cmp eax, 0xffffffff
je 0x1005b8f7
add esi, eax
cmp esi, dword [esp + 0x38]
ja 0x1005b8f7
mov dword [edi + 0x88], eax
mov ecx, dword [esp + 0x10]
jmp 0x1005a353
mov eax, dword [ecx]
cmp dword [esp + 0x40], 0x12b
jle 0x1005a428
mov edi, dword [eax + 0x398]
mov esi, dword [eax + 0x39c]
cmp edi, esi
je 0x1005a42e
lea ebx, [eax + 0x39c]
lea ecx, [edi + 0xb4]
cmp byte [edi + 0x45], 0
je 0x1005a3d3
mov edi, ecx
jmp 0x1005a416
cmp ecx, esi
je 0x1005a3fb
add esi, 0xffffff4c
mov dword [esp + 0x20], edi
mov ecx, edi
lea edi, [ecx + 0xb4]
push edi
call fcn.102236b0
mov ecx, edi
cmp esi, edi
jne 0x1005a3e3
mov esi, dword [ebx]
mov edi, dword [esp + 0x20]
mov eax, 0xffffff4c
add esi, eax
mov ecx, esi
call fcn.10222d30
mov eax, 0xffffff4c
add dword [ebx], eax
mov eax, dword [esp + 0x10]
mov eax, dword [eax]
lea ebx, [eax + 0x39c]
mov esi, dword [eax + 0x39c]
cmp edi, esi
jne 0x1005a3c3
jmp 0x1005a42e
mov edi, dword [eax + 0x39c]
mov esi, dword [eax + 0x398]
mov al, 1
mov dword [esp + 0x18], eax
cmp esi, edi
je 0x1005a562
mov dword [esp + 0x20], edi
push dword [esi]
call fcn.10228c50
add esp, 4
test eax, eax
je 0x1005a550
mov ebx, eax
mov eax, dword [esi + 0x88]
mov dword [esp + 8], eax
lea edi, [esi + 8]
cmp dword [esi + 0x1c], 0xf
mov eax, edi
jbe 0x1005a472
mov eax, dword [esi + 8]
push eax
call fcn.10228e40
add esp, 4
test al, al
je 0x1005a487
dec ebx
jne 0x1005a467
jmp 0x1005a550
mov eax, dword [esp + 0x10]
mov ecx, dword [eax]
mov dword [esp + 0x1c], ecx
xor edx, edx
inc edx
mov ecx, dword [esp + 8]
shl edx, cl
movzx edx, dx
mov dword [esp + 0x14], edx
mov eax, dword [esp + 0x1c]
or dword [eax + 0x38], edx
lea edx, [ecx + 1]
mov eax, dword [esp + 0x10]
mov eax, dword [eax]
mov ecx, dword [eax + 0x3c]
cmp ecx, edx
mov dword [esp + 0x1c], edx
cmovb ecx, edx
mov dword [eax + 0x3c], ecx
push dword [esi]
call fcn.102289f0
add esp, 4
cmp eax, 0x1404
jg 0x1005a4e3
test eax, eax
je 0x1005a4f8
cmp eax, 0x1404
jne 0x1005a506
mov eax, 0x102bc6f4
jmp 0x1005a50b
cmp eax, 0x1405
je 0x1005a4ff
cmp eax, 0x1406
jne 0x1005a506
mov eax, 0x102bc6f0
jmp 0x1005a50b
mov eax, 0x102bc6fc
jmp 0x1005a50b
mov eax, 0x102bc6f8
jmp 0x1005a50b
mov eax, 0x102bc700
mov edx, 0x10001
mov ecx, dword [esp + 8]
shl edx, cl
not edx
mov eax, dword [eax]
mov ecx, dword [esp + 0x10]
mov ecx, dword [ecx]
mov dword [esp + 0x28], ecx
mov ecx, dword [esp + 8]
shl eax, cl
mov ecx, dword [esp + 0x28]
and edx, dword [ecx + 0x40]
or eax, edx
mov dword [ecx + 0x40], eax
mov eax, dword [esp + 0x10]
mov eax, dword [eax]
mov ecx, dword [esp + 0x14]
or dword [eax + 0x44], ecx
mov eax, dword [esp + 0x1c]
mov dword [esp + 8], eax
jmp 0x1005a47f
add esi, 0xb4
mov edi, dword [esp + 0x20]
cmp esi, edi
jne 0x1005a446
mov ebx, dword [esp + 0x2c]
test ebx, ebx
jne 0x1005a610
jmp 0x1005a63a
mov esi, dword [esp + 0x3c]
mov ecx, esi
call fcn.10057bc0
mov esi, dword [esi]
mov dword [esp + 0xa4], esi
add esi, 0x10
push str.Attribute_
push esi
call fcn.10003890
add esp, 8
mov ecx, dword [esp + 0x18]
mov eax, dword [ecx + 0x18]
cmp dword [ecx + 0x1c], 0xf
mov edx, dword [esp + 0x44]
jbe 0x1005a5ac
mov edx, dword [ecx + 8]
push eax
push edx
push esi
call fcn.10004880
add esp, 0xc
push str._aliases_attribute_
push esi
call fcn.10003890
add esp, 8
mov eax, dword [edi + 0x18]
cmp dword [edi + 0x1c], 0xf
jbe 0x1005a5d3
mov edi, dword [edi + 8]
jmp 0x1005a5d6
add edi, 8
push eax
push edi
push esi
call fcn.10004880
add esp, 0xc
push str._at_location
push esi
call fcn.10003890
add esp, 8
mov ecx, esi
push ebx
call dword [sym.imp.MSVCP140.dll_public:_class_std::basic_ostream_char__struct_std::char_traits_char______thiscall_std::basic_ostream_char__struct_std::char_traits_char__::operator___int_]
lea ecx, [esp + 0xa4]
call fcn.1001b330
mov dword [esp + 0x18], 0
mov ebx, dword [esp + 0x2c]
mov eax, dword [esp + 0x4c]
sub eax, ebx
cmp eax, 0x1000
jb 0x1005a630
mov eax, dword [ebx - 4]
add ebx, 0xfffffffc
sub ebx, eax
cmp ebx, 0x20
jae 0x1005bc27
mov ebx, eax
push ebx
call dword [sym.imp.mozglue.dll_free]
add esp, 4
cmp byte [esp + 0x18], 0
je 0x1005ae4c
mov al, 6
mov ebx, 0xfffffffb
mov edi, dword [esp + 0xc]
movzx ecx, byte [ebx + 0x102bc6d5]
mov esi, dword [edi + ecx*4 + 0x64]
test esi, esi
je 0x1005a6f8
cmp al, 6
je 0x1005a6f2
movzx ecx, al
mov dword [esp + 8], ecx
mov eax, dword [esp + 0xc]
mov edi, dword [eax + ecx*4 + 0x64]
mov ecx, edi
call fcn.10078700
lea eax, [edi + 0x78]
mov dword [esp + 0x20], eax
mov eax, dword [esp + 0xc]
movzx eax, byte [eax + 0xc2]
mov dword [esp + 0x14], eax
mov ecx, esi
call fcn.10078700
mov eax, dword [esi + 0x20]
mov dword [esp + 0x1c], eax
mov ecx, edi
call fcn.10078700
mov edi, dword [edi + 0x20]
movzx eax, byte [esi + 0x114]
mov dword [esp + 0x28], eax
mov ecx, esi
call fcn.10078700
lea eax, [esi + 0x6c]
push dword [esp + 0x3c]
push dword [esp + 0x18]
push dword [esp + 0x24]
push edi
mov edi, dword [esp + 0x1c]
push dword [esp + 0x38]
push dword [esp + 0x1c]
push eax
push dword [esp + 0x3c]
call fcn.1006fa80
add esp, 0x20
test al, al
je 0x1005ae4c
mov al, byte [esi + 0x114]
inc ebx
jne 0x1005a650
mov esi, dword [edi + 0x64]
test esi, esi
je 0x1005a776
mov eax, dword [esp + 0xc]
mov edi, dword [eax + 0x74]
test edi, edi
je 0x1005a776
mov ecx, edi
call fcn.10078700
mov eax, dword [edi + 0x20]
mov dword [esp + 8], eax
mov ecx, esi
call fcn.10078700
mov ebx, dword [esi + 0x20]
movzx eax, byte [edi + 0x114]
mov dword [esp + 0x20], eax
movzx eax, byte [esi + 0x114]
mov dword [esp + 0x14], eax
mov ecx, edi
call fcn.10078700
add edi, 0x6c
mov ecx, esi
call fcn.10078700
add esi, 0x78
push dword [esp + 0x3c]
push dword [esp + 0xc]
push ebx
push dword [esp + 0x2c]
push dword [esp + 0x24]
push edi
push esi
call fcn.100704f0
add esp, 0x1c
test al, al
je 0x1005ae4c
lea eax, [esp + 0x80]
mov dword [eax], 0
mov ecx, dword [esp + 0x34]
lea eax, [ecx + 0x49c]
mov esi, dword [esp + 0xc]
lea ebx, [esi + 0xe0]
mov ecx, dword [ebp + 8]
lea edi, [ecx + 0x14]
lea edx, [ecx + 0x20]
mov ecx, esi
mov dword [esp + 8], edx
push eax
lea eax, [esp + 0x84]
push eax
push ebx
mov ebx, dword [esp + 0x48]
push ebx
push edi
call fcn.1005c150
add esp, 0x14
test al, al
je 0x1005ae4c
lea eax, [esp + 0x7c]
mov dword [eax], 0
mov eax, dword [ebp + 8]
movzx eax, byte [eax + 0x1213]
mov dword [esp + 0x20], eax
mov ecx, esi
mov edx, dword [esp + 8]
lea eax, [esp + 0x7c]
push eax
push ebx
push dword [esp + 0x28]
mov dword [esp + 0x24], edi
push edi
call fcn.1005c920
add esp, 0x10
test al, al
je 0x1005ae4c
mov edi, esi
lea eax, [esi + 0x34]
mov dword [esp + 0x4c], eax
push eax
push dword [esp + 0x40]
call fcn.1006eba0
add esp, 8
test al, al
je 0x1005ae4c
mov esi, dword [edi + 0x74]
test esi, esi
je 0x1005bb17
mov eax, dword [esp + 0x7c]
mov dword [esp + 0x2c], eax
mov eax, dword [esp + 0x80]
mov dword [esp + 0x44], eax
mov eax, dword [edi + 0x100]
mov dword [esp + 0x48], eax
mov ecx, esi
call fcn.10078700
mov ebx, dword [esi + 0xc0]
mov dword [esp + 0x30], esi
mov eax, dword [esi + 0xc4]
mov dword [esp + 0x28], eax
cmp ebx, eax
je 0x1005afaa
lea eax, [edi + 0xb0]
mov dword [esp + 0x1c], eax
lea esi, [ebx + 8]
cmp dword [ebx + 0x1c], 0xf
mov eax, esi
jbe 0x1005a884
mov eax, dword [ebx + 8]
push eax
call fcn.10228e40
add esp, 4
test al, al
jne 0x1005a9d1
mov ecx, ebx
mov ebx, dword [ebx + 0x88]
cmp ebx, 0xffffffff
mov eax, 0
cmove ebx, eax
mov dword [esp + 8], ecx
call fcn.102b2500
test eax, eax
je 0x1005a9a4
mov esi, eax
mov eax, dword [esp + 0x1c]
mov ecx, dword [eax]
mov dword [esp + 0x14], esi
mov eax, dword [esp + 0xc]
mov eax, dword [eax + 0xb4]
sub eax, ecx
sar eax, 2
cmp ebx, eax
jb 0x1005a8fd
mov dword [esp + 0x98], 0
lea eax, [ebx + 1]
mov edi, dword [esp + 0x1c]
mov ecx, edi
lea edx, [esp + 0x98]
push edx
push edi
push eax
call fcn.102225e0
mov ecx, dword [edi]
xor eax, eax
inc eax
mov esi, ecx
mov ecx, ebx
shl eax, cl
mov edi, dword [esp + 0xc]
or byte [edi + 0xac], al
mov eax, dword [esp + 8]
push dword [eax]
call fcn.102289f0
add esp, 4
mov dword [esi + ebx*4], eax
mov ecx, dword [edi + 0xb0]
mov eax, dword [ecx + ebx*4]
cmp eax, 0x1404
mov dword [esp + 0x20], ecx
jg 0x1005a94b
test eax, eax
mov esi, dword [esp + 0x14]
je 0x1005a96b
cmp eax, 0x1404
jne 0x1005a964
mov eax, 0x102bc6f4
jmp 0x1005a977
cmp eax, 0x1405
mov esi, dword [esp + 0x14]
je 0x1005a972
cmp eax, 0x1406
jne 0x1005a964
mov eax, 0x102bc6f0
jmp 0x1005a977
mov eax, 0x102bc700
jmp 0x1005a977
mov eax, 0x102bc6fc
jmp 0x1005a977
mov eax, 0x102bc6f8
mov edx, 0x10001
mov ecx, ebx
shl edx, cl
not edx
mov edi, dword [esp + 0xc]
and edx, dword [edi + 0xbc]
mov eax, dword [eax]
shl eax, cl
or eax, edx
mov dword [edi + 0xbc], eax
inc ebx
dec esi
mov ecx, dword [esp + 0x20]
jne 0x1005a8c1
mov ebx, dword [esp + 8]
cmp byte [ebx + 0xa4], 0
mov edi, dword [esp + 0xc]
je 0x1005a9bc
mov byte [edi + 0xc0], 1
add ebx, 0xb4
cmp ebx, dword [esp + 0x28]
jne 0x1005a876
jmp 0x1005afaa
mov ecx, esi
push 0x1031f2bd
call fcn.10239a50
test al, al
jne 0x1005a895
mov ecx, esi
push 0x1032b77d
call fcn.10239a50
test al, al
jne 0x1005a895
jmp 0x1005a9bc
xor edx, edx
inc edx
shl edx, cl
and dl, 0x3f
or dl, byte [eax + 0x34]
mov byte [eax + 0x34], dl
mov ecx, edx
shr cl, 4
and cl, dl
and cl, 1
mov byte [eax + 0x36c], cl
mov ecx, dword [edi + 0x68]
test ecx, ecx
je 0x1005aa55
mov eax, dword [esi]
movzx ecx, byte [ecx + 0x114]
cmp ecx, 5
jne 0x1005aa37
or byte [eax + 0x35], 0x20
mov dl, byte [eax + 0x34]
jmp 0x1005aa45
xor edx, edx
inc edx
shl edx, cl
and dl, 0x3f
or dl, byte [eax + 0x34]
mov byte [eax + 0x34], dl
mov ecx, edx
shr cl, 4
and cl, dl
and cl, 1
mov byte [eax + 0x36c], cl
mov ecx, dword [edi + 0x6c]
test ecx, ecx
je 0x1005aa91
mov eax, dword [esi]
movzx ecx, byte [ecx + 0x114]
cmp ecx, 5
jne 0x1005aa73
or byte [eax + 0x35], 0x20
mov dl, byte [eax + 0x34]
jmp 0x1005aa81
xor edx, edx
inc edx
shl edx, cl
and dl, 0x3f
or dl, byte [eax + 0x34]
mov byte [eax + 0x34], dl
mov ecx, edx
shr cl, 4
and cl, dl
and cl, 1
mov byte [eax + 0x36c], cl
mov ecx, dword [edi + 0x70]
test ecx, ecx
je 0x1005aacd
mov eax, dword [esi]
movzx ecx, byte [ecx + 0x114]
cmp ecx, 5
jne 0x1005aaaf
or byte [eax + 0x35], 0x20
mov dl, byte [eax + 0x34]
jmp 0x1005aabd
xor edx, edx
inc edx
shl edx, cl
and dl, 0x3f
or dl, byte [eax + 0x34]
mov byte [eax + 0x34], dl
mov ecx, edx
shr cl, 4
and cl, dl
and cl, 1
mov byte [eax + 0x36c], cl
mov ecx, dword [edi + 0x74]
test ecx, ecx
je 0x1005ab09
mov eax, dword [esi]
movzx ecx, byte [ecx + 0x114]
cmp ecx, 5
jne 0x1005aaeb
or byte [eax + 0x35], 0x20
mov dl, byte [eax + 0x34]
jmp 0x1005aaf9
xor edx, edx
inc edx
shl edx, cl
and dl, 0x3f
or dl, byte [eax + 0x34]
mov byte [eax + 0x34], dl
mov ecx, edx
shr cl, 4
and cl, dl
and cl, 1
mov byte [eax + 0x36c], cl
mov ecx, dword [edi + 0x78]
test ecx, ecx
je 0x1005ab45
mov eax, dword [esi]
movzx ecx, byte [ecx + 0x114]
cmp ecx, 5
jne 0x1005ab27
or byte [eax + 0x35], 0x20
mov dl, byte [eax + 0x34]
jmp 0x1005ab35
xor edx, edx
inc edx
shl edx, cl
and dl, 0x3f
or dl, byte [eax + 0x34]
mov byte [eax + 0x34], dl
mov ecx, edx
shr cl, 4
and cl, dl
and cl, 1
mov byte [eax + 0x36c], cl
mov eax, dword [edi + 0x100]
mov cl, byte [eax + 0x35]
shr cl, 5
and cl, 1
mov byte [eax + 0x454], cl
mov ebx, dword [edi + 0x174]
mov eax, dword [esp + 0x34]
mov dword [edi + 0x174], eax
test ebx, ebx
je 0x1005abfe
mov esi, dword [ebx + 0x4c8]
test esi, esi
je 0x1005ab92
mov eax, dword [esi]
mov edi, dword [eax]
mov ecx, edi
call dword [section..00cfg]
mov ecx, esi
push 1
call edi
mov edi, dword [esp + 0xc]
lea esi, [ebx + 8]
lea ecx, [ebx + 0x4a8]
call fcn.10004b50
lea ecx, [ebx + 0x49c]
call fcn.10071db0
mov ecx, esi
call fcn.10090a70
mov esi, dword [ebx + 4]
test esi, esi
je 0x1005abee
lock dec dword [esi + 4]
jne 0x1005abee
mov eax, dword [esi]
mov edi, dword [eax]
mov ecx, edi
call dword [section..00cfg]
mov ecx, esi
call edi
mov edi, dword [esp + 0xc]
lock dec dword [esi + 8]
jne 0x1005abee
mov eax, dword [esi]
mov edi, dword [eax + 4]
mov ecx, edi
call dword [section..00cfg]
mov ecx, esi
call edi
mov edi, dword [esp + 0xc]
push ebx
call dword [sym.imp.mozglue.dll_free]
add esp, 4
mov eax, dword [edi + 0x174]
mov byte [eax + 0x4cc], 0
mov eax, dword [edi + 0x174]
mov ecx, dword [esp + 0xc0]
mov dword [eax + 0x4c4], ecx
movapd xmm0, xmmword [esp + 0xb0]
movupd xmmword [eax + 0x4b4], xmm0
mov esi, dword [edi + 0x108]
mov eax, dword [esi]
mov edi, dword [eax + 0x18]
mov ecx, edi
call dword [section..00cfg]
lea eax, [esp + 0x84]
lea ebx, [esp + 0x98]
mov ecx, esi
push eax
push dword [esp + 0x40]
push dword [esp + 0x60]
push dword [ebp + 8]
push ebx
call edi
mov eax, 0x4c8
mov ecx, dword [esp + 0xc]
add eax, dword [ecx + 0x174]
cmp ebx, eax
je 0x1005ac9a
mov ecx, dword [esp + 0x98]
mov dword [esp + 0x98], 0
mov esi, dword [eax]
mov dword [eax], ecx
test esi, esi
je 0x1005ac9a
mov eax, dword [esi]
mov edi, dword [eax]
mov ecx, edi
call dword [section..00cfg]
mov ecx, esi
push 1
call edi
mov esi, dword [esp + 0x98]
test esi, esi
je 0x1005acb7
mov eax, dword [esi]
mov edi, dword [eax]
mov ecx, edi
call dword [section..00cfg]
mov ecx, esi
push 1
call edi
mov ebx, dword [esp + 0x10]
mov eax, dword [ebx]
lea ecx, [eax + 0x35]
lea edx, [eax + 0x34]
cmp byte [eax + 0x454], 0
cmove ecx, edx
movzx eax, byte [ecx]
bsf ecx, eax
mov eax, 6
cmovne eax, ecx
test al, al
je 0x1005ad53
movzx eax, al
mov ecx, dword [esp + 0xc]
mov edi, dword [ecx + eax*4 + 0x64]
mov bl, byte [edi + 0x114]
mov ecx, edi
call fcn.10078700
cmp bl, 5
jne 0x1005ad2b
mov esi, dword [edi + 0xa8]
mov edi, dword [edi + 0xac]
cmp esi, edi
mov ebx, dword [esp + 0x10]
je 0x1005ad53
mov ecx, dword [ebx]
mov eax, 0x398
add ecx, eax
push esi
call fcn.10222950
add esi, 0xb4
cmp edi, esi
jne 0x1005ad10
jmp 0x1005ad53
mov esi, dword [edi + 0x6c]
mov edi, dword [edi + 0x70]
cmp esi, edi
mov ebx, dword [esp + 0x10]
je 0x1005ad53
mov ecx, dword [ebx]
mov eax, 0x398
add ecx, eax
mov edx, esi
call fcn.100558e0
add esi, 0xb4
cmp edi, esi
jne 0x1005ad39
mov eax, dword [ebx]
lea ecx, [eax + 0x35]
lea edx, [eax + 0x34]
cmp byte [eax + 0x454], 0
cmove ecx, edx
movzx eax, byte [ecx]
test eax, eax
je 0x1005ad84
bsr eax, eax
xor eax, 0x1f
xor al, 0x1f
mov ecx, eax
and cl, 0x1e
cmp cl, 4
mov ebx, dword [esp + 0x10]
jne 0x1005ad8a
jmp 0x1005adc0
mov al, 6
mov ebx, dword [esp + 0x10]
movzx eax, al
mov ecx, dword [esp + 0xc]
mov edi, dword [ecx + eax*4 + 0x64]
mov ecx, edi
call fcn.10078700
mov esi, dword [edi + 0x78]
mov edi, dword [edi + 0x7c]
cmp esi, edi
je 0x1005adc0
mov ecx, dword [ebx]
mov eax, 0x370
add ecx, eax
mov edx, esi
call fcn.100558e0
add esi, 0xb4
cmp edi, esi
jne 0x1005ada6
mov esi, dword [esp + 0xc]
cmp byte [esi + 0xc2], 0
je 0x1005ae44
mov ecx, dword [esi + 0x100]
push dword [esp + 0x5c]
call fcn.10069470
mov edx, dword [esi + 0x104]
mov eax, dword [esi + 0x174]
mov dword [esp + 0x34], 0
mov ecx, 0
test edx, edx
je 0x1005ae03
lock inc dword [edx + 4]
mov ecx, dword [esi + 0x104]
mov edx, dword [esp + 0x10]
mov edx, dword [edx]
mov dword [eax], edx
mov esi, dword [eax + 4]
mov dword [eax + 4], ecx
test esi, esi
je 0x1005ae4c
lock dec dword [esi + 4]
jne 0x1005ae4c
mov eax, dword [esi]
mov edi, dword [eax]
mov ecx, edi
call dword [section..00cfg]
mov ecx, esi
call edi
lock dec dword [esi + 8]
jne 0x1005ae4c
mov eax, dword [esi]
mov edi, dword [eax + 4]
mov ecx, edi
call dword [section..00cfg]
mov ecx, esi
call edi
jmp 0x1005ae4c
mov dword [esp + 0x34], 0
mov eax, dword [esp + 0x84]
test eax, eax
je 0x1005ae85
mov ecx, dword [esp + 0x8c]
sub ecx, eax
cmp ecx, 0x1000
jb 0x1005ae7b
mov ecx, dword [eax - 4]
sub eax, ecx
add eax, 0xfffffffc
cmp eax, 0x20
jae 0x1005bc27
mov eax, ecx
push eax
call dword [sym.imp.mozglue.dll_free]
add esp, 4
xor edi, edi
mov eax, dword [esp + 0x34]
test eax, eax
je 0x1005af21
mov esi, dword [eax + 0x4c8]
test esi, esi
je 0x1005aeb3
mov eax, dword [esi]
mov ebx, dword [eax]
mov ecx, ebx
call dword [section..00cfg]
mov ecx, esi
push 1
call ebx
mov eax, dword [esp + 0x34]
lea esi, [eax + 8]
lea ecx, [eax + 0x4a8]
call fcn.10004b50
mov eax, dword [esp + 0x34]
lea ecx, [eax + 0x49c]
call fcn.10071db0
mov ecx, esi
call fcn.10090a70
mov eax, dword [esp + 0x34]
mov esi, dword [eax + 4]
test esi, esi
je 0x1005af17
lock dec dword [esi + 4]
jne 0x1005af17
mov eax, dword [esi]
mov ebx, dword [eax]
mov ecx, ebx
call dword [section..00cfg]
mov ecx, esi
call ebx
mov eax, dword [esp + 0x34]
lock dec dword [esi + 8]
jne 0x1005af17
mov eax, dword [esi]
mov ebx, dword [eax + 4]
mov ecx, ebx
call dword [section..00cfg]
mov ecx, esi
call ebx
mov eax, dword [esp + 0x34]
push eax
call dword [sym.imp.mozglue.dll_free]
add esp, 4
mov eax, dword [esp + 0xc]
mov ecx, dword [eax + 0x174]
test ecx, ecx
je 0x1005af90
mov eax, dword [ecx]
test eax, eax
je 0x1005af90
mov edx, dword [ecx + 4]
test edx, edx
je 0x1005af47
lock inc dword [edx + 4]
mov eax, dword [ecx]
mov ecx, dword [ecx + 4]
jmp 0x1005af49
xor ecx, ecx
mov edx, dword [esp + 0xc]
mov dword [edx + 0x100], eax
mov esi, dword [edx + 0x104]
mov dword [edx + 0x104], ecx
test esi, esi
je 0x1005af90
lock dec dword [esi + 4]
jne 0x1005af90
mov eax, dword [esi]
mov ebx, dword [eax]
mov ecx, ebx
call dword [section..00cfg]
mov ecx, esi
call ebx
lock dec dword [esi + 8]
jne 0x1005af90
mov eax, dword [esi]
mov ebx, dword [eax + 4]
mov ecx, ebx
call dword [section..00cfg]
mov ecx, esi
call ebx
mov ecx, dword [esp + 0xc8]
xor ecx, ebp
call fcn.1021e470
mov eax, edi
lea esp, [ebp - 0xc]
pop esi
pop edi
pop ebx
pop ebp
ret 4
add dword [esp + 0x48], 0x30
mov eax, dword [esp + 0x18]
cmp dword [eax], 3
jb 0x1005b027
jne 0x1005afc3
mov eax, dword [ebp + 8]
cmp dword [eax + 0x18], 0
je 0x1005b027
mov esi, dword [esp + 0x44]
add esi, dword [esp + 0x2c]
movzx eax, byte [edi + 0xac]
mov ecx, eax
shr ecx, 1
and ecx, 0xffffffd5
sub eax, ecx
mov ecx, 0x33333333
mov edx, eax
and edx, ecx
shr eax, 2
and eax, ecx
add eax, edx
mov ecx, eax
shr ecx, 4
add ecx, eax
and ecx, 0xf0f0f0f
imul eax, ecx, 0x1010101
shr eax, 0x18
add eax, esi
mov ecx, dword [ebp + 8]
cmp eax, dword [ecx + 0x29c]
jbe 0x1005b027
mov esi, dword [esp + 0x48]
mov ecx, esi
call fcn.10057bc0
mov esi, dword [esi]
lea edi, [esp + 0x98]
jmp 0x10059fa0
mov esi, dword [esp + 0x30]
mov ecx, esi
call fcn.10078700
cmp dword [esi + 0x20], 0x64
je 0x1005bb17
lea edx, [esi + 0xc0]
mov ebx, esi
mov esi, dword [esp + 0x10]
mov eax, dword [esi]
lea ecx, [eax + 0x370]
cmp edx, ecx
jne 0x1005ba7a
mov cl, byte [edi + 0xc0]
mov byte [eax + 0x394], cl
xor eax, eax
mov dword [esp + 0x98], eax
mov dword [esp + 0x9c], eax
mov dword [esp + 0xa0], eax
mov eax, dword [edi + 0x134]
mov ecx, dword [eax]
mov dword [esp + 0x28], eax
cmp ecx, eax
je 0x1005b29c
mov eax, dword [esp + 0xc]
add eax, 0x150
mov dword [esp + 0x18], eax
mov dword [esp + 0x14], ecx
add ecx, 8
lea eax, [esp + 0x94]
push eax
mov dword [esp + 0x24], ecx
push ecx
call fcn.102b1470
add esp, 8
mov dword [esp + 0x1c], eax
inc eax
cmp eax, 2
jb 0x1005b28c
mov eax, dword [esi]
mov edi, dword [eax + 0x370]
cmp dword [eax + 0x374], edi
je 0x1005b28c
mov dword [esp + 8], 0
mov ebx, 8
lea esi, [edi + ebx]
cmp dword [edi + ebx + 0x14], 0xf
mov eax, esi
jbe 0x1005b0f6
mov eax, dword [edi + ebx]
push eax
call fcn.10228e40
add esp, 4
test al, al
jne 0x1005b258
mov eax, dword [edi + ebx + 0x30]
cmp eax, dword [edi + ebx + 0x34]
je 0x1005b258
push dword [esp + 0x94]
push dword [esp + 0x24]
push esi
call fcn.102b0d60
add esp, 0xc
test al, al
je 0x1005b258
mov eax, dword [edi + ebx + 0x34]
cmp dword [edi + ebx + 0x30], eax
je 0x1005b258
mov ecx, dword [esp + 0x1c]
cmp ecx, dword [eax - 4]
jae 0x1005b258
mov ecx, dword [esp + 0x18]
lea edx, [esp + 0xa4]
push dword [esp + 0x20]
call fcn.10064640
add esp, 4
mov eax, dword [esp + 0xa4]
mov ecx, dword [esp + 0xc]
cmp eax, dword [ecx + 0x154]
je 0x1005b18d
cmp dword [eax + 0x20], 1
mov eax, dword [esp + 0x10]
mov ecx, dword [esp + 0x14]
jne 0x1005b195
mov esi, dword [eax]
mov eax, 0x388
jmp 0x1005b19c
mov eax, dword [esp + 0x10]
mov ecx, dword [esp + 0x14]
mov esi, dword [eax]
mov eax, 0x37c
add esi, eax
mov edx, dword [ecx + 0x20]
mov eax, dword [esp + 0x1c]
mov dword [esp + 0xa4], eax
mov eax, dword [esp + 8]
mov dword [esp + 0xa8], eax
mov byte [esp + 0xac], 0
mov eax, dword [esi]
mov ecx, dword [esi + 4]
sub ecx, eax
sar ecx, 2
imul ecx, ecx, 0xaaaaaaab
cmp edx, ecx
jb 0x1005b1e9
lea eax, [edx + 1]
mov ecx, esi
push esi
push eax
mov dword [esp + 0x38], edx
call fcn.10064910
mov edx, dword [esp + 0x30]
mov eax, dword [esi]
lea ecx, [edx + edx*2]
cmp dword [eax + ecx*4 + 4], 0xffffffff
jne 0x1005b96e
mov edx, dword [esp + 0xac]
mov dword [eax + ecx*4 + 8], edx
movsd xmm0, qword [esp + 0xa4]
movsd qword [eax + ecx*4], xmm0
mov eax, dword [esp + 0x9c]
mov edx, dword [esp + 0xa0]
cmp edx, eax
je 0x1005b243
mov ecx, dword [esp + 0xac]
mov dword [eax + 8], ecx
movsd xmm0, qword [esp + 0xa4]
movsd qword [eax], xmm0
add dword [esp + 0x9c], 0xc
jmp 0x1005b258
lea ecx, [esp + 0x98]
lea eax, [esp + 0xa4]
push eax
push edx
call fcn.10064aa0
mov ecx, dword [esp + 8]
inc ecx
mov esi, dword [esp + 0x10]
mov eax, dword [esi]
mov edi, dword [eax + 0x370]
mov eax, dword [eax + 0x374]
sub eax, edi
sar eax, 2
imul eax, eax, 0xa4fa4fa5
add ebx, 0xb4
mov dword [esp + 8], ecx
cmp ecx, eax
jb 0x1005b0e7
mov ecx, dword [esp + 0x14]
mov ecx, dword [ecx]
cmp ecx, dword [esp + 0x28]
jne 0x1005b09c
mov eax, dword [esp + 0xc]
add eax, 0x130
mov dword [esp + 0x60], eax
mov eax, dword [esi]
mov edx, dword [eax + 0x370]
mov ebx, dword [eax + 0x374]
mov ecx, ebx
cmp ebx, edx
je 0x1005b4ea
mov eax, dword [esp + 0xc]
add eax, 0x150
mov dword [esp + 0x54], eax
mov ebx, edx
xor esi, esi
imul eax, esi, 0xb4
mov dword [esp + 0x1c], eax
add eax, ebx
add eax, 8
cmp dword [eax + 0x14], 0xf
mov dword [esp + 0x44], eax
jbe 0x1005b2f3
mov eax, dword [esp + 0x1c]
mov eax, dword [ebx + eax + 8]
push eax
call fcn.10228e40
add esp, 4
test al, al
jne 0x1005b4c2
mov eax, dword [esp + 0x1c]
lea edx, [ebx + eax]
mov ecx, dword [ebx + eax + 0x88]
mov eax, ecx
mov dword [esp + 0x20], ecx
cmp ecx, 0xffffffff
jne 0x1005b33a
mov ecx, dword [esp + 0x60]
push edx
mov edi, edx
call fcn.10058110
mov edx, edi
mov ecx, eax
mov dword [esp + 0x20], eax
cmp eax, 0xffffffff
je 0x1005b4c2
mov eax, dword [esp + 0x1c]
mov dword [esp + 0x30], ebx
mov eax, dword [ebx + eax + 0xa0]
cmp eax, 0xffffffff
jne 0x1005b35c
mov ecx, dword [esp + 0x54]
push edx
mov edi, edx
call fcn.10058110
mov edx, edi
mov ecx, dword [esp + 0x10]
mov edi, dword [ecx]
lea ecx, [edi + 0x388]
add edi, 0x37c
cmp eax, 1
cmove edi, ecx
mov ecx, edx
call fcn.102b2500
mov ebx, eax
mov edx, dword [esp + 0x20]
add eax, edx
mov dword [esp + 0x28], eax
mov ecx, dword [edi]
mov dword [esp + 0x14], edi
mov eax, dword [edi + 4]
mov dword [esp + 0x18], ecx
sub eax, ecx
sar eax, 2
imul edi, eax, 0xaaaaaaab
mov ecx, edi
sub ecx, edx
mov eax, 0
cmovb ecx, eax
mov dword [esp + 0x50], edi
cmp dword [esp + 0x28], edi
mov dword [esp + 8], ebx
cmovbe ecx, ebx
test ecx, ecx
mov edx, dword [esp + 0x30]
je 0x1005b42f
mov eax, dword [esp + 0x1c]
add eax, edx
add eax, 0x1c
mov dword [esp + 0x40], eax
mov eax, dword [esp + 0x98]
mov dword [esp + 0x38], eax
mov eax, dword [esp + 0x9c]
xor edx, edx
mov byte [esp + 0x2c], 1
mov edi, dword [esp + 0x20]
add edi, edx
lea edi, [edi + edi*2]
mov ebx, dword [esp + 0x18]
cmp dword [ebx + edi*4 + 4], 0xffffffff
je 0x1005b416
mov edi, dword [esp + 0x38]
cmp edi, eax
je 0x1005b420
cmp dword [edi], edx
jne 0x1005b40d
cmp dword [edi + 4], esi
je 0x1005b416
add edi, 0xc
cmp eax, edi
jne 0x1005b404
jmp 0x1005b420
inc edx
cmp edx, ecx
setb byte [esp + 0x2c]
jne 0x1005b3e8
test byte [esp + 0x2c], 1
mov edi, dword [esp + 0x30]
jne 0x1005b9ed
mov eax, dword [esp + 0x10]
mov eax, dword [eax]
mov edi, dword [eax + 0x370]
mov eax, dword [esp + 0x28]
cmp eax, dword [esp + 0x50]
jbe 0x1005b450
mov ecx, dword [esp + 0x14]
push ecx
push eax
call fcn.10064910
cmp dword [esp + 8], 0
je 0x1005b4c2
mov eax, dword [esp + 0x1c]
add eax, edi
add eax, 0x88
xor ecx, ecx
mov edx, dword [esp + 0x98]
mov edi, dword [esp + 0x9c]
cmp edx, edi
je 0x1005b486
cmp dword [edx], ecx
jne 0x1005b47f
cmp dword [edx + 4], esi
je 0x1005b4bb
add edx, 0xc
cmp edi, edx
jne 0x1005b476
mov edx, dword [esp + 0x20]
mov dword [eax], edx
add edx, ecx
mov edi, dword [esp + 0x14]
mov edi, dword [edi]
lea edx, [edx + edx*2]
mov dword [edi + edx*4], ecx
mov dword [edi + edx*4 + 4], esi
mov byte [edi + edx*4 + 8], 0
movzx ebx, word [esp + 0xa4]
mov word [edi + edx*4 + 9], bx
mov bl, byte [esp + 0xa6]
mov byte [edi + edx*4 + 0xb], bl
inc ecx
cmp ecx, dword [esp + 8]
jne 0x1005b464
inc esi
mov eax, dword [esp + 0x10]
mov eax, dword [eax]
mov ebx, dword [eax + 0x370]
mov ecx, dword [eax + 0x374]
mov edx, ecx
sub edx, ebx
sar edx, 2
imul edx, edx, 0xa4fa4fa5
cmp esi, edx
jb 0x1005b2d2
mov edx, dword [eax + 0x388]
cmp edx, dword [eax + 0x38c]
mov eax, dword [ebp + 8]
lea edx, [eax + 0x64]
lea eax, [eax + 0x1238]
cmove eax, edx
cmp ecx, ebx
je 0x1005b963
mov eax, dword [eax]
mov dword [esp + 0x40], eax
mov edi, dword [esp + 0xc]
lea eax, [edi + 0x150]
mov dword [esp + 0x64], eax
mov ecx, ebx
xor ebx, ebx
mov esi, dword [esp + 0x10]
imul edx, ebx, 0xb4
mov dword [esp + 0x30], ecx
lea eax, [ecx + edx]
add eax, 8
cmp dword [eax + 0x14], 0xf
mov dword [esp + 0x54], eax
jbe 0x1005b54b
mov eax, dword [esp + 0x30]
mov eax, dword [eax + edx + 8]
mov dword [esp + 0x38], edx
push eax
call fcn.10228e40
add esp, 4
test al, al
jne 0x1005b822
mov esi, dword [esp + 0x30]
mov ecx, dword [esp + 0x38]
lea eax, [esi + ecx]
mov dword [esp + 0x20], eax
mov eax, dword [esi + ecx + 0x88]
mov dword [esp + 8], eax
cmp eax, 0xffffffff
jne 0x1005b594
mov ecx, dword [esp + 0x60]
push dword [esp + 0x20]
call fcn.10058110
mov ecx, dword [esp + 0x38]
mov dword [esp + 8], eax
mov eax, dword [esi + ecx + 0xa0]
cmp eax, 0xffffffff
jne 0x1005b5ad
mov ecx, dword [esp + 0x64]
push dword [esp + 0x20]
call fcn.10058110
mov esi, dword [esp + 0x10]
mov edx, dword [esi]
lea ecx, [edx + 0x388]
add edx, 0x37c
cmp eax, 1
cmove edx, ecx
mov dword [esp + 0x28], edx
mov ecx, dword [esp + 0x20]
call fcn.102b2500
mov ecx, dword [esp + 8]
cmp ecx, 0xffffffff
jne 0x1005b765
mov ecx, dword [esp + 0x28]
mov edx, dword [ecx]
mov ecx, dword [ecx + 4]
mov dword [esp + 0x1c], edx
sub ecx, edx
sar ecx, 2
imul ecx, ecx, 0xaaaaaaab
cmp eax, ecx
seta byte [esp + 0x2c]
mov edx, eax
mov dword [esp + 0x50], ecx
cmova edx, ecx
test edx, edx
mov dword [esp + 0x20], eax
je 0x1005b6ab
mov ecx, dword [esp + 0x98]
mov dword [esp + 0x44], ecx
mov ecx, dword [esp + 0x9c]
xor edi, edi
mov dword [esp + 0x18], eax
mov byte [esp + 0x14], 1
xor esi, esi
mov dword [esp + 8], edi
add edi, esi
lea edi, [edi + edi*2]
mov eax, dword [esp + 0x1c]
cmp dword [eax + edi*4 + 4], 0xffffffff
je 0x1005b660
mov edi, dword [esp + 0x44]
cmp edi, ecx
je 0x1005b670
cmp dword [edi], esi
jne 0x1005b657
cmp dword [edi + 4], ebx
je 0x1005b660
add edi, 0xc
cmp ecx, edi
jne 0x1005b64e
jmp 0x1005b670
inc esi
cmp esi, edx
setb byte [esp + 0x14]
mov edi, dword [esp + 8]
jne 0x1005b636
jmp 0x1005b674
mov edi, dword [esp + 8]
test byte [esp + 0x14], 1
je 0x1005b6b1
mov eax, dword [esp + 0x20]
add eax, edi
inc eax
mov dword [esp + 0x18], eax
inc edi
mov esi, dword [esp + 0x50]
mov edx, esi
sub edx, edi
mov eax, 0
cmovb edx, eax
cmp dword [esp + 0x18], esi
seta byte [esp + 0x2c]
cmovbe edx, dword [esp + 0x20]
test edx, edx
jne 0x1005b62b
jmp 0x1005b6b1
xor edi, edi
mov dword [esp + 0x18], eax
mov dword [esp + 8], edi
mov eax, dword [esp + 0x10]
mov eax, dword [eax]
mov esi, dword [eax + 0x370]
test byte [esp + 0x2c], 1
je 0x1005b6d6
mov ecx, dword [esp + 0x28]
push ecx
push dword [esp + 0x1c]
call fcn.10064910
cmp dword [esp + 0x20], 0
mov edi, dword [esp + 0xc]
je 0x1005b759
mov eax, dword [esp + 0x38]
add eax, esi
add eax, 0x88
mov dword [esp + 0x14], eax
xor ecx, ecx
mov edx, dword [esp + 0x98]
mov esi, dword [esp + 0x9c]
cmp edx, esi
je 0x1005b714
cmp dword [edx], ecx
jne 0x1005b70d
cmp dword [edx + 4], ebx
je 0x1005b752
add edx, 0xc
cmp esi, edx
jne 0x1005b704
mov eax, dword [esp + 8]
mov edx, dword [esp + 0x14]
mov dword [edx], eax
lea edx, [ecx + eax]
mov eax, dword [esp + 0x28]
mov esi, dword [eax]
lea edx, [edx + edx*2]
mov dword [esi + edx*4], ecx
mov dword [esi + edx*4 + 4], ebx
mov byte [esi + edx*4 + 8], 0
movzx edi, word [esp + 0xa4]
mov word [esi + edx*4 + 9], di
mov edi, dword [esp + 0xc]
mov al, byte [esp + 0xa6]
mov byte [esi + edx*4 + 0xb], al
inc ecx
cmp ecx, dword [esp + 0x20]
jne 0x1005b6f2
mov esi, dword [esp + 0x10]
mov ecx, dword [esp + 8]
mov eax, dword [esp + 0x20]
add eax, ecx
mov edx, eax
sub edx, dword [esp + 0x40]
mov dword [esp + 8], edx
jbe 0x1005b822
cmp ecx, dword [esp + 0x40]
jae 0x1005b9aa
mov ecx, dword [esp + 0x28]
mov edx, dword [ecx]
mov ecx, dword [ecx + 4]
mov dword [esp + 0x14], edx
sub ecx, edx
sar ecx, 2
imul ecx, ecx, 0xaaaaaaab
mov edx, ecx
sub edx, dword [esp + 0x40]
mov dword [esp + 0x20], eax
mov eax, esi
mov esi, 0
cmovb edx, esi
mov esi, eax
cmp dword [esp + 0x20], ecx
mov ecx, dword [esp + 8]
cmova ecx, edx
test ecx, ecx
je 0x1005b822
mov edx, ecx
mov eax, dword [esp + 0x98]
mov dword [esp + 0x20], eax
mov edi, dword [esp + 0x9c]
xor esi, esi
mov al, 1
mov dword [esp + 8], ecx
mov ecx, dword [esp + 0x40]
add ecx, esi
lea ecx, [ecx + ecx*2]
mov edx, dword [esp + 0x14]
cmp dword [edx + ecx*4 + 4], 0xffffffff
je 0x1005b808
mov ecx, dword [esp + 0x20]
cmp ecx, edi
je 0x1005b812
cmp dword [ecx], esi
jne 0x1005b7ff
cmp dword [ecx + 4], ebx
je 0x1005b808
add ecx, 0xc
cmp edi, ecx
jne 0x1005b7f6
jmp 0x1005b812
inc esi
cmp esi, dword [esp + 8]
setb al
jne 0x1005b7da
test al, 1
mov edi, dword [esp + 0xc]
mov esi, dword [esp + 0x10]
jne 0x1005b9aa
inc ebx
mov eax, dword [esi]
mov ecx, dword [eax + 0x370]
mov eax, dword [eax + 0x374]
sub eax, ecx
sar eax, 2
imul eax, eax, 0xa4fa4fa5
cmp ebx, eax
jb 0x1005b529
jmp 0x1005b967
mov eax, dword [esi + 0xb4]
mov edx, dword [esi + 0xb8]
sub esp, 0xc
mov bh, byte [esp + 0xb0]
mov byte [esp + 8], bh
mov dword [esp + 4], edx
mov dword [esp], eax
call fcn.102234a0
jmp 0x1005a07f
mov esi, dword [esp + 0x3c]
mov ecx, esi
call fcn.10057bc0
mov ebx, dword [esi]
mov dword [esp + 0xa4], ebx
add ebx, 0x10
push str.Attribute__
push ebx
call fcn.10003890
add esp, 8
mov eax, dword [edi + 0x18]
cmp dword [edi + 0x1c], 0xf
mov ecx, dword [esp + 0x44]
jbe 0x1005b8a9
mov ecx, dword [edi + 8]
push eax
push ecx
push ebx
call fcn.10004880
add esp, 0xc
push str.__at_location
push ebx
call fcn.10003890
add esp, 8
mov ecx, ebx
push dword [edi + 0x88]
call dword [sym.imp.MSVCP140.dll_public:_class_std::basic_ostream_char__struct_std::char_traits_char______thiscall_std::basic_ostream_char__struct_std::char_traits_char__::operator___int_]
push str._is_too_big_to_fit
push ebx
call fcn.10003890
add esp, 8
lea ecx, [esp + 0xa4]
call fcn.1001b330
mov dword [esp + 0x18], 0
jmp 0x1005a562
mov esi, dword [esp + 0x3c]
mov ecx, esi
call fcn.10057bc0
mov esi, dword [esi]
mov dword [esp + 0xa4], esi
add esi, 0x10
push str.Too_many_attributes__
push esi
call fcn.10003890
add esp, 8
mov eax, dword [edi + 0x18]
cmp dword [edi + 0x1c], 0xf
jbe 0x1005b92a
mov edi, dword [edi + 8]
jmp 0x1005b92d
add edi, 8
mov ebx, dword [esp + 0x2c]
push eax
push edi
push esi
call fcn.10004880
add esp, 0xc
push 0x1034be17
push esi
call fcn.10003890
add esp, 8
lea ecx, [esp + 0xa4]
call fcn.1001b330
mov dword [esp + 0x18], 0
jmp 0x1005a566
mov edi, dword [esp + 0xc]
mov bl, 1
jmp 0x1005bad6
mov esi, dword [esp + 0x48]
mov ecx, esi
call fcn.10057bc0
mov esi, dword [esi]
mov dword [esp + 0x90], esi
add esi, 0x10
push str.Location_of_variable
push esi
call fcn.10003890
add esp, 8
mov eax, dword [edi + ebx + 0x10]
cmp dword [edi + ebx + 0x14], 0xf
jbe 0x1005ba33
mov edi, dword [edi + ebx]
jmp 0x1005ba35
mov eax, dword [esp + 0x30]
mov ecx, dword [esp + 0x38]
lea edi, [eax + ecx]
add edi, 0x1c
mov esi, dword [esp + 0x48]
mov ecx, esi
call fcn.10057bc0
mov esi, dword [esi]
mov dword [esp + 0xa4], esi
add esi, 0x10
push str.Could_not_fit_output_variable_into_available_locations:
push esi
call fcn.10003890
add esp, 8
mov eax, dword [edi - 4]
cmp dword [edi], 0xf
jbe 0x1005ba57
mov ecx, dword [esp + 0x54]
mov ecx, dword [ecx]
jmp 0x1005ba5b
mov esi, dword [esp + 0x48]
mov ecx, esi
call fcn.10057bc0
mov esi, dword [esi]
mov dword [esp + 0xa4], esi
add esi, 0x10
push str.Location_of_variable
push esi
call fcn.10003890
add esp, 8
mov eax, dword [esp + 0x1c]
mov eax, dword [edi + eax + 0x18]
mov ecx, dword [esp + 0x40]
cmp dword [ecx], 0xf
jbe 0x1005baa7
mov ecx, dword [esp + 0x44]
mov ecx, dword [ecx]
mov edi, dword [esp + 0xc]
jmp 0x1005baaf
add edi, ebx
push eax
push edi
push esi
call fcn.10004880
add esp, 0xc
push str._conflicts_with_another_variable.
push esi
call fcn.10003890
add esp, 8
lea ecx, [esp + 0x90]
jmp 0x1005ba6d
mov ecx, dword [esp + 0x54]
push eax
push ecx
push esi
call fcn.10004880
add esp, 0xc
lea ecx, [esp + 0xa4]
call fcn.1001b330
xor ebx, ebx
mov edi, dword [esp + 0xc]
jmp 0x1005bad6
mov eax, dword [ebx + 0xc0]
mov edx, dword [ebx + 0xc4]
sub esp, 0xc
mov bl, byte [esp + 0xa4]
mov byte [esp + 8], bl
mov dword [esp + 4], edx
mov dword [esp], eax
call fcn.102234a0
mov eax, dword [esi]
jmp 0x1005b058
mov edi, dword [esp + 0xc]
mov ecx, dword [esp + 0x44]
push eax
push ecx
push esi
call fcn.10004880
add esp, 0xc
push str._conflicts_with_another_variable.
push esi
call fcn.10003890
add esp, 8
lea ecx, [esp + 0xa4]
call fcn.1001b330
xor ebx, ebx
mov eax, dword [esp + 0x98]
test eax, eax
je 0x1005bb0f
mov ecx, dword [esp + 0xa0]
sub ecx, eax
cmp ecx, 0x1000
jb 0x1005bb05
mov ecx, dword [eax - 4]
sub eax, ecx
add eax, 0xfffffffc
cmp eax, 0x20
jae 0x1005bc27
mov eax, ecx
push eax
call dword [sym.imp.mozglue.dll_free]
add esp, 4
test bl, bl
je 0x1005ae4c
mov esi, dword [edi + 0x64]
test esi, esi
je 0x1005bb3d
mov ecx, esi
call fcn.10078700
mov eax, dword [esi + 0xd4]
mov dword [edi + 0xc8], eax
mov eax, dword [esi + 0xd0]
or dword [edi + 0xc4], eax
mov eax, dword [edi + 0x74]
test eax, eax
je 0x1005bb5c
mov cl, byte [eax + 0xcc]
mov byte [edi + 0xc3], cl
mov eax, dword [eax + 0xd0]
or dword [edi + 0xc4], eax
mov ebx, dword [esp + 0x34]
lea edx, [ebx + 0x448]
mov esi, dword [esp + 0x5c]
mov ecx, esi
call fcn.1005ce90
mov edx, ebx
add edx, 0x470
mov ecx, esi
call fcn.1005cf30
lea eax, [esp + 0x98]
mov ecx, dword [esp + 0x10]
push dword [ecx]
push dword [esp + 0x50]
push eax
call fcn.10090d70
add esp, 0xc
mov eax, dword [esp + 0x84]
test eax, eax
mov ebx, dword [esp + 0x58]
je 0x1005bbd3
mov ecx, dword [esp + 0x8c]
sub ecx, eax
cmp ecx, 0x1000
jb 0x1005bbc9
mov ecx, dword [eax - 4]
sub eax, ecx
add eax, 0xfffffffc
cmp eax, 0x20
jae 0x1005bc27
mov eax, ecx
push eax
call dword [sym.imp.mozglue.dll_free]
add esp, 4
mov eax, dword [esp + 0x98]
mov ecx, dword [esp + 0x9c]
lea edx, [esp + 0x84]
mov dword [edx], eax
mov dword [edx + 4], ecx
mov eax, dword [esp + 0xa0]
mov dword [edx + 8], eax
mov ecx, dword [edi + 0x100]
movzx eax, byte [edi + 0xc2]
lea esi, [edi + 0x80]
push ebx
push eax
push esi
push edx
push dword [esp + 0x5c]
push dword [ebp + 8]
call fcn.10069570
test al, al
jne 0x1005a10c
jmp 0x1005ae4c
call dword [sym.imp.api_ms_win_crt_runtime_l1_1_0.dll__invalid_parameter_noinfo_noreturn]
call fcn.10005d40
int3