Function at 0x418440
Capabilities:
Resolve function by parsing pe exports

Disassembly:
push ebp
mov ebp, esp
push ebx
push edi
push esi
and esp, 0xfffffff8
sub esp, 0xf8
mov eax, dword [0x481014]
xor eax, ebp
mov dword [esp + 0xf0], eax
mov dword [esp + 0x14], ecx
mov ebx, dword [ecx + 0xc]
test ebx, ebx
je 0x4184e0
mov eax, dword [ebx]
mov ecx, dword [ebx + 4]
cmp ecx, eax
je 0x4184a4
xor esi, esi
mov edi, dword [eax + esi*4]
test edi, edi
je 0x418495
mov eax, dword [edi]
mov ebx, dword [eax]
mov ecx, ebx
call dword [section..00cfg]
mov ecx, edi
push 1
call ebx
mov eax, dword [esp + 0x14]
mov ebx, dword [eax + 0xc]
mov eax, dword [ebx]
inc esi
mov ecx, dword [ebx + 4]
sub ecx, eax
sar ecx, 2
cmp esi, ecx
jb 0x418473
jmp 0x4184a6
mov eax, ecx
test eax, eax
je 0x4184d7
mov ecx, dword [ebx + 8]
sub ecx, eax
cmp ecx, 0x1000
jb 0x4184cd
mov edx, dword [eax - 4]
add eax, 0xfffffffc
sub eax, edx
cmp eax, 0x20
jae 0x419389
add ecx, 0x23
mov eax, edx
push ecx
push eax
call sub.mozglue.dll_void___cdecl_operator_delete_void___unsigned_int_
add esp, 8
push ebx
call sub.mozglue.dll_void___cdecl_operator_delete_void__
add esp, 4
xor ebx, ebx
mov eax, dword [esp + 0x14]
mov dword [eax + 0xc], ebx
mov dword [eax + 0x10], ebx
mov byte [eax + 4], 0
mov ecx, dword [eax + 8]
cmp byte [ecx + 0x4e], 0
je 0x41852b
mov eax, dword [ecx + 0x2c]
mov eax, dword [eax]
mov esi, dword [eax + 4]
cmp byte [esi + 0xd], 0
mov edx, eax
jne 0x418523
mov edx, eax
lea edi, [esi + 8]
cmp dword [esi + 0x10], 0x47670009
cmovae edx, esi
cmovae edi, esi
mov esi, dword [edi]
cmp byte [esi + 0xd], 0
je 0x41850b
cmp byte [edx + 0xd], 0
je 0x418545
xor ebx, ebx
mov ecx, dword [esp + 0xf0]
xor ecx, ebp
call fcn.0043f990
mov eax, ebx
lea esp, [ebp - 0xc]
pop esi
pop edi
pop ebx
pop ebp
ret 4
xor ebx, ebx
cmp dword [edx + 0x10], 0x47670009
ja 0x41852b
cmp edx, eax
je 0x41852b
mov eax, dword [edx + 0x14]
cmp eax, dword [ecx + 0x10]
jae 0x418529
mov edx, dword [ecx + 0x28]
mov esi, dword [edx]
lea ebx, [eax + eax*2]
mov edx, dword [esi + ebx*4 + 8]
call fcn.004131b0
test al, al
je 0x418529
mov edi, dword [ebp + 8]
xor eax, eax
cmp dword [esi + ebx*4 + 4], edi
mov ebx, 0
jne 0x41852b
mov dword [esp + 0x18], 0
test edi, edi
je 0x4185d4
js 0x419394
cmp edi, 0x1000
jb 0x4185b2
lea eax, [edi + 0x23]
push eax
call sub.mozglue.dll_void____cdecl_operator_new_unsigned_int_
add esp, 4
lea ecx, [eax + 0x23]
and ecx, 0xffffffe0
mov dword [ecx - 4], eax
jmp 0x4185bd
push edi
call sub.mozglue.dll_void____cdecl_operator_new_unsigned_int_
add esp, 4
mov ecx, eax
lea eax, [ecx + edi]
mov dword [esp + 0x18], eax
push edi
push 0
push ecx
mov esi, ecx
call sub.VCRUNTIME140.dll_memset
mov eax, esi
add esp, 0xc
mov dword [esp + 0x1c], eax
mov eax, dword [esp + 0x14]
mov ecx, dword [eax + 8]
mov edx, dword [esp + 0x1c]
push edi
call fcn.00412ef0
mov ecx, dword [esp + 0x20]
add esp, 4
xor ebx, ebx
test al, al
mov edx, dword [esp + 0x18]
je 0x4192b5
mov dword [esp + 0x68], ebx
mov dword [esp + 0x78], ebx
mov dword [esp + 0x7c], 0xf
mov byte [esp + 0x68], 0
cmp ecx, edx
je 0x4186a5
mov ebx, dword [esp + 0x18]
sub ebx, ecx
cmp ebx, 0xf
jbe 0x41865d
test ebx, ebx
js 0x419399
mov eax, ebx
or eax, 0xf
cmp eax, 0x17
mov esi, 0x16
cmovae esi, eax
cmp esi, 0xfff
jb 0x418679
lea eax, [esi + 0x24]
push eax
call sub.mozglue.dll_void____cdecl_operator_new_unsigned_int_
add esp, 4
lea edi, [eax + 0x23]
and edi, 0xffffffe0
mov dword [edi - 4], eax
jmp 0x418687
lea esi, [esp + 0x68]
mov dword [esi + 0x10], ebx
push ebx
push ecx
push esi
call sub.VCRUNTIME140.dll_memmove
add esp, 0xc
mov byte [esp + ebx + 0x68], 0
mov ebx, dword [esi + 0x10]
jmp 0x4186a5
lea eax, [esi + 1]
push eax
call sub.mozglue.dll_void____cdecl_operator_new_unsigned_int_
add esp, 4
mov edi, eax
mov dword [esp + 0x78], ebx
mov dword [esp + 0x7c], esi
push ebx
push dword [esp + 0x20]
push edi
call sub.VCRUNTIME140.dll_memcpy
add esp, 0xc
mov byte [edi + ebx], 0
mov dword [esp + 0x68], edi
xor eax, eax
mov dword [esp + 0x34], eax
mov dword [esp + 0x38], eax
mov dword [esp + 0x3c], eax
mov dword [esp + 0x50], eax
mov dword [esp + 0x54], eax
mov dword [esp + 0x58], eax
mov dword [esp + 0x44], eax
mov dword [esp + 0x48], eax
mov dword [esp + 0x4c], eax
mov dword [esp + 0xd8], eax
mov dword [esp + 0xec], 0xf
mov dword [esp + 0xe8], eax
mov byte [esp + 0xd8], 0
mov dword [esp + 4], 0
mov edi, 0
mov esi, 0
mov ecx, 0
mov edx, 0
mov dword [esp + 0x10], ebx
test ebx, ebx
je 0x418e6a
cmp dword [esp + 0x7c], 0x10
jb 0x418721
mov eax, dword [esp + 0x68]
jmp 0x418725
lea eax, [esp + 0x68]
mov dword [esp + 4], eax
mov ebx, dword [esp + 0x10]
xor edi, edi
mov eax, dword [esp + 4]
movzx eax, byte [eax + edi]
cmp eax, 0xa
je 0x418741
cmp eax, 0xd
jne 0x41879b
cmp dword [esp + 0xe8], 0
je 0x41886d
mov ebx, dword [esp + 0x48]
cmp ebx, dword [esp + 0x4c]
je 0x418878
xor eax, eax
mov dword [ebx], eax
mov dword [ebx + 0x10], eax
mov dword [ebx + 0x14], eax
cmp dword [esp + 0xec], 0x10
lea ecx, [esp + 0xd8]
jb 0x41877f
mov ecx, dword [esp + 0xd8]
mov eax, dword [esp + 0xe8]
cmp eax, 0xf
ja 0x4187db
movups xmm0, xmmword [ecx]
movups xmmword [ebx], xmm0
mov esi, 0xf
jmp 0x418838
mov ecx, dword [esp + 0xe8]
mov edx, dword [esp + 0xec]
cmp ecx, edx
jae 0x41888c
lea esi, [ecx + 1]
mov dword [esp + 0xe8], esi
lea esi, [esp + 0xd8]
cmp edx, 0x10
jb 0x4187ce
mov esi, dword [esp + 0xd8]
mov byte [esi + ecx], al
mov byte [esi + ecx + 1], 0
jmp 0x41886d
mov dword [esp + 0xc], ecx
mov dword [esp + 8], eax
mov esi, eax
or esi, 0xf
mov eax, 0x7fffffff
cmp esi, eax
cmovae esi, eax
cmp esi, 0xfff
jb 0x418813
lea eax, [esi + 0x24]
push eax
call sub.mozglue.dll_void____cdecl_operator_new_unsigned_int_
add esp, 4
mov ecx, eax
add eax, 0x23
and eax, 0xffffffe0
mov dword [eax - 4], ecx
jmp 0x41881f
lea eax, [esi + 1]
push eax
call sub.mozglue.dll_void____cdecl_operator_new_unsigned_int_
add esp, 4
mov dword [ebx], eax
mov ecx, dword [esp + 8]
inc ecx
push ecx
push dword [esp + 0x10]
push eax
call sub.VCRUNTIME140.dll_memcpy
mov eax, dword [esp + 0x14]
add esp, 0xc
mov dword [ebx + 0x10], eax
mov dword [ebx + 0x14], esi
add dword [esp + 0x48], 0x18
cmp dword [esp + 0xec], 0x10
lea eax, [esp + 0xd8]
mov ebx, dword [esp + 0x10]
jb 0x41885f
mov eax, dword [esp + 0xd8]
mov dword [esp + 0xe8], 0
mov byte [eax], 0
inc edi
cmp ebx, edi
jne 0x41872f
jmp 0x4188b6
lea ecx, [esp + 0x44]
lea eax, [esp + 0xd8]
push eax
push ebx
call fcn.00443ce0
jmp 0x418843
sub esp, 0xc
mov cl, byte [esp + 0x8c]
mov byte [esp + 4], cl
movsx eax, al
mov dword [esp + 8], eax
mov dword [esp], 1
lea ecx, [esp + 0xe4]
call fcn.00442f90
jmp 0x41886d
xor eax, eax
cmp dword [esp + 0xe8], 0
mov ebx, 0
jne 0x418e88
mov ebx, dword [esp + 0x44]
mov dword [esp + 4], 0
mov edi, 0
mov esi, 0
mov ecx, 0
mov edx, 0
mov dword [esp + 8], ebx
cmp dword [esp + 0x48], ebx
je 0x418e6a
xor ebx, ebx
xor ecx, ecx
mov edx, dword [esp + 8]
mov dword [esp + 0xa8], ebx
mov dword [esp + 0xb8], ebx
mov eax, 0xf
mov dword [esp + 0xbc], eax
mov byte [esp + 0xa8], bl
mov dword [esp + 0xc0], ebx
mov dword [esp + 0xd0], ebx
mov dword [esp + 0xd4], eax
mov byte [esp + 0xc0], bl
lea eax, [ecx + ecx*2]
cmp dword [edx + eax*8 + 0x14], 0x10
mov dword [esp + 0x28], ecx
jb 0x418951
mov esi, dword [edx + eax*8]
jmp 0x418954
lea esi, [edx + eax*8]
mov byte [esp + 0x64], bl
mov dword [esp + 0x60], ebx
mov dword [esp + 0x40], ebx
sub esp, 0x28
lea eax, [esp + 0x68]
mov dword [esp + 0x24], eax
lea eax, [esp + 0xc8]
mov dword [esp + 0x20], eax
lea eax, [esp + 0xc2]
mov dword [esp + 0x1c], eax
lea eax, [esp + 0xc1]
mov dword [esp + 0x18], eax
lea eax, [esp + 0xb8]
mov dword [esp + 0x14], eax
lea eax, [esp + 0x88]
mov dword [esp + 0x10], eax
lea eax, [esp + 0xb0]
mov dword [esp + 0xc], eax
lea eax, [esp + 0xa8]
mov dword [esp + 8], eax
mov dword [esp], esi
call fcn.00443460
add esp, 0x28
cmp eax, 7
jl 0x4192ec
mov ebx, esi
mov byte [esp + 0x98], 0
movzx eax, byte [esp + 0x60]
cmp eax, 0x2d
je 0x4189f5
cmp eax, 0x72
jne 0x4192ec
mov byte [esp + 0x98], 1
mov al, 1
jmp 0x4189f7
xor eax, eax
movzx ecx, byte [esp + 0x61]
cmp ecx, 0x2d
je 0x418a13
cmp ecx, 0x77
jne 0x4192ec
or al, 2
mov byte [esp + 0x98], al
movzx ecx, byte [esp + 0x62]
cmp ecx, 0x2d
je 0x418a2f
cmp ecx, 0x78
jne 0x4192ec
or al, 4
mov byte [esp + 0x98], al
mov cl, byte [esp + 0x63]
cmp cl, 0x70
jne 0x418a43
or al, 8
mov byte [esp + 0x98], al
jmp 0x418a4f
and cl, 0xdf
cmp cl, 0x53
jne 0x4192ec
mov edi, dword [esp + 0x54]
cmp edi, dword [esp + 0x58]
mov dword [esp + 0x10], ebx
je 0x418a77
mov ecx, edi
lea edx, [esp + 0x80]
call fcn.00433ef0
add edi, 0x58
mov dword [esp + 0x54], edi
jmp 0x418cc0
mov ecx, dword [esp + 0x50]
mov dword [esp + 8], edi
mov dword [esp + 4], ecx
sub edi, ecx
mov dword [esp + 0x24], edi
sar edi, 3
imul edi, edi, 0xba2e8ba3
mov eax, edi
shr eax, 1
mov ecx, 0x2e8ba2e
sub ecx, eax
add eax, edi
lea edx, [edi + 1]
cmp eax, edx
mov dword [esp + 0x20], edx
cmovbe eax, edx
cmp edi, ecx
mov ecx, 0x2e8ba2e
cmova eax, ecx
cmp eax, 0x2e8ba2f
jae 0x41938f
imul esi, eax, 0x58
cmp eax, 0x2f
jb 0x418adf
lea eax, [esi + 0x23]
push eax
call sub.mozglue.dll_void____cdecl_operator_new_unsigned_int_
add esp, 4
lea ebx, [eax + 0x23]
and ebx, 0xffffffe0
mov dword [ebx - 4], eax
jmp 0x418af2
test eax, eax
je 0x418af0
push esi
call sub.mozglue.dll_void____cdecl_operator_new_unsigned_int_
add esp, 4
mov ebx, eax
jmp 0x418af2
xor ebx, ebx
imul ecx, edi, 0x58
add ecx, ebx
lea edx, [esp + 0x80]
call fcn.00433ef0
mov eax, dword [esp + 8]
mov edi, eax
mov ecx, dword [esp + 4]
cmp ecx, eax
mov dword [esp + 0xc], esi
je 0x418bb0
xor eax, eax
xor edx, edx
mov edi, dword [esp + 8]
mov ecx, dword [esp + 4]
add ecx, eax
add ecx, 0x58
movsd xmm0, qword [ecx - 0x38]
movsd qword [ebx + eax + 0x20], xmm0
movups xmm0, xmmword [ecx - 0x58]
movups xmm1, xmmword [ecx - 0x48]
movups xmmword [ebx + eax + 0x10], xmm1
movups xmmword [ebx + eax], xmm0
mov dword [ebx + eax + 0x28], edx
mov dword [ebx + eax + 0x38], edx
mov dword [ebx + eax + 0x3c], edx
movsd xmm0, qword [ecx - 0x20]
movsd qword [ebx + eax + 0x38], xmm0
movups xmm0, xmmword [ecx - 0x30]
movups xmmword [ebx + eax + 0x28], xmm0
mov dword [ecx - 0x20], edx
mov esi, 0xf
mov dword [ecx - 0x1c], esi
mov byte [ecx - 0x30], dl
mov dword [ebx + eax + 0x40], edx
mov dword [ebx + eax + 0x50], edx
mov dword [ebx + eax + 0x54], edx
movsd xmm0, qword [ecx - 8]
movsd qword [ebx + eax + 0x50], xmm0
movups xmm0, xmmword [ecx - 0x18]
movups xmmword [ebx + eax + 0x40], xmm0
mov dword [ecx - 8], edx
mov dword [ecx - 4], esi
mov byte [ecx - 0x18], dl
add eax, 0x58
cmp ecx, edi
jne 0x418b21
mov edi, dword [esp + 4]
mov esi, dword [esp + 0xc]
test edi, edi
je 0x418ca7
cmp edi, dword [esp + 8]
je 0x418c91
mov eax, dword [edi + 0x54]
cmp eax, 0x10
jb 0x418bfe
mov ecx, dword [edi + 0x40]
lea esi, [eax + 1]
cmp esi, 0x1000
jb 0x418bf0
mov edx, dword [ecx - 4]
add ecx, 0xfffffffc
sub ecx, edx
cmp ecx, 0x20
jae 0x419389
add eax, 0x24
mov esi, eax
mov ecx, edx
push esi
push ecx
call sub.mozglue.dll_void___cdecl_operator_delete_void___unsigned_int_
add esp, 8
mov esi, dword [esp + 0xc]
mov dword [edi + 0x50], 0
mov dword [edi + 0x54], 0xf
mov byte [edi + 0x40], 0
mov eax, dword [edi + 0x3c]
cmp eax, 0x10
jb 0x418c4c
mov ecx, dword [edi + 0x28]
lea esi, [eax + 1]
cmp esi, 0x1000
jb 0x418c3e
mov edx, dword [ecx - 4]
add ecx, 0xfffffffc
sub ecx, edx
cmp ecx, 0x20
jae 0x419389
add eax, 0x24
mov esi, eax
mov ecx, edx
push esi
push ecx
call sub.mozglue.dll_void___cdecl_operator_delete_void___unsigned_int_
add esp, 8
mov esi, dword [esp + 0xc]
mov dword [edi + 0x38], 0
mov dword [edi + 0x3c], 0xf
mov byte [edi + 0x28], 0
add edi, 0x58
cmp edi, dword [esp + 8]
jne 0x418bc2
mov ecx, dword [esp + 0x24]
cmp ecx, 0x1000
jb 0x418c99
mov edx, dword [esp + 4]
mov eax, dword [edx - 4]
add edx, 0xfffffffc
sub edx, eax
cmp edx, 0x20
jae 0x419389
add ecx, 0x23
jmp 0x418c9d
xor ecx, ecx
mov eax, dword [esp + 8]
jmp 0x418c9d
mov eax, dword [esp + 4]
push ecx
push eax
call sub.mozglue.dll_void___cdecl_operator_delete_void___unsigned_int_
add esp, 8
mov dword [esp + 0x50], ebx
imul edi, dword [esp + 0x20], 0x58
add edi, ebx
mov dword [esp + 0x54], edi
add esi, ebx
mov dword [esp + 0x58], esi
mov ebx, dword [esp + 0x10]
lea eax, [edi - 0x30]
mov dword [esp + 4], eax
mov esi, dword [esp + 0x40]
add esi, ebx
push esi
call sub.api_ms_win_crt_string_l1_1_0.dll_strlen
add esp, 4
mov ebx, eax
mov dword [esp + 8], edi
mov eax, dword [edi - 0x1c]
cmp eax, ebx
jae 0x418d04
sub esp, 0xc
mov al, byte [esp + 0x68]
mov byte [esp + 4], al
mov dword [esp + 8], esi
mov dword [esp], ebx
mov ecx, dword [esp + 0x10]
call fcn.004014b0
mov edi, dword [esp + 8]
jmp 0x418d2e
cmp eax, 0x10
mov edi, dword [esp + 4]
jb 0x418d14
mov eax, dword [esp + 8]
mov edi, dword [eax - 0x30]
mov eax, dword [esp + 8]
mov dword [eax - 0x20], ebx
push ebx
push esi
push edi
call sub.VCRUNTIME140.dll_memmove
add esp, 0xc
mov byte [edi + ebx], 0
mov edi, dword [esp + 0x54]
lea eax, [edi - 0x18]
mov dword [esp + 4], eax
mov esi, dword [esp + 0x10]
push esi
call sub.api_ms_win_crt_string_l1_1_0.dll_strlen
add esp, 4
mov ebx, eax
mov eax, dword [edi - 4]
cmp eax, ebx
jae 0x418d68
sub esp, 0xc
mov al, byte [esp + 0x68]
mov byte [esp + 4], al
mov dword [esp + 8], esi
mov dword [esp], ebx
mov ecx, dword [esp + 0x10]
call fcn.004014b0
jmp 0x418d8b
mov ecx, edi
cmp eax, 0x10
mov esi, dword [esp + 4]
jb 0x418d76
mov esi, dword [ecx - 0x18]
mov dword [ecx - 8], ebx
push ebx
push dword [esp + 0x14]
push esi
call sub.VCRUNTIME140.dll_memmove
add esp, 0xc
mov byte [esi + ebx], 0
mov eax, dword [esp + 0xd4]
cmp eax, 0x10
mov ebx, 0
jb 0x418dd0
mov ecx, dword [esp + 0xc0]
lea esi, [eax + 1]
cmp esi, 0x1000
jb 0x418dc6
mov edx, dword [ecx - 4]
add ecx, 0xfffffffc
sub ecx, edx
cmp ecx, 0x20
jae 0x419389
add eax, 0x24
mov esi, eax
mov ecx, edx
push esi
push ecx
call sub.mozglue.dll_void___cdecl_operator_delete_void___unsigned_int_
add esp, 8
mov dword [esp + 0xd0], 0
mov dword [esp + 0xd4], 0xf
mov byte [esp + 0xc0], 0
mov eax, dword [esp + 0xbc]
cmp eax, 0x10
jb 0x418e2e
mov ecx, dword [esp + 0xa8]
lea esi, [eax + 1]
cmp esi, 0x1000
jb 0x418e24
mov edx, dword [ecx - 4]
add ecx, 0xfffffffc
sub ecx, edx
cmp ecx, 0x20
jae 0x419389
add eax, 0x24
mov esi, eax
mov ecx, edx
push esi
push ecx
call sub.mozglue.dll_void___cdecl_operator_delete_void___unsigned_int_
add esp, 8
mov ecx, dword [esp + 0x28]
inc ecx
mov edx, dword [esp + 0x44]
mov eax, dword [esp + 0x48]
sub eax, edx
sar eax, 3
imul eax, eax, 0xaaaaaaab
cmp ecx, eax
jb 0x418901
mov edx, dword [esp + 0x34]
mov esi, dword [esp + 0x38]
mov ecx, dword [esp + 0x50]
mov edi, dword [esp + 0x54]
mov eax, dword [esp + 0x3c]
mov dword [esp + 4], eax
mov eax, dword [esp + 0x58]
mov dword [esp + 0x34], ecx
mov dword [esp + 0x50], edx
mov dword [esp + 0x38], edi
mov dword [esp + 0x54], esi
mov dword [esp + 0x3c], eax
mov eax, dword [esp + 4]
mov dword [esp + 0x58], eax
mov bl, 1
mov eax, dword [esp + 0xec]
cmp eax, 0x10
jb 0x418ec8
mov ecx, dword [esp + 0xd8]
lea esi, [eax + 1]
cmp esi, 0x1000
jb 0x418ebe
mov edx, dword [ecx - 4]
add ecx, 0xfffffffc
sub ecx, edx
cmp ecx, 0x20
jae 0x419389
add eax, 0x24
mov esi, eax
mov ecx, edx
push esi
push ecx
call sub.mozglue.dll_void___cdecl_operator_delete_void___unsigned_int_
add esp, 8
mov edi, dword [esp + 0x44]
test edi, edi
mov dword [esp + 0x10], ebx
je 0x418f64
mov ebx, dword [esp + 0x48]
cmp edi, ebx
je 0x418f33
mov eax, dword [edi + 0x14]
cmp eax, 0x10
jb 0x418f17
mov ecx, dword [edi]
lea esi, [eax + 1]
cmp esi, 0x1000
jb 0x418f0d
mov edx, dword [ecx - 4]
add ecx, 0xfffffffc
sub ecx, edx
cmp ecx, 0x20
jae 0x419389
add eax, 0x24
mov esi, eax
mov ecx, edx
push esi
push ecx
call sub.mozglue.dll_void___cdecl_operator_delete_void___unsigned_int_
add esp, 8
mov dword [edi + 0x10], 0
mov dword [edi + 0x14], 0xf
mov byte [edi], 0
add edi, 0x18
cmp edi, ebx
jne 0x418ee0
mov edi, dword [esp + 0x44]
mov eax, dword [esp + 0x4c]
sub eax, edi
cmp eax, 0x1000
mov ebx, dword [esp + 0x10]
jb 0x418f5a
mov ecx, dword [edi - 4]
add edi, 0xfffffffc
sub edi, ecx
cmp edi, 0x20
jae 0x419389
add eax, 0x23
mov edi, ecx
push eax
push edi
call sub.mozglue.dll_void___cdecl_operator_delete_void___unsigned_int_
add esp, 8
lea ecx, [esp + 0x50]
call fcn.004337c0
test bl, bl
je 0x41926a
push 0xc
call sub.mozglue.dll_void____cdecl_operator_new_unsigned_int_
add esp, 4
xor ecx, ecx
mov dword [eax], ecx
mov dword [eax + 4], ecx
mov dword [esp + 4], eax
mov dword [eax + 8], ecx
mov edi, dword [esp + 0x34]
mov eax, dword [esp + 0x38]
sub eax, edi
je 0x419258
mov ecx, 0x2e8ba2e9
imul ecx
mov eax, edx
shr eax, 0x1f
sar edx, 4
add edx, eax
xor eax, eax
inc eax
cmp edx, 2
cmovae eax, edx
mov dword [esp + 0x28], eax
mov edx, edi
add edx, 0x40
xor ecx, ecx
mov dword [esp + 0xc], ecx
mov dword [esp + 8], edx
push 0x68
call sub.mozglue.dll_void____cdecl_operator_new_unsigned_int_
mov edx, dword [esp + 0xc]
add esp, 4
mov edi, eax
mov eax, dword [esp + 0x14]
mov eax, dword [eax + 8]
xor ecx, ecx
mov byte [edi + 4], cl
mov dword [edi + 8], eax
mov dword [edi], 0x44a98c
lea eax, [edi + 0x10]
mov dword [edi + 0x38], ecx
mov esi, 0xf
mov dword [edi + 0x4c], esi
mov dword [edi + 0x48], ecx
mov byte [edi + 0x38], cl
mov dword [edi + 0x50], ecx
mov dword [edi + 0x64], esi
mov dword [edi + 0x60], ecx
mov byte [edi + 0x50], cl
lea ecx, [edx - 0x40]
movsd xmm0, qword [edx - 0x20]
movsd qword [edi + 0x30], xmm0
movups xmm0, xmmword [edx - 0x40]
movups xmm1, xmmword [edx - 0x30]
movups xmmword [edi + 0x20], xmm1
movups xmmword [edi + 0x10], xmm0
cmp ecx, eax
je 0x41903b
cmp dword [edx - 4], 0x10
jb 0x419044
mov eax, dword [edx - 0x18]
jmp 0x419047
mov ecx, dword [esp + 0xc]
jmp 0x4190eb
lea eax, [edx - 0x18]
lea ecx, [edi + 0x38]
mov esi, dword [edx - 8]
cmp esi, 0xf
jbe 0x41906e
sub esp, 0xc
mov dl, byte [esp + 0x8c]
mov byte [esp + 4], dl
mov dword [esp + 8], eax
mov dword [esp], esi
call fcn.004014b0
jmp 0x419081
mov dword [edi + 0x48], esi
push esi
push eax
push ecx
call sub.VCRUNTIME140.dll_memmove
add esp, 0xc
mov byte [edi + esi + 0x38], 0
mov ecx, dword [esp + 8]
mov esi, dword [ecx + 0x10]
cmp dword [ecx + 0x14], 0x10
mov eax, ecx
jb 0x419092
mov eax, dword [ecx]
mov ecx, edi
add ecx, 0x50
mov edx, dword [edi + 0x64]
cmp edx, esi
jae 0x4190be
sub esp, 0xc
mov dl, byte [esp + 0x8c]
mov byte [esp + 4], dl
mov dword [esp + 8], eax
mov dword [esp], esi
call fcn.004014b0
mov ecx, dword [esp + 0xc]
jmp 0x4190e7
cmp edx, 0x10
jb 0x4190c6
mov ecx, dword [edi + 0x50]
mov dword [esp + 0xc], ecx
mov dword [edi + 0x60], esi
push esi
push eax
push ecx
call sub.VCRUNTIME140.dll_memmove
add esp, 0xc
mov eax, dword [esp + 0xc]
mov byte [eax + esi], 0
mov eax, dword [esp + 4]
mov ecx, dword [eax + 4]
mov edx, dword [esp + 8]
mov byte [edi + 4], 1
mov eax, dword [esp + 4]
cmp ecx, dword [eax + 8]
je 0x41910c
mov dword [ecx], edi
mov eax, dword [esp + 4]
mov ecx, dword [eax + 4]
add ecx, 4
mov dword [eax + 4], ecx
jmp 0x419242
mov ebx, ecx
mov eax, dword [esp + 4]
sub ebx, dword [eax]
sar ebx, 2
lea edx, [ebx + 1]
mov esi, ebx
shr esi, 1
mov eax, 0x3fffffff
sub eax, esi
add esi, ebx
cmp esi, edx
cmovbe esi, edx
mov dword [esp + 0x24], ebx
cmp ebx, eax
mov eax, 0x3fffffff
cmova esi, eax
cmp esi, 0x40000000
jae 0x41938f
lea eax, [esi*4]
cmp esi, 0x400
mov dword [esp + 0xc], ecx
mov dword [esp + 0x30], edx
jb 0x419180
cmp esi, 0x3ffffff8
jae 0x41938f
add eax, 0x23
push eax
call sub.mozglue.dll_void____cdecl_operator_new_unsigned_int_
add esp, 4
lea edx, [eax + 0x23]
and edx, 0xffffffe0
mov dword [edx - 4], eax
jmp 0x419193
test esi, esi
je 0x419191
push eax
call sub.mozglue.dll_void____cdecl_operator_new_unsigned_int_
add esp, 4
mov edx, eax
jmp 0x419193
xor edx, edx
mov dword [esp + 0x20], edx
mov ebx, dword [esp + 0x24]
mov dword [edx + ebx*4], edi
mov eax, dword [esp + 4]
mov eax, dword [eax]
mov ecx, dword [esp + 4]
mov ecx, dword [ecx + 4]
mov dword [esp + 0x2c], ecx
mov edi, dword [esp + 0xc]
mov ecx, edi
sub ecx, eax
push ecx
push eax
push edx
call sub.VCRUNTIME140.dll_memmove
add esp, 0xc
cmp dword [esp + 0x2c], edi
je 0x4191e6
mov eax, dword [esp + 0x20]
lea eax, [eax + ebx*4]
add eax, 4
mov ecx, dword [esp + 4]
mov ecx, dword [ecx + 4]
sub ecx, edi
push ecx
push edi
push eax
call sub.VCRUNTIME140.dll_memmove
add esp, 0xc
mov edi, dword [esp + 0x20]
mov eax, dword [esp + 4]
mov ecx, dword [eax]
test ecx, ecx
je 0x419224
mov eax, dword [esp + 4]
mov eax, dword [eax + 8]
sub eax, ecx
cmp eax, 0x1000
jb 0x41921a
mov edx, dword [ecx - 4]
add ecx, 0xfffffffc
sub ecx, edx
cmp ecx, 0x20
jae 0x419389
add eax, 0x23
mov ecx, edx
push eax
push ecx
call sub.mozglue.dll_void___cdecl_operator_delete_void___unsigned_int_
add esp, 8
mov edx, dword [esp + 4]
mov dword [edx], edi
mov eax, dword [esp + 0x30]
lea ecx, [edi + eax*4]
mov dword [edx + 4], ecx
lea eax, [edi + esi*4]
mov dword [edx + 8], eax
mov ebx, dword [esp + 0x10]
mov edx, dword [esp + 8]
add edx, 0x58
dec dword [esp + 0x28]
jne 0x418fc2
mov eax, dword [esp + 4]
sub ecx, dword [eax]
sar ecx, 2
mov eax, dword [esp + 0x14]
mov edx, dword [esp + 4]
mov dword [eax + 0xc], edx
mov dword [eax + 0x10], ecx
mov byte [eax + 4], 1
lea ecx, [esp + 0x34]
call fcn.004337c0
mov eax, dword [esp + 0x7c]
cmp eax, 0x10
jb 0x4192ad
mov ecx, dword [esp + 0x68]
lea esi, [eax + 1]
cmp esi, 0x1000
jb 0x4192a3
mov edx, dword [ecx - 4]
add ecx, 0xfffffffc
sub ecx, edx
cmp ecx, 0x20
jae 0x419389
add eax, 0x24
mov esi, eax
mov ecx, edx
push esi
push ecx
call sub.mozglue.dll_void___cdecl_operator_delete_void___unsigned_int_
add esp, 8
mov ecx, dword [esp + 0x1c]
mov edx, dword [esp + 0x18]
test ecx, ecx
je 0x41852b
sub edx, ecx
cmp edx, 0x1000
jb 0x4192dd
mov eax, dword [ecx - 4]
add ecx, 0xfffffffc
sub ecx, eax
cmp ecx, 0x20
jae 0x419389
add edx, 0x23
mov ecx, eax
push edx
push ecx
call sub.mozglue.dll_void___cdecl_operator_delete_void___unsigned_int_
add esp, 8
jmp 0x41852b
mov eax, dword [esp + 0xd4]
cmp eax, 0x10
jb 0x419328
mov ecx, dword [esp + 0xc0]
lea esi, [eax + 1]
cmp esi, 0x1000
jb 0x41931e
mov edx, dword [ecx - 4]
add ecx, 0xfffffffc
sub ecx, edx
cmp ecx, 0x20
jae 0x419389
add eax, 0x24
mov esi, eax
mov ecx, edx
push esi
push ecx
call sub.mozglue.dll_void___cdecl_operator_delete_void___unsigned_int_
add esp, 8
mov dword [esp + 0xd0], 0
mov dword [esp + 0xd4], 0xf
mov byte [esp + 0xc0], 0
mov eax, dword [esp + 0xbc]
cmp eax, 0x10
jb 0x419382
mov ecx, dword [esp + 0xa8]
lea esi, [eax + 1]
cmp esi, 0x1000
jb 0x419378
mov edx, dword [ecx - 4]
add ecx, 0xfffffffc
sub ecx, edx
cmp ecx, 0x20
jae 0x419389
add eax, 0x24
mov esi, eax
mov ecx, edx
push esi
push ecx
call sub.mozglue.dll_void___cdecl_operator_delete_void___unsigned_int_
add esp, 8
xor ebx, ebx
jmp 0x418e88
call dword [sym.imp.api_ms_win_crt_runtime_l1_1_0.dll__invalid_parameter_noinfo_noreturn]
call fcn.004415b0
call fcn.00443c30
call fcn.004415a0
int3